llvm-project/lld/ELF
George Rimar 5c33b91bbe [ELF] - Implemented optimization for R_X86_64_GOTPCREL relocation.
System V Application Binary Interface AMD64 Architecture Processor Supplement Draft Version 0.99.8 
(https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-r249.pdf, B.2 "B.2 Optimize GOTPCRELX Relocations")
introduces possible relaxations for R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX.

That patch implements the next relaxation: 
mov foo@GOTPCREL(%rip), %reg => lea foo(%rip), %reg
and also opens door for implementing all other ones.

Implementation was suggested by Rafael Ávila de Espíndola with few additions and testcases by myself.

Differential revision: http://reviews.llvm.org/D15779

llvm-svn: 270705
2016-05-25 14:31:37 +00:00
..
CMakeLists.txt Create Relocations.cpp and move scanRelocs there. 2016-05-24 20:24:43 +00:00
Config.h [LTO] Add the ability to specify a subset of passes to run. 2016-05-15 19:29:38 +00:00
Driver.cpp Do not split mergeable sections if they are gc'ed. 2016-05-23 16:55:43 +00:00
Driver.h Reorganize the cpio archiver as CpioFile class. NFC. 2016-05-15 17:10:23 +00:00
DriverUtils.cpp Reorganize the cpio archiver as CpioFile class. NFC. 2016-05-15 17:10:23 +00:00
EhFrame.cpp Create a new file EhFrame.cpp and move code to read .eh_frame there. 2016-05-24 02:55:45 +00:00
EhFrame.h Create a new file EhFrame.cpp and move code to read .eh_frame there. 2016-05-24 02:55:45 +00:00
Error.cpp Print the cpio trailer after every member. 2016-05-04 12:47:56 +00:00
Error.h Print the cpio trailer after every member. 2016-05-04 12:47:56 +00:00
ICF.cpp Do not pass Symtab to markLive/doICF since Symtab is globally accessible. 2016-05-02 19:30:42 +00:00
ICF.h Do not pass Symtab to markLive/doICF since Symtab is globally accessible. 2016-05-02 19:30:42 +00:00
InputFiles.cpp Rename EHInputSection -> EhInputSection. 2016-05-24 04:19:20 +00:00
InputFiles.h Rename EHInputSection -> EhInputSection. 2016-05-24 04:19:20 +00:00
InputSection.cpp [ELF] - Implemented optimization for R_X86_64_GOTPCREL relocation. 2016-05-25 14:31:37 +00:00
InputSection.h Create Relocations.cpp and move scanRelocs there. 2016-05-24 20:24:43 +00:00
LTO.cpp Sort includes, and don't look into system headers. 2016-05-15 19:43:02 +00:00
LTO.h Delete dead variable. 2016-04-28 20:29:12 +00:00
LinkerScript.cpp Fix the function to set the section VMA/LMA fields in case of using 2016-05-19 18:15:54 +00:00
LinkerScript.h Removed another dead code. NFC. 2016-05-04 15:04:08 +00:00
MarkLive.cpp Rename EHInputSection -> EhInputSection. 2016-05-24 04:19:20 +00:00
Options.td Really define --export-dynamic-symbol= as an alias to --export-dynamic-symbol. 2016-05-25 04:29:55 +00:00
OutputSections.cpp Use range loop. 2016-05-24 19:14:09 +00:00
OutputSections.h Do not start over relocation search from beginning. 2016-05-24 15:40:46 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Relocations.cpp [ELF] - Implemented optimization for R_X86_64_GOTPCREL relocation. 2016-05-25 14:31:37 +00:00
Relocations.h [ELF] - Implemented optimization for R_X86_64_GOTPCREL relocation. 2016-05-25 14:31:37 +00:00
ScriptParser.cpp [ELF] - Implemented comparsion operators for linkerscript. 2016-04-25 08:14:41 +00:00
ScriptParser.h Add `explicit`. 2016-05-16 21:06:31 +00:00
SymbolListFile.cpp Remove unused includes. 2016-05-03 13:57:49 +00:00
SymbolListFile.h ELF: Implement basic support for --version-script. 2016-04-22 20:21:26 +00:00
SymbolTable.cpp Print member name in undefined symbol error. 2016-05-09 21:40:06 +00:00
SymbolTable.h ELF: Remove the function SymbolTable<ELFT>::findFile. 2016-05-03 01:48:25 +00:00
Symbols.cpp Inline SymbolBody::init. NFC. 2016-05-24 04:51:49 +00:00
Symbols.h Inline SymbolBody::init. NFC. 2016-05-24 04:51:49 +00:00
Target.cpp [ELF] - Implemented optimization for R_X86_64_GOTPCREL relocation. 2016-05-25 14:31:37 +00:00
Target.h [ELF] - Implemented optimization for R_X86_64_GOTPCREL relocation. 2016-05-25 14:31:37 +00:00
Writer.cpp Create Relocations.cpp and move scanRelocs there. 2016-05-24 20:24:43 +00:00
Writer.h Do not pass Symtab to markLive/doICF since Symtab is globally accessible. 2016-05-02 19:30:42 +00:00

README.md

See docs/NewLLD.rst