[all-commits] [llvm/llvm-project] e21b39: [lldb] Group ABI plugins

plabath via All-commits all-commits at lists.llvm.org
Fri Feb 7 09:58:52 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e21b39a86dd6e8d1a5a5fe7e0286f8570732834d
      https://github.com/llvm/llvm-project/commit/e21b39a86dd6e8d1a5a5fe7e0286f8570732834d
  Author: Pavel Labath <labath at google.com>
  Date:   2020-02-07 (Fri, 07 Feb 2020)

  Changed paths:
    M lldb/source/API/SystemInitializerFull.cpp
    A lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.cpp
    A lldb/source/Plugins/ABI/AArch64/ABIMacOSX_arm64.h
    A lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
    A lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
    A lldb/source/Plugins/ABI/AArch64/CMakeLists.txt
    A lldb/source/Plugins/ABI/ARC/ABISysV_arc.cpp
    A lldb/source/Plugins/ABI/ARC/ABISysV_arc.h
    A lldb/source/Plugins/ABI/ARC/CMakeLists.txt
    A lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.cpp
    A lldb/source/Plugins/ABI/ARM/ABIMacOSX_arm.h
    A lldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
    A lldb/source/Plugins/ABI/ARM/ABISysV_arm.h
    A lldb/source/Plugins/ABI/ARM/CMakeLists.txt
    M lldb/source/Plugins/ABI/CMakeLists.txt
    A lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.cpp
    A lldb/source/Plugins/ABI/Hexagon/ABISysV_hexagon.h
    A lldb/source/Plugins/ABI/Hexagon/CMakeLists.txt
    R lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp
    R lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h
    R lldb/source/Plugins/ABI/MacOSX-arm/CMakeLists.txt
    R lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp
    R lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h
    R lldb/source/Plugins/ABI/MacOSX-arm64/CMakeLists.txt
    R lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp
    R lldb/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h
    R lldb/source/Plugins/ABI/MacOSX-i386/CMakeLists.txt
    A lldb/source/Plugins/ABI/Mips/ABISysV_mips.cpp
    A lldb/source/Plugins/ABI/Mips/ABISysV_mips.h
    A lldb/source/Plugins/ABI/Mips/ABISysV_mips64.cpp
    A lldb/source/Plugins/ABI/Mips/ABISysV_mips64.h
    A lldb/source/Plugins/ABI/Mips/CMakeLists.txt
    A lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.cpp
    A lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc.h
    A lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.cpp
    A lldb/source/Plugins/ABI/PowerPC/ABISysV_ppc64.h
    A lldb/source/Plugins/ABI/PowerPC/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-arc/ABISysV_arc.cpp
    R lldb/source/Plugins/ABI/SysV-arc/ABISysV_arc.h
    R lldb/source/Plugins/ABI/SysV-arc/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp
    R lldb/source/Plugins/ABI/SysV-arm/ABISysV_arm.h
    R lldb/source/Plugins/ABI/SysV-arm/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp
    R lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h
    R lldb/source/Plugins/ABI/SysV-arm64/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp
    R lldb/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h
    R lldb/source/Plugins/ABI/SysV-hexagon/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp
    R lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.h
    R lldb/source/Plugins/ABI/SysV-i386/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp
    R lldb/source/Plugins/ABI/SysV-mips/ABISysV_mips.h
    R lldb/source/Plugins/ABI/SysV-mips/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp
    R lldb/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h
    R lldb/source/Plugins/ABI/SysV-mips64/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp
    R lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h
    R lldb/source/Plugins/ABI/SysV-ppc/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp
    R lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h
    R lldb/source/Plugins/ABI/SysV-ppc64/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp
    R lldb/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h
    R lldb/source/Plugins/ABI/SysV-s390x/CMakeLists.txt
    R lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp
    R lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h
    R lldb/source/Plugins/ABI/SysV-x86_64/CMakeLists.txt
    A lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.cpp
    A lldb/source/Plugins/ABI/SystemZ/ABISysV_s390x.h
    A lldb/source/Plugins/ABI/SystemZ/CMakeLists.txt
    R lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.cpp
    R lldb/source/Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h
    R lldb/source/Plugins/ABI/Windows-x86_64/CMakeLists.txt
    A lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.cpp
    A lldb/source/Plugins/ABI/X86/ABIMacOSX_i386.h
    A lldb/source/Plugins/ABI/X86/ABISysV_i386.cpp
    A lldb/source/Plugins/ABI/X86/ABISysV_i386.h
    A lldb/source/Plugins/ABI/X86/ABISysV_x86_64.cpp
    A lldb/source/Plugins/ABI/X86/ABISysV_x86_64.h
    A lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.cpp
    A lldb/source/Plugins/ABI/X86/ABIWindows_x86_64.h
    A lldb/source/Plugins/ABI/X86/CMakeLists.txt
    M lldb/tools/lldb-test/SystemInitializerTest.cpp

  Log Message:
  -----------
  [lldb] Group ABI plugins

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




More information about the All-commits mailing list