[WebAssembly] GC constructor functions in otherwise unused archive objects
authorDan Gohman <dev@sunfishcode.online>
Thu, 1 Oct 2020 03:00:04 +0000 (20:00 -0700)
committerDan Gohman <dev@sunfishcode.online>
Tue, 13 Oct 2020 01:54:57 +0000 (18:54 -0700)
commit950ae43091121ea357f735790f4042264cf40728
tree731e725c8767a0b71f43ff4e89f3b94a09da6e91
parentd938e6e3c24aab46b2d1578012acd11c41ff0d5d
[WebAssembly] GC constructor functions in otherwise unused archive objects

This allows `__wasilibc_populate_libpreopen` to be GC'd in more cases
where it isn't needed, including when linked from Rust's libstd.

Differential Revision: https://reviews.llvm.org/D85062
12 files changed:
lld/test/wasm/Inputs/ctor-ctor.s [new file with mode: 0644]
lld/test/wasm/Inputs/ctor-lib.s [new file with mode: 0644]
lld/test/wasm/Inputs/ctor-setup-call-def.s [new file with mode: 0644]
lld/test/wasm/Inputs/ctor-setup.s [new file with mode: 0644]
lld/test/wasm/Inputs/ctor-start.s [new file with mode: 0644]
lld/test/wasm/ctor-gc-setup.test [new file with mode: 0644]
lld/test/wasm/ctor-gc.test [new file with mode: 0644]
lld/test/wasm/ctor-no-gc.test [new file with mode: 0644]
lld/wasm/InputFiles.h
lld/wasm/MarkLive.cpp
lld/wasm/Symbols.cpp
lld/wasm/Writer.cpp