[all-commits] [llvm/llvm-project] cf8ff7: [clang][RelativeVTablesABI] Use dso_local_equivale...

Leonard Chan via All-commits all-commits at lists.llvm.org
Mon Nov 30 16:04:11 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: cf8ff75bade763b054476321dcb82dcb2e7744c7
      https://github.com/llvm/llvm-project/commit/cf8ff75bade763b054476321dcb82dcb2e7744c7
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2020-11-30 (Mon, 30 Nov 2020)

  Changed paths:
    M clang/lib/CodeGen/CGVTables.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/child-inheritted-from-parent-in-comdat.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/child-vtable-in-comdat.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-1.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-2.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/diamond-inheritance.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/diamond-virtual-inheritance.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/inheritted-virtual-function.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/inline-virtual-function.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/inlined-key-function.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/multiple-inheritance.cpp
    R clang/test/CodeGenCXX/RelativeVTablesABI/no-stub-when-dso-local.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/override-pure-virtual-method.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/overriden-virtual-function.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/parent-and-child-in-comdats.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/parent-vtable-in-comdat.cpp
    R clang/test/CodeGenCXX/RelativeVTablesABI/pass-byval-attributes.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/relative-vtables-flag.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/simple-vtable-definition.cpp
    R clang/test/CodeGenCXX/RelativeVTablesABI/stub-linkages.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/type-info.cpp

  Log Message:
  -----------
  [clang][RelativeVTablesABI] Use dso_local_equivalent rather than emitting stubs

Thanks to D77248, we can bypass the use of stubs altogether and use PLT
relocations if they are available for the target. LLVM and LLD support the
R_AARCH64_PLT32 relocation, so we can also guarantee a static PLT relocation on AArch64.
Not emitting these stubs saves a lot of extra binary size.

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




More information about the All-commits mailing list