[lldb] Group ABI plugins
authorPavel Labath <labath@google.com>
Sun, 2 Feb 2020 07:48:51 +0000 (08:48 +0100)
committerPavel Labath <labath@google.com>
Fri, 7 Feb 2020 17:51:38 +0000 (09:51 -0800)
Summary:
There's a fair amount of code duplication between the different ABI plugins for
the same architecture (e.g. ABIMacOSX_arm & ABISysV_arm). Deduplicating this
code is not very easy at the moment because there is no good place where to put
the common code.

Instead of creating more plugins, this patch reduces their number by grouping
similar plugins into a single folder/plugin. This makes it easy to extract
common code to a (e.g.) base class, which can then live in the same folder.

The grouping is done based on the underlying llvm target for that architecture,
because the plugins already require this for their operation.

Reviewers: JDevlieghere, jasonmolenda, jfb

Subscribers: sdardis, nemanjai, mgorny, kristof.beyls, fedor.sergeev, kbarton, jrtc27, atanasyan, jsji, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D74138

48 files changed:
lldb/source/API/SystemInitializerFull.cpp
lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp [moved from lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp with 100% similarity]
lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h [moved from lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h with 100% similarity]
lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp [moved from lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp with 100% similarity]
lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h [moved from lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h with 100% similarity]
lldb/source/Plugins/ABI/AArch64/CMakeLists.txt [moved from lldb/source/Plugins/ABI/MacOSX-arm64/CMakeLists.txt with 62% similarity]
lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp [moved from lldb/source/Plugins/ABI/SysV-arc/ABISysV_arc.cpp with 100% similarity]
lldb/source/Plugins/ABI/ARC/ABISysV_arc.h [moved from lldb/source/Plugins/ABI/SysV-arc/ABISysV_arc.h with 100% similarity]
lldb/source/Plugins/ABI/ARC/CMakeLists.txt [moved from lldb/source/Plugins/ABI/SysV-arc/CMakeLists.txt with 74% similarity]
lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp [moved from lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp with 100% similarity]
lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.h [moved from lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h with 100% similarity]
lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp [moved from lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp with 100% similarity]
lldb/source/Plugins/ABI/ARM/ABISysV_arm.h [moved from lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h with 100% similarity]
lldb/source/Plugins/ABI/ARM/CMakeLists.txt [moved from lldb/source/Plugins/ABI/MacOSX-arm/CMakeLists.txt with 70% similarity]
lldb/source/Plugins/ABI/CMakeLists.txt
lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp [moved from lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp with 100% similarity]
lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.h [moved from lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h with 100% similarity]
lldb/source/Plugins/ABI/Hexagon/CMakeLists.txt [moved from lldb/source/Plugins/ABI/SysV-hexagon/CMakeLists.txt with 69% similarity]
lldb/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt [deleted file]
lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp [moved from lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp with 100% similarity]
lldb/source/Plugins/ABI/Mips/ABISysV_mips.h [moved from lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h with 100% similarity]
lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp [moved from lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp with 100% similarity]
lldb/source/Plugins/ABI/Mips/ABISysV_mips64.h [moved from lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h with 100% similarity]
lldb/source/Plugins/ABI/Mips/CMakeLists.txt [moved from lldb/source/Plugins/ABI/SysV-mips64/CMakeLists.txt with 64% similarity]
lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp [moved from lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp with 100% similarity]
lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.h [moved from lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h with 100% similarity]
lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp [moved from lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp with 100% similarity]
lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.h [moved from lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h with 100% similarity]
lldb/source/Plugins/ABI/PowerPC/CMakeLists.txt [moved from lldb/source/Plugins/ABI/SysV-ppc64/CMakeLists.txt with 68% similarity]
lldb/source/Plugins/ABI/SysV-arm/CMakeLists.txt [deleted file]
lldb/source/Plugins/ABI/SysV-arm64/CMakeLists.txt [deleted file]
lldb/source/Plugins/ABI/SysV-i386/CMakeLists.txt [deleted file]
lldb/source/Plugins/ABI/SysV-mips/CMakeLists.txt [deleted file]
lldb/source/Plugins/ABI/SysV-ppc/CMakeLists.txt [deleted file]
lldb/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt [deleted file]
lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp [moved from lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp with 100% similarity]
lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.h [moved from lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h with 100% similarity]
lldb/source/Plugins/ABI/SystemZ/CMakeLists.txt [moved from lldb/source/Plugins/ABI/SysV-s390x/CMakeLists.txt with 69% similarity]
lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.cpp [moved from lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp with 100% similarity]
lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h [moved from lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h with 100% similarity]
lldb/source/Plugins/ABI/X86/ABISysV_i386.cpp [moved from lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp with 100% similarity]
lldb/source/Plugins/ABI/X86/ABISysV_i386.h [moved from lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h with 100% similarity]
lldb/source/Plugins/ABI/X86/ABISysV_x86_64.cpp [moved from lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp with 100% similarity]
lldb/source/Plugins/ABI/X86/ABISysV_x86_64.h [moved from lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h with 100% similarity]
lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.cpp [moved from lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.cpp with 100% similarity]
lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.h [moved from lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h with 100% similarity]
lldb/source/Plugins/ABI/X86/CMakeLists.txt [moved from lldb/source/Plugins/ABI/Windows-x86_64/CMakeLists.txt with 52% similarity]
lldb/tools/lldb-test/SystemInitializerTest.cpp

index d518c57..c2cac66 100644 (file)
 #include "lldb/Interpreter/CommandInterpreter.h"
 #include "lldb/Utility/Timer.h"
 
-#include "Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h"
-#include "Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h"
-#include "Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h"
-#include "Plugins/ABI/SysV-arc/ABISysV_arc.h"
-#include "Plugins/ABI/SysV-arm/ABISysV_arm.h"
-#include "Plugins/ABI/SysV-arm64/ABISysV_arm64.h"
-#include "Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h"
-#include "Plugins/ABI/SysV-i386/ABISysV_i386.h"
-#include "Plugins/ABI/SysV-mips/ABISysV_mips.h"
-#include "Plugins/ABI/SysV-mips64/ABISysV_mips64.h"
-#include "Plugins/ABI/SysV-ppc/ABISysV_ppc.h"
-#include "Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h"
-#include "Plugins/ABI/SysV-s390x/ABISysV_s390x.h"
-#include "Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h"
-#include "Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h"
+#include "Plugins/ABI/AArch64/ABIMacOSX_arm64.h"
+#include "Plugins/ABI/AArch64/ABISysV_arm64.h"
+#include "Plugins/ABI/ARC/ABISysV_arc.h"
+#include "Plugins/ABI/ARM/ABIMacOSX_arm.h"
+#include "Plugins/ABI/ARM/ABISysV_arm.h"
+#include "Plugins/ABI/Hexagon/ABISysV_hexagon.h"
+#include "Plugins/ABI/Mips/ABISysV_mips.h"
+#include "Plugins/ABI/Mips/ABISysV_mips64.h"
+#include "Plugins/ABI/PowerPC/ABISysV_ppc.h"
+#include "Plugins/ABI/PowerPC/ABISysV_ppc64.h"
+#include "Plugins/ABI/SystemZ/ABISysV_s390x.h"
+#include "Plugins/ABI/X86/ABIMacOSX_i386.h"
+#include "Plugins/ABI/X86/ABISysV_i386.h"
+#include "Plugins/ABI/X86/ABISysV_x86_64.h"
+#include "Plugins/ABI/X86/ABIWindows_x86_64.h"
 #include "Plugins/Architecture/Arm/ArchitectureArm.h"
 #include "Plugins/Architecture/Mips/ArchitectureMips.h"
 #include "Plugins/Architecture/PPC64/ArchitecturePPC64.h"
@@ -1,6 +1,7 @@
-add_lldb_library(lldbPluginABIMacOSX_arm64 PLUGIN
+add_lldb_library(lldbPluginABIAArch64 PLUGIN
   ABIMacOSX_arm64.cpp
-  
+  ABISysV_arm64.cpp
+
   LINK_LIBS
     lldbCore
     lldbSymbol
similarity index 74%
rename from lldb/source/Plugins/ABI/SysV-arc/CMakeLists.txt
rename to lldb/source/Plugins/ABI/ARC/CMakeLists.txt
index 3dc0d1c..1942142 100644 (file)
@@ -1,4 +1,4 @@
-add_lldb_library(lldbPluginABISysV_arc PLUGIN
+add_lldb_library(lldbPluginABIARC PLUGIN
   ABISysV_arc.cpp
 
   LINK_LIBS
@@ -1,5 +1,6 @@
-add_lldb_library(lldbPluginABIMacOSX_arm PLUGIN
+add_lldb_library(lldbPluginABIARM PLUGIN
   ABIMacOSX_arm.cpp
+  ABISysV_arm.cpp
 
   LINK_LIBS
     lldbCore
index 37a5447..d7cc39b 100644 (file)
@@ -1,31 +1,5 @@
-if ("AArch64" IN_LIST LLVM_TARGETS_TO_BUILD)
-  add_subdirectory(MacOSX-arm64)
-  add_subdirectory(SysV-arm64)
-endif()
-if ("ARM" IN_LIST LLVM_TARGETS_TO_BUILD)
-  add_subdirectory(MacOSX-arm)
-  add_subdirectory(SysV-arm)
-endif()
-if ("ARC" IN_LIST LLVM_TARGETS_TO_BUILD)
-  add_subdirectory(SysV-arc)
-endif()
-if ("Hexagon" IN_LIST LLVM_TARGETS_TO_BUILD)
-  add_subdirectory(SysV-hexagon)
-endif()
-if ("Mips" IN_LIST LLVM_TARGETS_TO_BUILD)
-  add_subdirectory(SysV-mips)
-  add_subdirectory(SysV-mips64)
-endif()
-if ("PowerPC" IN_LIST LLVM_TARGETS_TO_BUILD)
-  add_subdirectory(SysV-ppc)
-  add_subdirectory(SysV-ppc64)
-endif()
-if ("SystemZ" IN_LIST LLVM_TARGETS_TO_BUILD)
-  add_subdirectory(SysV-s390x)
-endif()
-if ("X86" IN_LIST LLVM_TARGETS_TO_BUILD)
-  add_subdirectory(SysV-i386)
-  add_subdirectory(SysV-x86_64)
-  add_subdirectory(MacOSX-i386)
-  add_subdirectory(Windows-x86_64)
-endif()
+foreach(target AArch64 ARM ARC Hexagon Mips PowerPC SystemZ X86)
+  if (${target} IN_LIST LLVM_TARGETS_TO_BUILD)
+    add_subdirectory(${target})
+  endif()
+endforeach()
@@ -1,4 +1,4 @@
-add_lldb_library(lldbPluginABISysV_hexagon PLUGIN
+add_lldb_library(lldbPluginABIHexagon PLUGIN
   ABISysV_hexagon.cpp
 
   LINK_LIBS
diff --git a/lldb/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt b/lldb/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt
deleted file mode 100644 (file)
index 21f153d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-add_lldb_library(lldbPluginABIMacOSX_i386 PLUGIN
-  ABIMacOSX_i386.cpp
-
-  LINK_LIBS
-    lldbCore
-    lldbSymbol
-    lldbTarget
-  LINK_COMPONENTS
-    Support
-  )
@@ -1,4 +1,5 @@
-add_lldb_library(lldbPluginABISysV_mips64 PLUGIN
+add_lldb_library(lldbPluginABIMips PLUGIN
+  ABISysV_mips.cpp
   ABISysV_mips64.cpp
 
   LINK_LIBS
@@ -1,4 +1,5 @@
-add_lldb_library(lldbPluginABISysV_ppc64 PLUGIN
+add_lldb_library(lldbPluginABIPowerPC PLUGIN
+  ABISysV_ppc.cpp
   ABISysV_ppc64.cpp
 
   LINK_LIBS
diff --git a/lldb/source/Plugins/ABI/SysV-arm/CMakeLists.txt b/lldb/source/Plugins/ABI/SysV-arm/CMakeLists.txt
deleted file mode 100644 (file)
index c597904..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-add_lldb_library(lldbPluginABISysV_arm PLUGIN
-  ABISysV_arm.cpp
-
-  LINK_LIBS
-    lldbCore
-    lldbSymbol
-    lldbTarget
-    lldbPluginProcessUtility
-  LINK_COMPONENTS
-    Support
-  )
diff --git a/lldb/source/Plugins/ABI/SysV-arm64/CMakeLists.txt b/lldb/source/Plugins/ABI/SysV-arm64/CMakeLists.txt
deleted file mode 100644 (file)
index 077b394..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-add_lldb_library(lldbPluginABISysV_arm64 PLUGIN
-  ABISysV_arm64.cpp
-
-  LINK_LIBS
-    lldbCore
-    lldbSymbol
-    lldbTarget
-  LINK_COMPONENTS
-    Support
-  )
diff --git a/lldb/source/Plugins/ABI/SysV-i386/CMakeLists.txt b/lldb/source/Plugins/ABI/SysV-i386/CMakeLists.txt
deleted file mode 100644 (file)
index 598b3d0..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-add_lldb_library(lldbPluginABISysV_i386 PLUGIN
-  ABISysV_i386.cpp
-
-  LINK_LIBS
-    lldbCore
-    lldbSymbol
-    lldbTarget
-  LINK_COMPONENTS
-    Support
-  )
diff --git a/lldb/source/Plugins/ABI/SysV-mips/CMakeLists.txt b/lldb/source/Plugins/ABI/SysV-mips/CMakeLists.txt
deleted file mode 100644 (file)
index a3266a7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-add_lldb_library(lldbPluginABISysV_mips PLUGIN
-  ABISysV_mips.cpp
-
-  LINK_LIBS
-    lldbCore
-    lldbSymbol
-    lldbTarget
-  LINK_COMPONENTS
-    Support
-  )
diff --git a/lldb/source/Plugins/ABI/SysV-ppc/CMakeLists.txt b/lldb/source/Plugins/ABI/SysV-ppc/CMakeLists.txt
deleted file mode 100644 (file)
index 63bfc4a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-add_lldb_library(lldbPluginABISysV_ppc PLUGIN
-  ABISysV_ppc.cpp
-
-  LINK_LIBS
-    lldbCore
-    lldbSymbol
-    lldbTarget
-  LINK_COMPONENTS
-    Support
-  )
diff --git a/lldb/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt b/lldb/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt
deleted file mode 100644 (file)
index 17644d7..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-add_lldb_library(lldbPluginABISysV_x86_64 PLUGIN
-  ABISysV_x86_64.cpp
-
-  LINK_LIBS
-    lldbCore
-    lldbSymbol
-    lldbTarget
-  LINK_COMPONENTS
-    Support
-  )
@@ -1,4 +1,4 @@
-add_lldb_library(lldbPluginABISysV_s390x PLUGIN
+add_lldb_library(lldbPluginABISystemZ PLUGIN
   ABISysV_s390x.cpp
 
   LINK_LIBS
@@ -1,4 +1,7 @@
-add_lldb_library(lldbPluginABIWindows_x86_64 PLUGIN
+add_lldb_library(lldbPluginABIX86 PLUGIN
+  ABIMacOSX_i386.cpp
+  ABISysV_i386.cpp
+  ABISysV_x86_64.cpp
   ABIWindows_x86_64.cpp
 
   LINK_LIBS
index 5cc998f..08b9927 100644 (file)
 #include "lldb/Interpreter/CommandInterpreter.h"
 #include "lldb/Utility/Timer.h"
 
-#include "Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h"
-#include "Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h"
-#include "Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h"
-#include "Plugins/ABI/SysV-arc/ABISysV_arc.h"
-#include "Plugins/ABI/SysV-arm/ABISysV_arm.h"
-#include "Plugins/ABI/SysV-arm64/ABISysV_arm64.h"
-#include "Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h"
-#include "Plugins/ABI/SysV-i386/ABISysV_i386.h"
-#include "Plugins/ABI/SysV-mips/ABISysV_mips.h"
-#include "Plugins/ABI/SysV-mips64/ABISysV_mips64.h"
-#include "Plugins/ABI/SysV-ppc/ABISysV_ppc.h"
-#include "Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h"
-#include "Plugins/ABI/SysV-s390x/ABISysV_s390x.h"
-#include "Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h"
-#include "Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h"
+#include "Plugins/ABI/AArch64/ABIMacOSX_arm64.h"
+#include "Plugins/ABI/AArch64/ABISysV_arm64.h"
+#include "Plugins/ABI/ARC/ABISysV_arc.h"
+#include "Plugins/ABI/ARM/ABIMacOSX_arm.h"
+#include "Plugins/ABI/ARM/ABISysV_arm.h"
+#include "Plugins/ABI/Hexagon/ABISysV_hexagon.h"
+#include "Plugins/ABI/Mips/ABISysV_mips.h"
+#include "Plugins/ABI/Mips/ABISysV_mips64.h"
+#include "Plugins/ABI/PowerPC/ABISysV_ppc.h"
+#include "Plugins/ABI/PowerPC/ABISysV_ppc64.h"
+#include "Plugins/ABI/SystemZ/ABISysV_s390x.h"
+#include "Plugins/ABI/X86/ABIMacOSX_i386.h"
+#include "Plugins/ABI/X86/ABISysV_i386.h"
+#include "Plugins/ABI/X86/ABISysV_x86_64.h"
+#include "Plugins/ABI/X86/ABIWindows_x86_64.h"
 #include "Plugins/Architecture/Arm/ArchitectureArm.h"
 #include "Plugins/Architecture/Mips/ArchitectureMips.h"
 #include "Plugins/Architecture/PPC64/ArchitecturePPC64.h"