llvm-project/lld/test/wasm
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
..
Inputs [WebAssembly][lld] Exclude COMDAT sections 2020-12-10 17:47:41 -08:00
lto [test] Make verify-invalid.ll work with legacy and new PMs 2020-12-02 09:56:18 -08:00
alias.s [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
archive-export.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
archive-no-index.s [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
archive-weak-undefined.ll [lld][WebAssembly] Implement --unresolved-symbols 2020-11-17 16:27:06 -08:00
archive.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
bss-only.s [lld][WebAssembly] Don't emit names for data segments that we omit 2020-12-09 20:59:26 -08:00
bsymbolic.s [lld][WebAssembly] Split __wasm_apply_relocs function in two 2020-12-10 17:07:39 -08:00
call-indirect.ll [WebAssembly] Add support for named data sections in wasm binaries 2020-12-09 12:57:07 -08:00
check-arch-32-in-64.test [WebAssembly] Improved LLD error messages in case of mixed wasm32/wasm64 object files 2020-10-29 17:15:59 -07:00
check-arch-64-in-32.test [WebAssembly] Improved LLD error messages in case of mixed wasm32/wasm64 object files 2020-10-29 17:15:59 -07:00
comdat-sections.s [WebAssembly][lld] Exclude COMDAT sections 2020-12-10 17:47:41 -08:00
comdats.ll [lld][WebAssembly] Fix handling of comdat functions in init array. 2019-07-17 18:43:36 +00:00
command-exports-no-tors.s [WebAssembly] New-style command support 2020-09-30 19:02:40 -07:00
command-exports.s [WebAssembly] New-style command support 2020-09-30 19:02:40 -07:00
compress-relocs.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
conflict.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
corrupted.wasm.test [lld/WebAssembly] Slightly nicer error message for malformed input files 2019-06-26 00:52:46 +00:00
ctor-gc-setup.test [WebAssembly] GC constructor functions in otherwise unused archive objects 2020-10-12 18:54:57 -07:00
ctor-gc.test [lld][WebAssembly] Don't GC library objects under `--whole-archive` 2020-10-12 21:19:19 -07:00
ctor-no-gc.test [WebAssembly] GC constructor functions in otherwise unused archive objects 2020-10-12 18:54:57 -07:00
ctor_return_value.s [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
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 [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
data-layout.ll Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
data-segment-merging.ll [lld][WebAssembly] Delay creation of internal __wasm_memory_init function 2020-12-10 10:47:18 -08:00
data-segments.ll [lld][WebAssembly] Split __wasm_apply_relocs function in two 2020-12-10 17:07:39 -08:00
debug-removed-fn.ll [FastISel] Flush local value map on every instruction 2021-01-11 08:32:36 -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] Fixed byval args missing DWARF DW_AT_LOCATION 2021-01-07 10:31:38 -08:00
demangle.s [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
driver.ll [lld][WebAssembly] Do not require --shared-memory with --relocatable 2020-04-14 13:49:28 -07:00
early-exit-for-bad-paths.s [lld][WebAssembly] Add initial support for -Map/--print-map 2020-09-12 16:10:51 -07:00
emit-relocs-fpic.s [lld][WebAssembly] Error on import/export of mutable global without `mutable-globals` feature 2020-09-12 14:28:14 -07:00
emit-relocs.ll Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
entry-signature.s [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
entry.ll
event-section.ll [WebAssembly] Handle event exports 2020-04-06 11:28:38 -07:00
export-all.ll
export-all.s [lld][WebAssembly] Fix --export-all when __stack_pointer is present 2020-09-15 06:17:01 -07:00
export-empty.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
export-name.ll [WebAssembly] Support wasm exports with zero-length names. 2020-03-26 16:20:43 -07:00
export-optional-lazy.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
export-table.test Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
export.ll Fix lld testcases I missed in D78413 (9b9454a) 2020-04-20 12:48:57 -07:00
externref.s [WebAssembly] Add support for externalref to MC and wasm-ld 2020-06-22 15:57:24 -07:00
fatal-warnings.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
function-imports-first.ll [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
function-imports.ll [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
function-index.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
gc-imports.s [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
gc-sections.ll [WebAssembly] Add support for named data sections in wasm binaries 2020-12-09 12:57:07 -08:00
global-base.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
globals.s [WebAssembly] Add assembly syntax for mutable globals 2020-09-11 11:11:02 -07:00
growable-table.test Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
import-attribute-mismatch.s [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
import-memory.test Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
import-module.ll
import-name.ll [lld][WebAssembly] Allow symbols with explict import names to be undefined at link time. 2020-02-19 18:02:49 -08:00
import-table.test Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
init-fini-no-gc.ll [WebAssembly] New-style command support 2020-09-30 19:02:40 -07:00
init-fini.ll [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
invalid-stack-size.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
large-memory.test Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
lit.local.cfg [WebAssembly] Fix list of relocations with addends in lld 2019-06-26 00:52:42 +00:00
load-undefined.test [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
local-symbols.ll [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
locals-duplicate.test [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
many-functions.ll Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
map-file.s [WebAssembly] Add support for named data sections in wasm binaries 2020-12-09 12:57:07 -08:00
multivalue-return-func-types.s [lld][WebAssembly] Emit all return types of multivalue functions 2020-08-12 13:14:15 -07:00
mutable-global-exports.s [lld][WebAssembly] Allow exporting of mutable globals 2020-09-30 17:53:27 -07:00
mutable-globals.s [lld][WebAssembly] Allow exporting of mutable globals 2020-09-30 17:53:27 -07:00
no-tls.s [lld][WebAssembly] Delay creation of internal __wasm_memory_init function 2020-12-10 10:47:18 -08:00
optional-symbol.s [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
pic-static.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
pie.ll [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
reloc-addend.ll Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
relocatable.ll Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
relocation-bad-tls.s [lld] Use %t file in test 2020-11-16 10:49:38 +01:00
reproduce.ll
responsefile.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
section-symbol-relocs.yaml [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
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 Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00
shared-memory.yaml [lld][WebAssembly] Set memory limits correctly for PIC + shared memory 2020-12-03 18:14:28 -08:00
shared-needed.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
shared.ll [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
signature-mismatch-export.ll [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
signature-mismatch-relocatable.s [lld][WebAssembly] Fix for --relocatable and signature mismatches 2020-05-13 10:27:09 -07:00
signature-mismatch-unknown.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
signature-mismatch-weak.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
signature-mismatch.ll [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
stack-first.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
stack-pointer.ll [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
startstop.ll [lld][WebAssembly] Fix __start/__stop symbols when combining input segments 2019-07-08 10:35:08 +00:00
strip-all.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
strip-debug.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
symbol-type-mismatch.s [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
target-feature-disallowed.yaml [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
target-feature-none.yaml [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
target-feature-required.yaml [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
target-feature-used.yaml [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
threads.s [lld][COFF][ELF][WebAssembly] Replace --[no-]threads /threads[:no] with --threads={1,2,...} /threads:{1,2,...} 2020-03-31 08:46:12 -07:00
tls-align.s [lld][WebAssembly] Convert TLS tests to asm format 2020-11-10 11:38:53 -08:00
tls-no-shared.s [lld][WebAssembly] Fix for TLS + --relocatable 2021-01-13 07:49:39 -08:00
tls.s [lld][WebAssembly] Fix for TLS + --relocatable 2021-01-13 07:49:39 -08:00
trace-symbol.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
trace.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
undefined-data.s [lld][WebAssembly] Convert more tests to asm format. NFC. 2020-11-19 16:57:00 -08:00
undefined-entry.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
undefined-weak-call.s [lld][WebAssembly] Convert more tests to asm format. NFC. 2020-11-19 16:57:00 -08:00
undefined.ll [lld][WebAssembly] Report undefined symbols during scanRelocations 2019-07-09 20:45:20 +00:00
unresolved-symbols.s [lld][WebAssembly] Implement --unresolved-symbols 2020-11-17 16:27:06 -08:00
version.s [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
visibility-hidden.ll [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
weak-alias-overide.ll [WebAssembly] Add support for named globals in the object format. 2020-11-19 00:17:22 -08:00
weak-alias.ll [WebAssembly] Add support for table linking to wasm-ld 2021-01-15 09:21:52 +01:00
weak-and-strong-undef.s [lld][WebAssembly] Handle mixed strong and weak undefined symbols 2020-02-28 10:16:10 -08:00
weak-symbols.s [WebAssembly] Add support for named data sections in wasm binaries 2020-12-09 12:57:07 -08:00
weak-undefined-pic.s [lld][WebAssembly] Split __wasm_apply_relocs function in two 2020-12-10 17:07:39 -08:00
weak-undefined.s [lld][WebAssembly] Convert more tests to asm format. NFC. 2020-11-19 16:57:00 -08:00
whole-archive.test [lld][WebAssembly] Convert some lld tests to assembly 2020-05-28 16:52:01 -07:00
wrap.ll Reland "[lib/Support/YAMLTraits] - Don't print leading zeroes when dumping Hex8/Hex16/Hex32 types." (https://reviews.llvm.org/D90930). 2020-11-18 13:08:46 +03:00