hanchenye-llvm-project/lld
Rui Ueyama 69c778c084 Implement almost-zero-cost --trace-symbol.
--trace-symbol is a command line option to watch a symbol.
Previosly, we looked up a hash table for a new symbol if the
option is given. Any code that looks up a hash table for each
symbol is expensive because the linker handles a lot of symbols.
In our design, we look up a hash table strictly only once
for a symbol, so --trace-symbol was an exception.

This patch improves efficiency of the option by merging the
hash table into the symbol table.

Instead of looking up a separate hash table with a string,
this patch sets `Traced` flag to symbols specified by --trace-symbol.
So, if you insert a symbol and get a symbol with `Traced` flag on,
you know that you need to print out a log message for the symbol.
This is nearly zero cost.

llvm-svn: 275716
2016-07-17 17:50:09 +00:00
..
COFF COFF: Update error messages so that they start with lowercase letters. 2016-07-15 01:12:24 +00:00
ELF Implement almost-zero-cost --trace-symbol. 2016-07-17 17:50:09 +00:00
cmake/modules
docs Update the readme text. 2016-07-13 19:14:25 +00:00
include/lld [lld] Update LLD for Archive::child_iterator change in LLVM r275361. 2016-07-14 02:35:18 +00:00
lib [lld] Update LLD for Archive::child_iterator change in LLVM r275361. 2016-07-14 02:35:18 +00:00
test Implement almost-zero-cost --trace-symbol. 2016-07-17 17:50:09 +00:00
tools/lld Update error message to use "ld.lld" instead of "lld -flavor gnu". 2016-07-14 17:57:33 +00:00
unittests Fix Clang-tidy misc-unused-using-decls and Include What You Use warnings. 2016-04-21 17:14:10 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.gitignore
CMakeLists.txt Inline a trivial CMakeLists.txt. 2016-03-03 01:56:23 +00:00
CODE_OWNERS.TXT
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:40:59 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.