hanchenye-llvm-project/lld/test/wasm
Derek Schuff ff171acf84 [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.

This is a reland of rG3a05c3969c18 with fixes for the expensive-checks
and Windows builds

Differential Revision: https://reviews.llvm.org/D71681
2020-01-17 17:23:56 -08:00
..
Inputs Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
lto [lld][WebAssembly] Add libcall symbols to the link when LTO is being used. 2020-01-10 11:01:05 -08:00
alias.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
archive-export.ll
archive-no-index.ll
archive-weak-undefined.ll [lld][WebAssembly] Fix for weak references to data symbols in archives 2019-10-17 03:21:02 +00:00
archive.ll
bss-only.ll [WebAssembly] Elide data segments for .bss sections 2019-10-15 19:05:11 +00:00
call-indirect.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
comdats.ll
compress-relocs.ll
conflict.test
corrupted.wasm.test
custom-section-name.ll [WebAssembly] Elide data segments for .bss sections 2019-10-15 19:05:11 +00:00
custom-sections.ll
cxx-mangling.ll
data-layout.ll [WebAssembly] Elide data segments for .bss sections 2019-10-15 19:05:11 +00:00
data-segment-merging.ll [WebAssembly] Sort output data sections to place .bss last 2019-09-19 01:14:59 +00:00
data-segments.ll [WebAssembly] Elide data segments for .bss sections 2019-10-15 19:05:11 +00:00
debug-removed-fn.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
debuginfo-relocs.s [WebAssembly][lld] Fix crash when applying relocations to debug sections 2019-08-20 18:39:24 +00:00
debuginfo.test [WebAssembly] Track frame registers through VReg and local allocation 2020-01-17 17:23:56 -08:00
demangle.ll
driver.ll
emit-relocs-fpic.s
emit-relocs.ll
entry-signature.ll
entry.ll
event-section.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
export-all.ll
export-name.ll [WebAssembly] Add new `export_name` clang attribute for controlling wasm export names 2019-12-11 11:54:57 -08:00
export-optional-lazy.ll [lld] Fix trivial typos in comments 2020-01-06 10:25:48 -08:00
export-table.test
export.ll [WebAssembly] Implement NO_STRIP 2019-08-29 22:41:05 +00:00
fatal-warnings.ll
function-imports-first.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
function-imports.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
function-index.test [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
gc-imports.ll
gc-sections.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
global-base.test [lld][WebAssembly] Add optional symbols after input file handling 2019-08-08 16:58:36 +00:00
growable-table.test [lld][WebAssembly] Support for growable tables 2019-08-27 22:58:21 +00:00
import-attribute-mismatch.ll [lld][WebAssebmly] Preserve custom import attributes with LTO 2019-10-17 05:16:54 +00:00
import-memory.test [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
import-module.ll
import-name.ll [WebAssebmly][MC] Support .import_name/.import_field asm directives 2019-12-06 15:09:56 -08:00
import-table.test
init-fini-gc.ll
init-fini.ll
invalid-stack-size.test
large-memory.test
lit.local.cfg
load-undefined.test
local-symbols.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
locals-duplicate.test [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
many-functions.ll
no-tls.test [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
optional-symbol.ll [lld][WebAssembly] Add optional symbols after input file handling 2019-08-08 16:58:36 +00:00
pic-static.ll [WebAssembly][lld] Fix for static linking of PIC code 2019-10-29 18:58:56 -07:00
pie.ll
reloc-addend.ll [WebAssembly] Sort output data sections to place .bss last 2019-09-19 01:14:59 +00:00
relocatable.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
reproduce.ll
responsefile.test
section-symbol-relocs.yaml
shared-export-dynamic.ll [lld][WebAssembly] Honor --no-export-dynamic even with -shared 2019-08-19 16:34:51 +00:00
shared-memory-no-atomics.yaml
shared-memory.yaml [WebAssembly] Initialize memory in start function 2019-09-04 19:50:39 +00:00
shared-needed.ll
shared.ll
signature-mismatch-export.ll [lld][WebAssembly] Use a more meaningful name for stub functions 2020-01-16 14:55:37 -08:00
signature-mismatch-unknown.ll [lld] Fix trivial typos in comments 2020-01-06 10:25:48 -08:00
signature-mismatch-weak.ll
signature-mismatch.ll [lld][WebAssembly] Use a more meaningful name for stub functions 2020-01-16 14:55:37 -08:00
stack-first.test [lld][WebAssembly] Add optional symbols after input file handling 2019-08-08 16:58:36 +00:00
stack-pointer.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
startstop.ll
strip-all.test
strip-debug.test
symbol-type-mismatch.ll
target-feature-disallowed.yaml
target-feature-none.yaml
target-feature-required.yaml
target-feature-used.yaml
tls-align.ll [WebAssembly] Sort output data sections to place .bss last 2019-09-19 01:14:59 +00:00
tls.ll [WebAssembly] Sort output data sections to place .bss last 2019-09-19 01:14:59 +00:00
trace-symbol.ll
trace.test
undefined-data.ll
undefined-entry.test
undefined-weak-call.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
undefined.ll
version.ll
visibility-hidden.ll
weak-alias-overide.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
weak-alias.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
weak-symbols.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
weak-undefined.ll [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
whole-archive.test
wrap.ll