llvm-project/lld/ELF
Alexander Shaposhnikov 8acc3b4ab0 [lld][ELF] Support adrp+ldr GOT optimization for AArch64
This diff adds first bits to support relocation relaxations for AArch64
discussed on https://github.com/ARM-software/abi-aa/pull/106.
In particular, the case of

adrp x0, :got: symbol
ldr x0, [x0, :got_lo12: symbol]

is handled.

Test plan: make check-all

Differential revision: https://reviews.llvm.org/D112063
2022-01-10 05:20:37 +00:00
..
Arch [lld][ELF] Support adrp+ldr GOT optimization for AArch64 2022-01-10 05:20:37 +00:00
AArch64ErrataFix.cpp [ELF] Change InputSectionDescription members from vector to SmallVector 2021-12-26 13:06:54 -08:00
AArch64ErrataFix.h [LLD][ELF] Optimize linker script filename glob pattern matching NFC 2020-09-16 10:26:11 +01:00
ARMErrataFix.cpp [ELF] Change InputSectionDescription members from vector to SmallVector 2021-12-26 13:06:54 -08:00
ARMErrataFix.h [LLD][ELF] Optimize linker script filename glob pattern matching NFC 2020-09-16 10:26:11 +01:00
CMakeLists.txt [CMake] Make `intrinsics_gen` dependency unconditional. 2020-07-17 16:43:17 -07:00
CallGraphSort.cpp [ELF] Avoid referencing SectionBase::repl after ICF 2021-12-24 12:09:48 -08:00
CallGraphSort.h
Config.h [ELF] ScriptParser: change std::vector to SmallVector 2021-12-26 20:12:55 -08:00
DWARF.cpp [ELF] Add ELFFileBase::{elfShdrs,numELFShdrs} to avoid duplicate llvm::object::ELFFile::sections() 2021-12-24 17:10:38 -08:00
DWARF.h [ELF] --gdb-index: skip SHF_GROUP .debug_info 2020-08-13 09:11:01 -07:00
Driver.cpp [ELF] Move gotIndex/pltIndex/globalDynIndex to SymbolAux 2022-01-09 13:43:27 -08:00
Driver.h [ELF][LTO] Call madvise(MADV_DONTNEED) on MemoryBuffer instances 2021-12-30 11:36:58 -08:00
DriverUtils.cpp [ELF] Update comments/diagnostics for some long options to use the canonical two-dash form 2021-10-25 12:52:06 -07:00
EhFrame.cpp ELF: Teach the linker about the 'B' augmentation string character. 2021-01-05 19:51:11 -08:00
EhFrame.h [ELF] --icf: don't fold text sections with LSDA 2020-08-05 09:16:28 -07:00
ICF.cpp [ELF] Avoid referencing SectionBase::repl after ICF 2021-12-24 12:09:48 -08:00
ICF.h
InputFiles.cpp [ELF][LTO] Cache symbol table of lazy BitcodeFile 2021-12-30 12:03:29 -08:00
InputFiles.h [ELF][LTO] Call madvise(MADV_DONTNEED) on MemoryBuffer instances 2021-12-30 11:36:58 -08:00
InputSection.cpp [lld][ELF] Support adrp+ldr GOT optimization for AArch64 2022-01-10 05:20:37 +00:00
InputSection.h [ELF] Change EhInputSection::pieces to SmallVector 2021-12-27 21:34:38 -08:00
LTO.cpp [ELF] SymbolTable:🔣 don't filter out PlaceholderKind 2021-12-26 18:11:45 -08:00
LTO.h
LinkerScript.cpp [ELF] Change InStruct/Partition pointers to unique_ptr 2021-12-27 18:15:23 -08:00
LinkerScript.h [ELF] LinkerScript/OutputSection: change other std::vector members to SmallVector 2021-12-26 13:53:47 -08:00
MapFile.cpp [ELF] Change objectFiles to ELFFileBase * 2021-12-15 00:37:10 -08:00
MapFile.h [ELF] --cref: If -Map is specified, print to the map file 2021-11-29 14:14:53 -08:00
MarkLive.cpp [ELF] Switch cNamedSections to SmallVector. NFC 2021-12-30 16:08:26 -08:00
MarkLive.h
Options.td [ELF] Enforce double-dash form for --color-diagnostics/--rsp-quoting/--symbol-ordering-file 2022-01-06 01:02:14 -08:00
OutputSections.cpp [ELF] LinkerScript/OutputSection: change other std::vector members to SmallVector 2021-12-26 13:53:47 -08:00
OutputSections.h [ELF] LinkerScript/OutputSection: change other std::vector members to SmallVector 2021-12-26 13:53:47 -08:00
README.md
Relocations.cpp [ELF] Move gotIndex/pltIndex/globalDynIndex to SymbolAux 2022-01-09 13:43:27 -08:00
Relocations.h [ELF] Optimize basic block section bytesDropped/jumpInstrMods 2021-12-26 22:17:30 -08:00
ScriptLexer.cpp [ELF] Optimize ScriptLexer::getLineNumber by caching the previous line number and offset 2021-06-22 15:35:24 -07:00
ScriptLexer.h [ELF] Optimize ScriptLexer::getLineNumber by caching the previous line number and offset 2021-06-22 15:35:24 -07:00
ScriptParser.cpp [ELF] ScriptParser: change std::vector to SmallVector 2021-12-26 20:12:55 -08:00
ScriptParser.h [ELF] Improve --export-dynamic-symbol performance by checking whether wildcard is really used 2020-06-17 17:12:10 -07:00
SymbolTable.cpp [lld] Add support for other demanglers other than Itanium 2022-01-05 03:25:41 +00:00
SymbolTable.h [ELF] SymbolTable:🔣 don't filter out PlaceholderKind 2021-12-26 18:11:45 -08:00
Symbols.cpp [ELF] Move gotIndex/pltIndex/globalDynIndex to SymbolAux 2022-01-09 13:43:27 -08:00
Symbols.h [ELF] Move gotIndex/pltIndex/globalDynIndex to SymbolAux 2022-01-09 13:43:27 -08:00
SyntheticSections.cpp [ELF] Move gotIndex/pltIndex/globalDynIndex to SymbolAux 2022-01-09 13:43:27 -08:00
SyntheticSections.h [ELF] Change InStruct/Partition pointers to unique_ptr 2021-12-27 18:15:23 -08:00
Target.cpp [ELF] Change common diagnostics to report both object file location and source file location 2021-10-28 09:38:45 -07:00
Target.h [lld][ELF] Support adrp+ldr GOT optimization for AArch64 2022-01-10 05:20:37 +00:00
Thunks.cpp [ELF][PPC32] Support .got2 in an output section description 2021-12-23 11:32:44 -08:00
Thunks.h [lld] Add missing includes (NFC) 2021-06-03 18:55:18 +02:00
Writer.cpp [ELF] Update help messages to prefer canonical name for some long options 2022-01-06 00:43:46 -08:00
Writer.h [ELF] Move getOutputSectionName from Writer.cpp to LinkerScript.cpp. NFC 2021-11-20 22:18:09 -08:00

README.md

See docs/NewLLD.rst