[PATCH] D17938: CodeGen: Use PLT relocations for relative references to unnamed_addr functions.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 7 12:57:10 PST 2016


pcc created this revision.
pcc added a reviewer: rafael.
pcc added a subscriber: llvm-commits.

The relative vtable ABI (PR26723) needs PLT relocations to refer to virtual
functions defined in other DSOs. The unnamed_addr attribute means that the
function's address is not significant, so we're allowed to substitute it
with the address of a PLT entry.

Also includes a bonus feature: addends for COFF image-relative references.

http://reviews.llvm.org/D17938

Files:
  include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
  include/llvm/Target/TargetLoweringObjectFile.h
  lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  lib/CodeGen/TargetLoweringObjectFileImpl.cpp
  lib/Target/ARM/ARMTargetObjectFile.h
  lib/Target/X86/X86TargetObjectFile.cpp
  lib/Target/X86/X86TargetObjectFile.h
  test/CodeGen/ARM/plt-relative-reloc.ll
  test/CodeGen/X86/x86-64-plt-relative-reloc.ll
  test/CodeGen/X86/x86-plt-relative-reloc.ll
  test/MC/COFF/cross-section-relative.ll
  test/MC/MachO/AArch64/cstexpr-gotpcrel.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17938.49989.patch
Type: text/x-patch
Size: 15742 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160307/ac43664a/attachment.bin>


More information about the llvm-commits mailing list