llvm-project/lld
Martin Storsjö e1adf90826 [LLD] [COFF] Avoid doing repeated fuzzy symbol lookup for each iteration. NFC.
This is run every time around in the main linker loop. Once a match
has been found, stop trying to rematch such a symbol.

Not sure if this has any actual measurable performance impact though
(SymbolTable::findMangle() iterates over the whole symbol table for
each call and does fuzzy matching on top of that) but this makes the
code more reassuring to read at least. (This is in practice run for def
files listing undecorated stdcall functions to be exported.)

Differential Revision: https://reviews.llvm.org/D104529
2021-06-19 22:32:37 +03:00
..
COFF [LLD] [COFF] Avoid doing repeated fuzzy symbol lookup for each iteration. NFC. 2021-06-19 22:32:37 +03:00
Common
ELF [ELF] Consider that NOLOAD sections should be placed in a PT_LOAD segment 2021-06-16 12:36:45 +02:00
MachO [lld/mac] Make sure __thread_ptrs is in front of __thread_bss 2021-06-19 12:56:43 -04:00
MinGW [LLD] [MinGW] Print errors/warnings in lld-link with a "ld.lld" prefix 2021-06-19 22:32:37 +03:00
cmake/modules [cmake] Add support for multiple distributions 2021-05-12 11:13:18 -07:00
docs [lld][WebAssembly] Add new `--import-undefined` option 2021-06-17 11:44:21 -07:00
include/lld [WebAssembly] Rename event to tag 2021-06-17 20:34:19 -07:00
lib
test [LLD] [MinGW] Print errors/warnings in lld-link with a "ld.lld" prefix 2021-06-19 22:32:37 +03:00
tools/lld [lld-macho] Fix BUILD_SHARED_LIBS build 2021-06-03 19:58:43 +01:00
unittests
utils
wasm [WebAssembly] Rename event to tag 2021-06-17 20:34:19 -07:00
.clang-format
.clang-tidy NFC: .clang-tidy: Inherit configs from parents to improve maintainability 2021-06-08 08:25:59 -07:00
.gitignore
CMakeLists.txt Fix lld macho standalone build by including llvm/Config/llvm-config.h instead of llvm/Config/config.h 2021-05-19 11:15:07 -04:00
CODE_OWNERS.TXT
LICENSE.TXT
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.

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.