llvm-project/lld/COFF
Reid Kleckner 0a1b1d6e62 Shrink SectionChunk by combining Relocs and SectionName sizes
SectionChunk is one of the most frequently allocated data structures in
LLD, since there are about four per function when optimizations and
debug info are enabled (.text, .pdata, .xdata, .debug$S).

A PE COFF file cannot be larger than 2GB, so there is an inherent limit
on the length of the section name and the number of relocations.
Decompose the ArrayRef and StringRef into pointer and size, and put them
back together in the accessors for section name and relocation list.

I plan to gather complete performance numbers later by padding
SectionChunk with dead data and measuring performance after all the size
optimizations are done.

llvm-svn: 359923
2019-05-03 20:17:14 +00:00
..
CMakeLists.txt [LLD][COFF] Early dependency detection 2019-04-01 13:36:59 +00:00
Chunks.cpp Shrink SectionChunk by combining Relocs and SectionName sizes 2019-05-03 20:17:14 +00:00
Chunks.h Shrink SectionChunk by combining Relocs and SectionName sizes 2019-05-03 20:17:14 +00:00
Config.h lld-link: Add /force:multipleres extension to make dupe resource diag non-fatal 2019-05-02 21:21:55 +00:00
DLL.cpp Fix broken export table if .rdata is merged with .text. 2019-01-24 19:02:31 +00:00
DLL.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DebugTypes.cpp [NFC][LLD] Specify namespaces explicity to fix build failure on GCC 5 after r357383 2019-04-01 19:23:56 +00:00
DebugTypes.h [LLD][COFF] Early dependency detection 2019-04-01 13:36:59 +00:00
Driver.cpp lld-link: Add /force:multipleres extension to make dupe resource diag non-fatal 2019-05-02 21:21:55 +00:00
Driver.h lld-link: Implement /swaprun: flag 2019-04-25 14:02:26 +00:00
DriverUtils.cpp lld-link: Add /force:multipleres extension to make dupe resource diag non-fatal 2019-05-02 21:21:55 +00:00
ICF.cpp Shrink SectionChunk by combining Relocs and SectionName sizes 2019-05-03 20:17:14 +00:00
ICF.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InputFiles.cpp [Object] Change getSectionName() to return Expected<StringRef> 2019-05-02 10:32:03 +00:00
InputFiles.h [LLD][COFF] use offset in archive to disambiguate archive members 2019-04-15 19:48:32 +00:00
LTO.cpp Fix names of functions in TargetOptionsCommandFlags.h. NFC. 2019-02-01 02:24:50 +00:00
LTO.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MapFile.cpp Replace `typedef A B` with `using B = A`. NFC. 2019-04-01 00:11:24 +00:00
MapFile.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MarkLive.cpp [COFF] Reduce the size of Chunk and SectionChunk, NFC 2019-04-02 22:11:58 +00:00
MarkLive.h [COFF] Delete unused declarations and add a missing forward declaration. NFC 2019-03-15 09:40:03 +00:00
MinGW.cpp Move MinGW-specific code out of LinkerDriver::link. NFC. 2019-02-19 22:06:44 +00:00
MinGW.h Move MinGW-specific code out of LinkerDriver::link. NFC. 2019-02-19 22:06:44 +00:00
Options.td lld-link: Add /force:multipleres extension to make dupe resource diag non-fatal 2019-05-02 21:21:55 +00:00
PDB.cpp Shrink SectionChunk by combining Relocs and SectionName sizes 2019-05-03 20:17:14 +00:00
PDB.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
SymbolTable.cpp Shrink SectionChunk by combining Relocs and SectionName sizes 2019-05-03 20:17:14 +00:00
SymbolTable.h lld/coff: Implement some support for the comdat selection field 2019-01-30 02:17:27 +00:00
Symbols.cpp [COFF] Pack Name in Symbol as is done in ELF 2019-04-19 22:51:49 +00:00
Symbols.h [COFF] Pack Name in Symbol as is done in ELF 2019-04-19 22:51:49 +00:00
TypeMerger.h [LLD][COFF] Move type merging structures out of PDB.cpp. NFC 2019-04-02 20:43:19 +00:00
Writer.cpp Shrink SectionChunk by combining Relocs and SectionName sizes 2019-05-03 20:17:14 +00:00
Writer.h [LLD][COFF] Generate import modules & COFF groups in PDB 2019-03-29 20:25:34 +00:00

README.md

See docs/NewLLD.rst