llvm-project/lld
Andy Wingo 38dfce706f [WebAssembly] Add support for table linking to wasm-ld
This patch adds support to wasm-ld for linking multiple table references
together, in a manner similar to wasm globals. The indirect function
table is synthesized as needed.

To manage the transitional period in which the compiler doesn't yet
produce TABLE_NUMBER relocations and doesn't residualize table symbols,
the linker will detect object files which have table imports or
definitions, but no table symbols. In that case it will synthesize
symbols for the defined and imported tables.

As a change, relocatable objects are now written with table symbols,
which can cause symbol renumbering in some of the tests. If no object
file requires an indirect function table, none will be written to the
file. Note that for legacy ObjFile inputs, this test is conservative: as
we don't have relocs for each use of the indirecy function table, we
just assume that any incoming indirect function table should be
propagated to the output.

Differential Revision: https://reviews.llvm.org/D91870
2021-01-15 09:21:52 +01:00
..
COFF [LLD][COFF] Avoid std::vector resizes during type merging 2021-01-13 14:35:03 -05:00
Common [lld/mac] Add --reproduce option 2020-11-30 08:40:21 -05:00
ELF [ELF][NFCI] small cleanup to OutputSections.h 2021-01-12 23:09:16 +00:00
MachO Fix the warnings on unused variables (NFC) 2021-01-13 13:32:40 -08:00
MinGW [LLD] [MinGW] Pass the --demangle and --no-demangle options to the COFF linker 2021-01-07 10:02:19 +02:00
cmake/modules lld: Let find_package(LLD) work 2020-05-14 09:59:53 -04:00
docs [LLD] Search archives for symbol defs to override COMMON symbols. 2020-12-07 10:09:19 -05:00
include/lld [lld][WebAssembly] Add support for handling table symbols 2021-01-14 11:13:13 +01:00
lib [MachO] Fix enum-int mismatch warning 2020-12-28 17:39:41 +01:00
test [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
tools/lld lld: Fix darwinnew symlink name added in e16c0a9a68 2020-11-24 11:06:51 -05:00
unittests Use INTERFACE_COMPILE_OPTIONS to disable -Wsuggest-override for any target that links to gtest 2020-07-27 08:37:01 -07:00
utils
wasm [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
.clang-format
.clang-tidy [lld] Add .clang-tidy to customize readability-identifier-naming.{Member,Parameter,Variable}Case => camelBack 2020-03-09 08:26:41 -07:00
.gitignore
CMakeLists.txt Remove Python2 fallback and only advertise Python3 in the doc 2020-12-17 15:40:16 +01:00
CODE_OWNERS.TXT Add code owners of new MachO port 2020-09-02 19:32:12 -07:00
LICENSE.TXT
README.md [doc] Place sha256 in lld/README.md into backticks 2021-01-12 10:19:40 -08: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.