llvm-project/lld
Derek Schuff 3a05c3969c [WebAssembly] Track frame registers through VReg and local allocation
This change has 2 components:

Target-independent: add a method getDwarfFrameBase to TargetFrameLowering. It
describes how the Dwarf frame base will be encoded.  That can be a register (the
default), the CFA (which replaces NVPTX-specific logic in DwarfCompileUnit), or
a DW_OP_WASM_location descriptr.

WebAssembly: Allow WebAssemblyFunctionInfo::getFrameRegister to return the
correct virtual register instead of FP32/SP32 after WebAssemblyReplacePhysRegs
has run.  Make WebAssemblyExplicitLocals store the local it allocates for the
frame register. Use this local information to implement getDwarfFrameBase

The result is that the DW_AT_frame_base attribute is correctly encoded for each
subprogram, and each param and local variable has a correct DW_AT_location that
uses DW_OP_fbreg to refer to the frame base.

Differential Revision: https://reviews.llvm.org/D71681
2020-01-16 13:51:17 -08:00
..
COFF [COFF] Warn that LLD does not support /PDBSTRIPPED: 2020-01-15 15:11:19 -08:00
Common [Support] ThreadPoolExecutor fixes for Windows/MinGW 2020-01-10 12:44:01 +00:00
ELF [ELF] -r: don't create .interp 2020-01-16 12:14:32 -08:00
MinGW LLD: Don't use the stderrOS stream in link before it's reassigned. 2019-11-21 10:55:03 -05:00
cmake/modules
docs Bump the trunk major version to 11 2020-01-15 13:38:01 +01:00
include/lld Make lld cmake not compute commit revision twice 2020-01-16 09:55:36 -05:00
lib [lld] Fix trivial typos in comments 2020-01-06 10:25:48 -08:00
test [WebAssembly] Track frame registers through VReg and local allocation 2020-01-16 13:51:17 -08:00
tools/lld Make it possible to redirect not only errs() but also outs() 2019-11-18 11:18:06 +09:00
unittests [MachO] Add a test for detecting reserved unit length. 2020-01-15 16:55:11 +07:00
utils Python 2/3 compatibility 2019-03-20 07:42:13 +00:00
wasm [lld][WebAssembly] Add libcall symbols to the link when LTO is being used. 2020-01-10 11:01:05 -08:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt try to unbreak build after 4b6d9ac392 2020-01-16 10:12:35 -05:00
CODE_OWNERS.TXT
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +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.

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.