labath created this revision. labath added reviewers: JDevlieghere, jasonmolenda. Herald added subscribers: jsji, atanasyan, jrtc27, kbarton, fedor.sergeev, kristof.beyls, mgorny, nemanjai, sdardis. Herald added a reviewer: jfb. Herald added a project: LLDB.
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. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D74138 Files: lldb/source/API/SystemInitializerFull.cpp lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h lldb/source/Plugins/ABI/AArch64/CMakeLists.txt lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp lldb/source/Plugins/ABI/ARC/ABISysV_arc.h lldb/source/Plugins/ABI/ARC/CMakeLists.txt lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.h lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp lldb/source/Plugins/ABI/ARM/ABISysV_arm.h lldb/source/Plugins/ABI/ARM/CMakeLists.txt lldb/source/Plugins/ABI/CMakeLists.txt lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.h lldb/source/Plugins/ABI/Hexagon/CMakeLists.txt lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h lldb/source/Plugins/ABI/MacOSX-arm/CMakeLists.txt lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h lldb/source/Plugins/ABI/MacOSX-arm64/CMakeLists.txt lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h lldb/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp lldb/source/Plugins/ABI/Mips/ABISysV_mips.h lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp lldb/source/Plugins/ABI/Mips/ABISysV_mips64.h lldb/source/Plugins/ABI/Mips/CMakeLists.txt lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.h lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.h lldb/source/Plugins/ABI/PowerPC/CMakeLists.txt lldb/source/Plugins/ABI/SysV-arc/ABISysV_arc.cpp lldb/source/Plugins/ABI/SysV-arc/ABISysV_arc.h lldb/source/Plugins/ABI/SysV-arc/CMakeLists.txt lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h lldb/source/Plugins/ABI/SysV-arm/CMakeLists.txt lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h lldb/source/Plugins/ABI/SysV-arm64/CMakeLists.txt lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h lldb/source/Plugins/ABI/SysV-hexagon/CMakeLists.txt lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h lldb/source/Plugins/ABI/SysV-i386/CMakeLists.txt lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h lldb/source/Plugins/ABI/SysV-mips/CMakeLists.txt lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h lldb/source/Plugins/ABI/SysV-mips64/CMakeLists.txt lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h lldb/source/Plugins/ABI/SysV-ppc/CMakeLists.txt lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h lldb/source/Plugins/ABI/SysV-ppc64/CMakeLists.txt lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h lldb/source/Plugins/ABI/SysV-s390x/CMakeLists.txt lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h lldb/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.h lldb/source/Plugins/ABI/SystemZ/CMakeLists.txt lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.cpp lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h lldb/source/Plugins/ABI/Windows-x86_64/CMakeLists.txt lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.cpp lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h lldb/source/Plugins/ABI/X86/ABISysV_i386.cpp lldb/source/Plugins/ABI/X86/ABISysV_i386.h lldb/source/Plugins/ABI/X86/ABISysV_x86_64.cpp lldb/source/Plugins/ABI/X86/ABISysV_x86_64.h lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.cpp lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.h lldb/source/Plugins/ABI/X86/CMakeLists.txt lldb/tools/lldb-test/SystemInitializerTest.cpp _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits