diff options
author | Sam Clegg <sbc@chromium.org> | 2020-10-20 18:24:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-20 16:24:54 -0700 |
commit | c61cb6f07a244067a7964d0d99c0fef0a068a3bf (patch) | |
tree | 823c77416384911be496d1fb119d99a1d89ada30 /test | |
parent | 2927d92a0df05512649629084d9b0013e002ae89 (diff) | |
download | binaryen-c61cb6f07a244067a7964d0d99c0fef0a068a3bf.tar.gz binaryen-c61cb6f07a244067a7964d0d99c0fef0a068a3bf.tar.bz2 binaryen-c61cb6f07a244067a7964d0d99c0fef0a068a3bf.zip |
Remove old/non-working SpillPointers pass (#3261)
And associated stack.h. The current stack.h clearly doesn't work with
the llvm back as it assumes the stack grows up, which means non of these
has been working or used in a long time.
Rather than trying to fix this unused features its probably cleaner to
just remove it for now and restore it rom git history if its someone
that anyone actually wants to use in the future.
Diffstat (limited to 'test')
-rw-r--r-- | test/passes/spill-pointers.txt | 1291 | ||||
-rw-r--r-- | test/passes/spill-pointers.wast | 338 |
2 files changed, 0 insertions, 1629 deletions
diff --git a/test/passes/spill-pointers.txt b/test/passes/spill-pointers.txt deleted file mode 100644 index fd7683fda..000000000 --- a/test/passes/spill-pointers.txt +++ /dev/null @@ -1,1291 +0,0 @@ -(module - (type $none_=>_none (func)) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) - (type $f64_=>_none (func (param f64))) - (import "env" "STACKTOP" (global $STACKTOP$asm2wasm$import i32)) - (import "env" "segfault" (func $segfault (param i32))) - (memory $0 10) - (table $0 1 1 funcref) - (global $stack_ptr (mut i32) (global.get $STACKTOP$asm2wasm$import)) - (func $nothing - (nop) - ) - (func $not-alive - (local $x i32) - (local.set $x - (i32.const 1) - ) - (call $nothing) - ) - (func $spill - (local $x i32) - (local $1 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (block - (block - (i32.store - (local.get $1) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - ) - (func $ignore-non-pointers - (local $x i32) - (local $y i64) - (local $z f32) - (local $w f64) - (local $4 i32) - (local.set $4 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $4) - (i32.const 16) - ) - ) - (block - (local.set $x - (i32.const 1) - ) - (local.set $y - (i64.const 1) - ) - (local.set $z - (f32.const 1) - ) - (local.set $w - (f64.const 1) - ) - (block - (i32.store - (local.get $4) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (drop - (local.get $y) - ) - (drop - (local.get $z) - ) - (drop - (local.get $w) - ) - ) - (global.set $stack_ptr - (local.get $4) - ) - ) - (func $spill4 - (local $x i32) - (local $y i32) - (local $z i32) - (local $w i32) - (local $4 i32) - (local.set $4 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $4) - (i32.const 16) - ) - ) - (block - (local.set $x - (i32.const 1) - ) - (local.set $y - (i32.const 1) - ) - (local.set $z - (i32.const 1) - ) - (local.set $w - (i32.const 1) - ) - (block - (i32.store - (local.get $4) - (local.get $x) - ) - (i32.store offset=4 - (local.get $4) - (local.get $y) - ) - (i32.store offset=8 - (local.get $4) - (local.get $z) - ) - (i32.store offset=12 - (local.get $4) - (local.get $w) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (drop - (local.get $y) - ) - (drop - (local.get $z) - ) - (drop - (local.get $w) - ) - ) - (global.set $stack_ptr - (local.get $4) - ) - ) - (func $spill5 - (local $x i32) - (local $y i32) - (local $z i32) - (local $w i32) - (local $a i32) - (local $5 i32) - (local.set $5 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $5) - (i32.const 32) - ) - ) - (block - (local.set $x - (i32.const 1) - ) - (local.set $y - (i32.const 1) - ) - (local.set $z - (i32.const 1) - ) - (local.set $w - (i32.const 1) - ) - (local.set $a - (i32.const 1) - ) - (block - (i32.store - (local.get $5) - (local.get $x) - ) - (i32.store offset=4 - (local.get $5) - (local.get $y) - ) - (i32.store offset=8 - (local.get $5) - (local.get $z) - ) - (i32.store offset=12 - (local.get $5) - (local.get $w) - ) - (i32.store offset=16 - (local.get $5) - (local.get $a) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (drop - (local.get $y) - ) - (drop - (local.get $z) - ) - (drop - (local.get $w) - ) - (drop - (local.get $a) - ) - ) - (global.set $stack_ptr - (local.get $5) - ) - ) - (func $some-alive - (local $x i32) - (local $y i32) - (local $2 i32) - (local.set $2 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $2) - (i32.const 16) - ) - ) - (block - (block - (i32.store - (local.get $2) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $2) - ) - ) - (func $spill-args (param $p i32) (param $q i32) - (local $x i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local.set $3 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $3) - (i32.const 16) - ) - ) - (block - (block - (local.set $4 - (i32.const 1) - ) - (local.set $5 - (i32.const 2) - ) - (i32.store offset=8 - (local.get $3) - (local.get $x) - ) - (call $spill-args - (local.get $4) - (local.get $5) - ) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $3) - ) - ) - (func $spill-ret (result i32) - (local $x i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (local.set $4 - (block (result i32) - (block - (i32.store - (local.get $1) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (if - (i32.const 1) - (block - (local.set $2 - (i32.const 2) - ) - (global.set $stack_ptr - (local.get $1) - ) - (return - (local.get $2) - ) - ) - (block - (local.set $3 - (i32.const 3) - ) - (global.set $stack_ptr - (local.get $1) - ) - (return - (local.get $3) - ) - ) - ) - (i32.const 4) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - (local.get $4) - ) - (func $spill-unreachable (result i32) - (local $x i32) - (local $1 i32) - (local $2 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (local.set $2 - (block (result i32) - (block - (i32.store - (local.get $1) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (unreachable) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - (local.get $2) - ) - (func $spill-call-call0 (param $p i32) (result i32) - (unreachable) - ) - (func $spill-call-call1 (param $p i32) (result i32) - (local $x i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local.set $2 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $2) - (i32.const 16) - ) - ) - (local.set $5 - (block (result i32) - (drop - (block (result i32) - (local.set $3 - (block (result i32) - (local.set $4 - (i32.const 1) - ) - (i32.store offset=4 - (local.get $2) - (local.get $x) - ) - (call $spill-call-call1 - (local.get $4) - ) - ) - ) - (i32.store offset=4 - (local.get $2) - (local.get $x) - ) - (call $spill-call-call0 - (local.get $3) - ) - ) - ) - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $2) - ) - (local.get $5) - ) - (func $spill-call-ret (param $p i32) (result i32) - (local $x i32) - (drop - (call $spill-call-call0 - (return - (i32.const 1) - ) - ) - ) - (i32.const 0) - ) - (func $spill-ret-call (param $p i32) (result i32) - (local $x i32) - (drop - (return - (call $spill-call-call0 - (i32.const 1) - ) - ) - ) - (i32.const 0) - ) - (func $spill-ret-ret (result i32) - (local $x i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (local.set $3 - (block (result i32) - (block - (i32.store - (local.get $1) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (drop - (block - (global.set $stack_ptr - (local.get $1) - ) - (return - (block - (local.set $2 - (i32.const 1) - ) - (global.set $stack_ptr - (local.get $1) - ) - (return - (local.get $2) - ) - ) - ) - ) - ) - (i32.const 0) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - (local.get $3) - ) - (func $spill-call-othertype (param $y f64) - (local $x i32) - (local $2 i32) - (local $3 f64) - (local.set $2 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $2) - (i32.const 16) - ) - ) - (block - (block - (local.set $3 - (f64.const 1) - ) - (i32.store - (local.get $2) - (local.get $x) - ) - (call $spill-call-othertype - (local.get $3) - ) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $2) - ) - ) - (func $spill-call_indirect - (local $x i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (block - (block - (local.set $2 - (i32.const 123) - ) - (local.set $3 - (i32.const 456) - ) - (local.set $4 - (i32.const 789) - ) - (i32.store - (local.get $1) - (local.get $x) - ) - (call_indirect (type $i32_i32_=>_none) - (local.get $2) - (local.get $3) - (local.get $4) - ) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - ) - (func $spill-call_import - (local $x i32) - (local $1 i32) - (local $2 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (block - (block - (local.set $2 - (i32.const 200) - ) - (i32.store - (local.get $1) - (local.get $x) - ) - (call $segfault - (local.get $2) - ) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - ) -) -(module - (type $none_=>_none (func)) - (type $none_=>_i32 (func (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) - (type $f64_=>_none (func (param f64))) - (import "env" "segfault" (func $segfault (param i32))) - (memory $0 10) - (table $0 1 1 funcref) - (global $stack_ptr (mut i32) (i32.const 1716592)) - (export "stackSave" (func $stack_save)) - (func $stack_save (result i32) - (global.get $stack_ptr) - ) - (func $nothing - (nop) - ) - (func $not-alive - (local $x i32) - (local.set $x - (i32.const 1) - ) - (call $nothing) - ) - (func $spill - (local $x i32) - (local $1 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (block - (block - (i32.store - (local.get $1) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - ) - (func $ignore-non-pointers - (local $x i32) - (local $y i64) - (local $z f32) - (local $w f64) - (local $4 i32) - (local.set $4 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $4) - (i32.const 16) - ) - ) - (block - (local.set $x - (i32.const 1) - ) - (local.set $y - (i64.const 1) - ) - (local.set $z - (f32.const 1) - ) - (local.set $w - (f64.const 1) - ) - (block - (i32.store - (local.get $4) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (drop - (local.get $y) - ) - (drop - (local.get $z) - ) - (drop - (local.get $w) - ) - ) - (global.set $stack_ptr - (local.get $4) - ) - ) - (func $spill4 - (local $x i32) - (local $y i32) - (local $z i32) - (local $w i32) - (local $4 i32) - (local.set $4 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $4) - (i32.const 16) - ) - ) - (block - (local.set $x - (i32.const 1) - ) - (local.set $y - (i32.const 1) - ) - (local.set $z - (i32.const 1) - ) - (local.set $w - (i32.const 1) - ) - (block - (i32.store - (local.get $4) - (local.get $x) - ) - (i32.store offset=4 - (local.get $4) - (local.get $y) - ) - (i32.store offset=8 - (local.get $4) - (local.get $z) - ) - (i32.store offset=12 - (local.get $4) - (local.get $w) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (drop - (local.get $y) - ) - (drop - (local.get $z) - ) - (drop - (local.get $w) - ) - ) - (global.set $stack_ptr - (local.get $4) - ) - ) - (func $spill5 - (local $x i32) - (local $y i32) - (local $z i32) - (local $w i32) - (local $a i32) - (local $5 i32) - (local.set $5 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $5) - (i32.const 32) - ) - ) - (block - (local.set $x - (i32.const 1) - ) - (local.set $y - (i32.const 1) - ) - (local.set $z - (i32.const 1) - ) - (local.set $w - (i32.const 1) - ) - (local.set $a - (i32.const 1) - ) - (block - (i32.store - (local.get $5) - (local.get $x) - ) - (i32.store offset=4 - (local.get $5) - (local.get $y) - ) - (i32.store offset=8 - (local.get $5) - (local.get $z) - ) - (i32.store offset=12 - (local.get $5) - (local.get $w) - ) - (i32.store offset=16 - (local.get $5) - (local.get $a) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (drop - (local.get $y) - ) - (drop - (local.get $z) - ) - (drop - (local.get $w) - ) - (drop - (local.get $a) - ) - ) - (global.set $stack_ptr - (local.get $5) - ) - ) - (func $some-alive - (local $x i32) - (local $y i32) - (local $2 i32) - (local.set $2 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $2) - (i32.const 16) - ) - ) - (block - (block - (i32.store - (local.get $2) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $2) - ) - ) - (func $spill-args (param $p i32) (param $q i32) - (local $x i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local.set $3 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $3) - (i32.const 16) - ) - ) - (block - (block - (local.set $4 - (i32.const 1) - ) - (local.set $5 - (i32.const 2) - ) - (i32.store offset=8 - (local.get $3) - (local.get $x) - ) - (call $spill-args - (local.get $4) - (local.get $5) - ) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $3) - ) - ) - (func $spill-ret (result i32) - (local $x i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (local.set $4 - (block (result i32) - (block - (i32.store - (local.get $1) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (if - (i32.const 1) - (block - (local.set $2 - (i32.const 2) - ) - (global.set $stack_ptr - (local.get $1) - ) - (return - (local.get $2) - ) - ) - (block - (local.set $3 - (i32.const 3) - ) - (global.set $stack_ptr - (local.get $1) - ) - (return - (local.get $3) - ) - ) - ) - (i32.const 4) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - (local.get $4) - ) - (func $spill-unreachable (result i32) - (local $x i32) - (local $1 i32) - (local $2 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (local.set $2 - (block (result i32) - (block - (i32.store - (local.get $1) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (unreachable) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - (local.get $2) - ) - (func $spill-call-call0 (param $p i32) (result i32) - (unreachable) - ) - (func $spill-call-call1 (param $p i32) (result i32) - (local $x i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local.set $2 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $2) - (i32.const 16) - ) - ) - (local.set $5 - (block (result i32) - (drop - (block (result i32) - (local.set $3 - (block (result i32) - (local.set $4 - (i32.const 1) - ) - (i32.store offset=4 - (local.get $2) - (local.get $x) - ) - (call $spill-call-call1 - (local.get $4) - ) - ) - ) - (i32.store offset=4 - (local.get $2) - (local.get $x) - ) - (call $spill-call-call0 - (local.get $3) - ) - ) - ) - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $2) - ) - (local.get $5) - ) - (func $spill-call-ret (param $p i32) (result i32) - (local $x i32) - (drop - (call $spill-call-call0 - (return - (i32.const 1) - ) - ) - ) - (i32.const 0) - ) - (func $spill-ret-call (param $p i32) (result i32) - (local $x i32) - (drop - (return - (call $spill-call-call0 - (i32.const 1) - ) - ) - ) - (i32.const 0) - ) - (func $spill-ret-ret (result i32) - (local $x i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (local.set $3 - (block (result i32) - (block - (i32.store - (local.get $1) - (local.get $x) - ) - (call $nothing) - ) - (drop - (local.get $x) - ) - (drop - (block - (global.set $stack_ptr - (local.get $1) - ) - (return - (block - (local.set $2 - (i32.const 1) - ) - (global.set $stack_ptr - (local.get $1) - ) - (return - (local.get $2) - ) - ) - ) - ) - ) - (i32.const 0) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - (local.get $3) - ) - (func $spill-call-othertype (param $y f64) - (local $x i32) - (local $2 i32) - (local $3 f64) - (local.set $2 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $2) - (i32.const 16) - ) - ) - (block - (block - (local.set $3 - (f64.const 1) - ) - (i32.store - (local.get $2) - (local.get $x) - ) - (call $spill-call-othertype - (local.get $3) - ) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $2) - ) - ) - (func $spill-call_indirect - (local $x i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (block - (block - (local.set $2 - (i32.const 123) - ) - (local.set $3 - (i32.const 456) - ) - (local.set $4 - (i32.const 789) - ) - (i32.store - (local.get $1) - (local.get $x) - ) - (call_indirect (type $i32_i32_=>_none) - (local.get $2) - (local.get $3) - (local.get $4) - ) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - ) - (func $spill-call_import - (local $x i32) - (local $1 i32) - (local $2 i32) - (local.set $1 - (global.get $stack_ptr) - ) - (global.set $stack_ptr - (i32.add - (local.get $1) - (i32.const 16) - ) - ) - (block - (block - (local.set $2 - (i32.const 200) - ) - (i32.store - (local.get $1) - (local.get $x) - ) - (call $segfault - (local.get $2) - ) - ) - (drop - (local.get $x) - ) - ) - (global.set $stack_ptr - (local.get $1) - ) - ) -) diff --git a/test/passes/spill-pointers.wast b/test/passes/spill-pointers.wast deleted file mode 100644 index 4eb05a721..000000000 --- a/test/passes/spill-pointers.wast +++ /dev/null @@ -1,338 +0,0 @@ -(module - (memory 10) - (type $ii (func (param i32 i32))) - (table 1 1 funcref) - (elem (i32.const 0)) - (import "env" "STACKTOP" (global $STACKTOP$asm2wasm$import i32)) - (import "env" "segfault" (func $segfault (param i32))) - (global $stack_ptr (mut i32) (global.get $STACKTOP$asm2wasm$import)) - - (func $nothing - ) - (func $not-alive - (local $x i32) - (local.set $x (i32.const 1)) - (call $nothing) - ) - (func $spill - (local $x i32) - (call $nothing) - (drop (local.get $x)) - ) - (func $ignore-non-pointers - (local $x i32) - (local $y i64) - (local $z f32) - (local $w f64) - (local.set $x (i32.const 1)) - (local.set $y (i64.const 1)) - (local.set $z (f32.const 1)) - (local.set $w (f64.const 1)) - (call $nothing) - (drop (local.get $x)) - (drop (local.get $y)) - (drop (local.get $z)) - (drop (local.get $w)) - ) - (func $spill4 - (local $x i32) - (local $y i32) - (local $z i32) - (local $w i32) - (local.set $x (i32.const 1)) - (local.set $y (i32.const 1)) - (local.set $z (i32.const 1)) - (local.set $w (i32.const 1)) - (call $nothing) - (drop (local.get $x)) - (drop (local.get $y)) - (drop (local.get $z)) - (drop (local.get $w)) - ) - (func $spill5 - (local $x i32) - (local $y i32) - (local $z i32) - (local $w i32) - (local $a i32) - (local.set $x (i32.const 1)) - (local.set $y (i32.const 1)) - (local.set $z (i32.const 1)) - (local.set $w (i32.const 1)) - (local.set $a (i32.const 1)) - (call $nothing) - (drop (local.get $x)) - (drop (local.get $y)) - (drop (local.get $z)) - (drop (local.get $w)) - (drop (local.get $a)) - ) - (func $some-alive - (local $x i32) - (local $y i32) - (call $nothing) - (drop (local.get $x)) - ) - (func $spill-args (param $p i32) (param $q i32) - (local $x i32) - (call $spill-args (i32.const 1) (i32.const 2)) - (drop (local.get $x)) - ) - (func $spill-ret (result i32) - (local $x i32) - (call $nothing) - (drop (local.get $x)) - (if (i32.const 1) - (return (i32.const 2)) - (return (i32.const 3)) - ) - (i32.const 4) - ) - (func $spill-unreachable (result i32) - (local $x i32) - (call $nothing) - (drop (local.get $x)) - (unreachable) - ) - (func $spill-call-call0 (param $p i32) (result i32) - (unreachable) - ) - (func $spill-call-call1 (param $p i32) (result i32) - (local $x i32) - (drop - (call $spill-call-call0 - (call $spill-call-call1 - (i32.const 1) - ) - ) - ) - (local.get $x) - ) - (func $spill-call-ret (param $p i32) (result i32) - (local $x i32) - (drop - (call $spill-call-call0 - (return - (i32.const 1) - ) - ) - ) - (local.get $x) - ) - (func $spill-ret-call (param $p i32) (result i32) - (local $x i32) - (drop - (return - (call $spill-call-call0 - (i32.const 1) - ) - ) - ) - (local.get $x) - ) - (func $spill-ret-ret (result i32) - (local $x i32) - (call $nothing) - (drop (local.get $x)) - (drop - (return - (return - (i32.const 1) - ) - ) - ) - (local.get $x) - ) - (func $spill-call-othertype (param $y f64) - (local $x i32) - (call $spill-call-othertype (f64.const 1)) - (drop (local.get $x)) - ) - (func $spill-call_indirect - (local $x i32) - (call_indirect (type $ii) - (i32.const 123) - (i32.const 456) - (i32.const 789) - ) - (drop (local.get $x)) - ) - (func $spill-call_import - (local $x i32) - (call $segfault - (i32.const 200) - ) - (drop (local.get $x)) - ) -) - -(module - (memory 10) - (type $ii (func (param i32 i32))) - (table 1 1 funcref) - (elem (i32.const 0)) - (global $stack_ptr (mut i32) (i32.const 1716592)) - (export "stackSave" (func $stack_save)) - (import "env" "segfault" (func $segfault (param i32))) - (func $stack_save (result i32) - (global.get $stack_ptr) - ) - - (func $nothing - ) - (func $not-alive - (local $x i32) - (local.set $x (i32.const 1)) - (call $nothing) - ) - (func $spill - (local $x i32) - (call $nothing) - (drop (local.get $x)) - ) - (func $ignore-non-pointers - (local $x i32) - (local $y i64) - (local $z f32) - (local $w f64) - (local.set $x (i32.const 1)) - (local.set $y (i64.const 1)) - (local.set $z (f32.const 1)) - (local.set $w (f64.const 1)) - (call $nothing) - (drop (local.get $x)) - (drop (local.get $y)) - (drop (local.get $z)) - (drop (local.get $w)) - ) - (func $spill4 - (local $x i32) - (local $y i32) - (local $z i32) - (local $w i32) - (local.set $x (i32.const 1)) - (local.set $y (i32.const 1)) - (local.set $z (i32.const 1)) - (local.set $w (i32.const 1)) - (call $nothing) - (drop (local.get $x)) - (drop (local.get $y)) - (drop (local.get $z)) - (drop (local.get $w)) - ) - (func $spill5 - (local $x i32) - (local $y i32) - (local $z i32) - (local $w i32) - (local $a i32) - (local.set $x (i32.const 1)) - (local.set $y (i32.const 1)) - (local.set $z (i32.const 1)) - (local.set $w (i32.const 1)) - (local.set $a (i32.const 1)) - (call $nothing) - (drop (local.get $x)) - (drop (local.get $y)) - (drop (local.get $z)) - (drop (local.get $w)) - (drop (local.get $a)) - ) - (func $some-alive - (local $x i32) - (local $y i32) - (call $nothing) - (drop (local.get $x)) - ) - (func $spill-args (param $p i32) (param $q i32) - (local $x i32) - (call $spill-args (i32.const 1) (i32.const 2)) - (drop (local.get $x)) - ) - (func $spill-ret (result i32) - (local $x i32) - (call $nothing) - (drop (local.get $x)) - (if (i32.const 1) - (return (i32.const 2)) - (return (i32.const 3)) - ) - (i32.const 4) - ) - (func $spill-unreachable (result i32) - (local $x i32) - (call $nothing) - (drop (local.get $x)) - (unreachable) - ) - (func $spill-call-call0 (param $p i32) (result i32) - (unreachable) - ) - (func $spill-call-call1 (param $p i32) (result i32) - (local $x i32) - (drop - (call $spill-call-call0 - (call $spill-call-call1 - (i32.const 1) - ) - ) - ) - (local.get $x) - ) - (func $spill-call-ret (param $p i32) (result i32) - (local $x i32) - (drop - (call $spill-call-call0 - (return - (i32.const 1) - ) - ) - ) - (local.get $x) - ) - (func $spill-ret-call (param $p i32) (result i32) - (local $x i32) - (drop - (return - (call $spill-call-call0 - (i32.const 1) - ) - ) - ) - (local.get $x) - ) - (func $spill-ret-ret (result i32) - (local $x i32) - (call $nothing) - (drop (local.get $x)) - (drop - (return - (return - (i32.const 1) - ) - ) - ) - (local.get $x) - ) - (func $spill-call-othertype (param $y f64) - (local $x i32) - (call $spill-call-othertype (f64.const 1)) - (drop (local.get $x)) - ) - (func $spill-call_indirect - (local $x i32) - (call_indirect (type $ii) - (i32.const 123) - (i32.const 456) - (i32.const 789) - ) - (drop (local.get $x)) - ) - (func $spill-call_import - (local $x i32) - (call $segfault - (i32.const 200) - ) - (drop (local.get $x)) - ) -) |