hanchenye-llvm-project/lld/ELF
Rafael Espindola 1eeb26293d Pack symbols a bit more.
Before this patch:

Symbol 56
Defined 80
Undefined 56
SharedSymbol 88
LazyArchive 72
LazyObject 56

With this patch

Symbol 48
Defined 72
Undefined 48
SharedSymbol 80
LazyArchive 64
LazyObject 48

The result is that peak allocation when linking chromium (according to
heaptrack) goes from 578 to 568 MB.

llvm-svn: 330874
2018-04-25 21:44:37 +00:00
..
Arch Fix trap instruction on pp64. 2018-04-20 01:21:24 +00:00
AArch64ErrataFix.cpp Add a SectionBase::getVA helper. NFC. 2018-03-24 00:35:11 +00:00
AArch64ErrataFix.h Consistent (non) use of empty lines in include blocks 2018-02-20 21:53:18 +00:00
Bits.h Move bit operations to a new file, ELF/Bits.h. 2017-10-26 21:37:17 +00:00
CMakeLists.txt [ELF] Add profile guided section layout 2018-04-17 23:30:05 +00:00
CallGraphSort.cpp [ELF] - Never use std::sort. 2018-04-24 09:55:39 +00:00
CallGraphSort.h [ELF] Add profile guided section layout 2018-04-17 23:30:05 +00:00
Config.h Add -z {combreloc,copyreloc,noexecstack,lazy,relro,text}. 2018-04-20 21:24:08 +00:00
Driver.cpp Also demote lazy symbols. 2018-04-25 20:46:08 +00:00
Driver.h Remove "--full-shutdown" and instead use an environment variable LLD_IN_TEST. 2018-02-16 23:41:48 +00:00
DriverUtils.cpp Simplify libtool compatibility hack. 2018-02-07 00:13:01 +00:00
EhFrame.cpp [ELF] Simplify read32. NFC 2018-03-30 23:13:00 +00:00
EhFrame.h De-template EhReader. NFC. 2017-10-27 03:14:09 +00:00
Filesystem.cpp s/LLVM_ON_WIN32/_WIN32/, lld 2018-04-10 13:15:21 +00:00
Filesystem.h Add a missing #include. 2017-11-17 08:17:21 +00:00
GdbIndex.cpp s/uncompress/decompress/g. 2018-02-12 21:56:14 +00:00
GdbIndex.h [ELF] - Teach LLD to use information from .debug_str for error reporting. 2017-11-17 11:57:47 +00:00
ICF.cpp [lld] fix data race in ELF/ICF.cpp 2018-04-03 17:27:39 +00:00
ICF.h Consistent use of header file for ICF and MarkLive 2018-02-20 22:09:59 +00:00
InputFiles.cpp Add --warn-backrefs to maintain compatibility with other linkers 2018-04-09 23:05:48 +00:00
InputFiles.h [ELF] --warn-backrefs: use the same GroupId for object files in the same --{start,end}-lib 2018-04-20 16:33:01 +00:00
InputSection.cpp Remove duplicate "error:" from an error message. 2018-04-23 20:34:35 +00:00
InputSection.h Define InputSection::getOffset inline. 2018-04-19 18:00:46 +00:00
LTO.cpp Added support for LTO options: sample_profile, new_pass_manager and debug_pass_manager 2018-04-09 17:56:07 +00:00
LTO.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
LinkerScript.cpp [ELF] - Eliminate the AssertCommand. 2018-04-25 11:16:31 +00:00
LinkerScript.h [ELF] - Eliminate the AssertCommand. 2018-04-25 11:16:31 +00:00
MapFile.cpp [ELF] - Never use std::sort. 2018-04-24 09:55:39 +00:00
MapFile.h Implement --cref. 2018-03-14 20:29:45 +00:00
MarkLive.cpp Merge {COFF,ELF}/Strings.cpp to Common/Strings.cpp. 2018-02-28 17:38:19 +00:00
MarkLive.h Consistent use of header file for ICF and MarkLive 2018-02-20 22:09:59 +00:00
Options.td [ELF] Add profile guided section layout 2018-04-17 23:30:05 +00:00
OutputSections.cpp [ELF] - Stop setting OutSecOff too early. 2018-04-09 13:01:50 +00:00
OutputSections.h Use exact uint32_t for uint32_t ELF field. NFC. 2018-03-07 19:25:36 +00:00
README.md
Relocations.cpp Add -z {combreloc,copyreloc,noexecstack,lazy,relro,text}. 2018-04-20 21:24:08 +00:00
Relocations.h ELF: Do not create multiple thunks for the same virtual address. 2018-03-09 17:54:43 +00:00
ScriptLexer.cpp Simplify script lexer. 2017-12-26 10:13:10 +00:00
ScriptLexer.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
ScriptParser.cpp [ELF] - Eliminate the AssertCommand. 2018-04-25 11:16:31 +00:00
ScriptParser.h [ELF] Support expressions with -defsym option 2017-11-04 02:03:58 +00:00
SymbolTable.cpp [ELF] - Refactor lazy symbol duplicated code. 2018-04-24 09:41:56 +00:00
SymbolTable.h Make fetchIfLazy only fetch an object file. NFC. 2018-04-03 18:01:18 +00:00
Symbols.cpp Pack symbols a bit more. 2018-04-25 21:44:37 +00:00
Symbols.h Pack symbols a bit more. 2018-04-25 21:44:37 +00:00
SyntheticSections.cpp [ELF] - Never use std::sort. 2018-04-24 09:55:39 +00:00
SyntheticSections.h Reduce code duplication. 2018-04-13 16:07:27 +00:00
Target.cpp [ELF] - Teach LLD to hint about -fdebug-types-section. 2018-03-21 09:19:34 +00:00
Target.h [ELF] - Eliminate Target::isPicRel method. 2018-04-05 12:07:20 +00:00
Thunks.cpp ELF: Add support for short thunks on ARM. 2018-03-29 22:43:52 +00:00
Thunks.h ELF: Allow thunks to change size. NFCI. 2018-03-29 22:32:13 +00:00
Writer.cpp [ELF] - Never use std::sort. 2018-04-24 09:55:39 +00:00
Writer.h Consistent use of header file for ICF and MarkLive 2018-02-20 22:09:59 +00:00

README.md

See docs/NewLLD.rst