hanchenye-llvm-project/lld/ELF
Peter Smith f0c70f8d34 [ELF] Pre-create ThunkSections at Target specific intervals
When an OutputSection is larger than the branch range for a Target we
need to place thunks such that they are always in range of their caller,
and sufficiently spaced to maximise the number of callers that can use
the thunk. We use the simple heuristic of placing the
ThunkSection at intervals corresponding to a target specific branch range.
If the OutputSection is small we put the thunks at the end of the executable
sections.

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

llvm-svn: 316751
2017-10-27 08:58:28 +00:00
..
Arch [ELF] Pre-create ThunkSections at Target specific intervals 2017-10-27 08:58:28 +00:00
Bits.h Move bit operations to a new file, ELF/Bits.h. 2017-10-26 21:37:17 +00:00
CMakeLists.txt [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
Config.h [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
Driver.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
Driver.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
DriverUtils.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
EhFrame.cpp De-template EhReader. NFC. 2017-10-27 03:14:09 +00:00
EhFrame.h De-template EhReader. NFC. 2017-10-27 03:14:09 +00:00
Filesystem.cpp [lld] Move Threads to Common 2017-10-13 18:22:55 +00:00
Filesystem.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
GdbIndex.cpp [ELF] Decompress debug info sections early 2017-10-04 00:19:41 +00:00
GdbIndex.h Remove unused member variable. 2017-09-24 23:12:36 +00:00
ICF.cpp [lld] Move Threads to Common 2017-10-13 18:22:55 +00:00
ICF.h [ELF] - Apply clang-format. NFC. 2017-07-18 11:55:35 +00:00
InputFiles.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
InputFiles.h [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
InputSection.cpp Do not use InputSection::getFile<ELFT>() if InputSection::File suffices. NFC. 2017-10-27 03:25:04 +00:00
InputSection.h De-template elf::getObjMsg. NFC. 2017-10-27 03:13:54 +00:00
LTO.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
LTO.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
LinkerScript.cpp Unassign sections if they are "assigned" to /DISCARD/. 2017-10-25 22:03:21 +00:00
LinkerScript.h [ELF] Record created ThunkSections in InputSectionDescription [NFC]. 2017-10-27 08:56:20 +00:00
MapFile.cpp [lld] Move Threads to Common 2017-10-13 18:22:55 +00:00
MapFile.h Merge OutputSectionCommand and OutputSection. 2017-07-27 19:22:43 +00:00
MarkLive.cpp [ELF] - Do not collect SHT_REL[A] sections unconditionally when --gc-sections and --emit-relocs used together. 2017-10-24 08:26:32 +00:00
Memory.h [ELF] - Apply clang-format. NFC. 2017-07-18 11:55:35 +00:00
Options.td [ELF] - Implement --orphan-handling option. 2017-10-25 15:20:30 +00:00
OutputSections.cpp [lld] Move Threads to Common 2017-10-13 18:22:55 +00:00
OutputSections.h Rename processCommands -> processSectionCommands. 2017-10-11 02:28:28 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Relocations.cpp [ELF] Pre-create ThunkSections at Target specific intervals 2017-10-27 08:58:28 +00:00
Relocations.h [ELF] Pre-create ThunkSections at Target specific intervals 2017-10-27 08:58:28 +00:00
ScriptLexer.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
ScriptLexer.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
ScriptParser.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
ScriptParser.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
Strings.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
Strings.h [ELF] - Update after LLVM r314883 change. NFC. 2017-10-04 08:50:34 +00:00
SymbolTable.cpp De-template elf::getObjMsg. NFC. 2017-10-27 03:13:54 +00:00
SymbolTable.h Revert r315877: Simplify. 2017-10-16 18:49:28 +00:00
Symbols.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
Symbols.h Refactor duplicated comment. NFC. 2017-10-24 16:27:31 +00:00
SyntheticSections.cpp [ELF] Pre-create ThunkSections at Target specific intervals 2017-10-27 08:58:28 +00:00
SyntheticSections.h De-template EhFrameHdr. NFC. 2017-10-27 03:14:24 +00:00
Target.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
Target.h [ELF] Pre-create ThunkSections at Target specific intervals 2017-10-27 08:58:28 +00:00
Thunks.cpp [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
Thunks.h Define RelType to represent relocation types. 2017-10-11 22:49:24 +00:00
Writer.cpp Simplify logic to find the last executable segment. NFC. 2017-10-27 05:08:39 +00:00
Writer.h [MIPS] Generate thunks for microMIPS code 2017-10-03 13:30:02 +00:00

README.md

See docs/NewLLD.rst