llvm-project/lld/COFF
Reid Kleckner d99ac29a24 All .xdata sections are eligble for ICF
Summary:
Many small functions have identical unwind info because they push the
same sets of CSRs in the same order and have the same stack and prologue
size. The VC linker merges duplicate .xdata, and so should LLD.

This reduces the .xdata section size of clang.exe from 1.8MB to 94KB.

Reviewers: pcc, ruiu

Subscribers: llvm-commits

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

llvm-svn: 318547
2017-11-17 19:50:10 +00:00
..
CMakeLists.txt [lld] unified COFF and ELF error handling on new Common/ErrorHandler 2017-10-25 22:28:38 +00:00
Chunks.cpp [COFF] Add support for IMAGE_REL_ARM64_SECREL 2017-11-08 07:31:50 +00:00
Chunks.h Rename SymbolBody -> Symbol 2017-11-03 21:21:47 +00:00
Config.h Remove a std::map and std::set that show up in LLD profiles 2017-11-13 18:38:53 +00:00
DLL.cpp Remove {get,set}Align accessor functions and use Alignment member variable instead. 2017-09-13 21:54:55 +00:00
DLL.h Revert "Merge IAT and ILT." 2017-06-02 18:49:38 +00:00
Driver.cpp Remove a std::map and std::set that show up in LLD profiles 2017-11-13 18:38:53 +00:00
Driver.h Rename SymbolBody -> Symbol 2017-11-03 21:21:47 +00:00
DriverUtils.cpp Use DenseMap instead of std::map in fixupExports 2017-11-10 19:12:01 +00:00
ICF.cpp All .xdata sections are eligble for ICF 2017-11-17 19:50:10 +00:00
InputFiles.cpp [COFF] Avoid "Body" as a local variable name. 2017-11-03 22:49:02 +00:00
InputFiles.h Rename SymbolBody -> Symbol 2017-11-03 21:21:47 +00:00
LTO.cpp Rename replaceBody -> replaceSymbol. 2017-11-03 22:48:47 +00:00
LTO.h Move new lld's code to Common subdirectory. 2017-10-02 21:00:41 +00:00
MapFile.cpp Rename SymbolBody -> Symbol 2017-11-03 21:21:47 +00:00
MapFile.h COFF: Change the /lldmap output format to be more like the ELF linker. 2017-01-14 03:14:46 +00:00
MarkLive.cpp Rename SymbolBody -> Symbol 2017-11-03 21:21:47 +00:00
Memory.h Remove lld/Support/Memory.h. 2016-12-18 14:06:06 +00:00
MinGW.cpp [COFF] Improve the autoexport check for symbols from import libraries with -opt:noref 2017-11-16 07:22:44 +00:00
MinGW.h [COFF] Avoid forward declaring StringSet, fix build 2017-10-19 20:19:16 +00:00
Options.td [MinGW] Output debug info by default, unless the -s parameter is passed 2017-11-03 22:10:37 +00:00
PDB.cpp Remove dead include. 2017-11-13 18:10:37 +00:00
PDB.h [LLD COFF/PDB] Incrementally update the build id. 2017-08-15 21:31:41 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Strings.cpp Fix build breakage. 2017-06-19 18:04:34 +00:00
Strings.h COFF: Define overloaded toString functions. 2016-12-07 23:17:02 +00:00
SymbolTable.cpp Rename replaceBody -> replaceSymbol. 2017-11-03 22:48:47 +00:00
SymbolTable.h Rename SymbolBody -> Symbol 2017-11-03 21:21:47 +00:00
Symbols.cpp Rename SymbolBody -> Symbol 2017-11-03 21:21:47 +00:00
Symbols.h Remove a std::map and std::set that show up in LLD profiles 2017-11-13 18:38:53 +00:00
Writer.cpp [COFF] Don't write long section names for sections that will be mapped at runtime 2017-11-16 12:06:42 +00:00
Writer.h Remove Symtab aliases. 2017-08-28 21:51:07 +00:00

README.md

See docs/NewLLD.rst