hanchenye-llvm-project/lld/COFF
Reid Kleckner 5883989e51 Remove a std::map and std::set that show up in LLD profiles
For GC roots, add a bit to SymbolBody to ensure that we don't add the
same root twice, and switch to a vector. In addition to being faster,
this may also fix some latent non-determinism. We iterate the GCRoot
list later and it the order should be deterministic.

For fixupExports, we can just use DenseMap. This is a simple string
uniquing task, and we don't iterate the map.

Reviewers: ruiu

Subscribers: llvm-commits

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

llvm-svn: 318072
2017-11-13 18:38:53 +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 Rename SymbolBody -> Symbol 2017-11-03 21:21:47 +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 [MinGW] Don't autoexport anything from libmsvcrt or libucrtbase 2017-11-06 20:33:13 +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
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 Try harder to delete the temporary file. 2017-11-13 18:15:22 +00:00
Writer.h Remove Symtab aliases. 2017-08-28 21:51:07 +00:00

README.md

See docs/NewLLD.rst