llvm-project/lld
George Rimar 8f53b6d71e [ELF] - Change the way of sorting local symbols.
rLLD329787 added the stable sorting to SymbolTableBaseSection::postThunkContents.

I profiled the Mozilla (response-O0.txt) from lld-speed-test package and found
std::stable_sort is showing up in profile results and consuming the 3.1% of the total
CPU time in the RelWithDebug build. Total time of postThunkContents is 3.54%, 238ms.

This change reduces postTimeContents time to 50ms, making it to take 0.73% of Total CPU time.

So, instead of sorting the local part I suggest to just rebuild it.
That is what this patch does.

Differential revision: https://reviews.llvm.org/D45519

llvm-svn: 335583
2018-06-26 08:50:09 +00:00
..
COFF [COFF] Fix /wholearchive: to do libpath search again 2018-06-14 19:56:03 +00:00
Common Code cleanup in preparation for adding LTO for wasm. NFC. 2018-05-22 20:20:25 +00:00
ELF [ELF] - Change the way of sorting local symbols. 2018-06-26 08:50:09 +00:00
MinGW [MinGW] Handle the GNU ld option -Map for outputting a linker map 2018-05-15 21:12:29 +00:00
cmake/modules [CMake] Properly conditionalize installation of lld libraries 2018-03-09 13:09:36 +00:00
docs Implement --{push,pop}-state. 2018-05-31 13:00:25 +00:00
include/lld [Darwin] Use errorHandler from liblldCommon 2018-06-12 02:34:04 +00:00
lib [Darwin] Do not error on '-lto_library' option 2018-06-13 18:59:14 +00:00
test [ELF] Fix sort-non-script.s 2018-06-25 17:16:01 +00:00
tools/lld [Darwin] Use errorHandler from liblldCommon 2018-06-12 02:34:04 +00:00
unittests [Darwin] Use errorHandler from liblldCommon 2018-06-12 02:34:04 +00:00
utils Add a script to run various benchmarks and send the result to lnt. 2017-11-14 16:40:30 +00:00
wasm Revert "[WebAssembly] Error on mismatched function signature in final output" 2018-06-22 15:13:10 +00:00
.arcconfig [lld] Set up .arcconfig to point to new Diffusion LLD repository 2017-12-06 20:56:23 +00:00
.clang-format
.gitignore
CMakeLists.txt [WebAssembly] Initial wasm linker implementation 2017-11-17 18:14:09 +00:00
CODE_OWNERS.TXT [WebAssembly] Initial wasm linker implementation 2017-11-17 18:14:09 +00:00
LICENSE.TXT Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
README.md Note that the test .tar.xz has been updated. 2017-12-22 19:37:32 +00:00

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.

Benchmarking

In order to make sure various developers can evaluate patches over the same tests, we create a collection of self contained programs.

It is hosted at https://s3-us-west-2.amazonaws.com/linker-tests/lld-speed-test.tar.xz

The current sha256 is 10eec685463d5a8bbf08d77f4ca96282161d396c65bd97dc99dbde644a31610f.