llvm-project/llvm/test/CodeGen/WebAssembly
Sam Clegg 4791a668f5 [WebAssembly] WebAssemblyLowerEmscriptenEHSjLj: use getter/setter for accessing tempRet0
Rather than assuming that `tempRet0` exists in linear memory only assume
the getter/setter functions exist.  This avoids conflicting with
binaryen which declares a wasm global for this purpose and defines it's
own getter and setter for that.

The other advantage of doing things this way is that it leaving
it up to the linker/finalizer to decide how to actually store this
temporary.  As it happens binaryen uses a wasm global which is more
appropriate since it is thread safe.

This also allows us to change the way this is stored in the future
(memory, TLS memory, wasm global) without modifying LLVM.

This is part of a 4 part change:
LLVM: https://reviews.llvm.org/D53240
fastcomp: https://github.com/kripken/emscripten-fastcomp/pull/237
emscripten: https://github.com/kripken/emscripten/pull/7358
binaryen: https://github.com/WebAssembly/binaryen/pull/1709

Differential Revision: https://reviews.llvm.org/D53240

llvm-svn: 347340
2018-11-20 19:25:07 +00:00
..
add-prototypes.ll [WebAssembly] Fix broken assumption that all bitcasts are to functions types 2018-11-13 19:14:02 +00:00
address-offsets.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
annotations.mir [WebAssembly] Support EH instructions in InstPrinter 2018-10-25 23:45:48 +00:00
atomic-mem-consistency.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
atomic-rmw.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
byval.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
call.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
cfg-stackify-dbg-skip.ll [WebAssembly] Ignore DBG_VALUE in WebAssemblyCFGStackify pass when looking for block start 2018-10-04 23:31:00 +00:00
cfg-stackify-eh.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
cfg-stackify-eh.mir [WebAssembly] Fix immediate of rethrow when throwing to caller 2018-10-24 23:31:24 +00:00
cfg-stackify.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
cfi.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
comparisons-f32.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
comparisons-f64.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
comparisons-i32.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
comparisons-i64.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
conv-trap.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
conv.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
copysign-casts.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
cpus.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
custom-sections.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
dbgvalue.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
dead-vreg.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
divrem-constant.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
eh-lsda.ll Reland "[WebAssembly] LSDA info generation" 2018-10-25 23:55:10 +00:00
exception.ll [WebAssembly] Split BBs after throw instructions 2018-11-16 00:47:18 +00:00
explicit-locals.mir [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
f16.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
f32.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
f64.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
fast-isel-br-i1.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
fast-isel-i24.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
fast-isel-i256.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
fast-isel-noreg.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
fast-isel.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
frem.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
func.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
function-bitcasts-varargs.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
function-bitcasts.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
global.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
globl.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
i32-load-store-alignment.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
i32.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
i64-load-store-alignment.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
i64.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
i128-returned.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
i128.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
ident.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
immediates.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
implicit-def.ll [WebAssembly] Handle vector IMPLICIT_DEFs. 2018-10-31 23:50:53 +00:00
import-module.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
indirect-import.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
inline-asm-m.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
inline-asm-roundtrip.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
inline-asm.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
irreducible-cfg.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
legalize.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
libcalls.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
lit.local.cfg
load-ext-atomic.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
load-ext.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
load-store-i1.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
load.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
lower-em-ehsjlj-options.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
lower-em-exceptions-whitelist.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
lower-em-exceptions.ll [WebAssembly] WebAssemblyLowerEmscriptenEHSjLj: use getter/setter for accessing tempRet0 2018-11-20 19:25:07 +00:00
lower-em-sjlj-longjmp-only.ll [WebAssembly] Fix LowerEmscriptenEHSjLj when there's only longjmp 2018-11-08 22:56:26 +00:00
lower-em-sjlj.ll [WebAssembly] WebAssemblyLowerEmscriptenEHSjLj: use getter/setter for accessing tempRet0 2018-11-20 19:25:07 +00:00
lower-global-dtors.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
main-declaration.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
main-no-args.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
main-with-args.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
mem-intrinsics.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
memory-addr32.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
muloti4.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
negative-base-reg.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
non-executable-stack.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
null-streamer.ll [WebAssembly] Add null streamer support 2018-11-18 11:58:47 +00:00
offset-atomics.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
offset-fastisel.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
offset-folding.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
offset.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
phi.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
reg-stackify.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
regcopy.mir [WebAssembly] Add V128 to WebAssemblyInstrInfo::copyPhysReg 2018-11-08 02:35:28 +00:00
return-int32.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
return-void.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
returned.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
select.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
signext-arg.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
signext-inreg.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
signext-zeroext.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-arith.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-bitcasts.ll [WebAssembly][NFC] Rename simd-conversions test to simd-bitcasts 2018-09-21 18:46:39 +00:00
simd-comparisons.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-conversions.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-ext-load-trunc-store.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-intrinsics.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-load-store-alignment.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-nested-shuffles.ll [WebAssembly] Retain shuffle types during custom lowering 2018-10-24 23:27:40 +00:00
simd-offset.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-select.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd-sext-inreg.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
simd.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
stack-alignment.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
stack-insts.ll [WebAssembly] Fix assembly printing of br_table 2018-10-23 00:28:14 +00:00
store-trunc-atomic.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
store-trunc.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
store.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
switch.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
tls.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
umulo-128-legalisation-lowering.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
umulo-i64.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
unreachable.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
unsupported-function-bitcasts.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
unused-argument.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
userstack.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
varargs.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
vector-sdiv.ll [WebAssembly] Convert remaining tests from elf to wasm output format 2018-07-02 16:03:49 +00:00
vtable.ll [WebAssembly] Default to static reloc model 2018-11-16 18:59:51 +00:00
wasmehprepare.ll [WebAssembly] Split BBs after throw instructions 2018-11-16 00:47:18 +00:00