diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/passes/spill-pointers.txt | 456 |
1 files changed, 266 insertions, 190 deletions
diff --git a/test/passes/spill-pointers.txt b/test/passes/spill-pointers.txt index c9b9a4a3e..0c51683ef 100644 --- a/test/passes/spill-pointers.txt +++ b/test/passes/spill-pointers.txt @@ -24,13 +24,12 @@ (func $spill (local $x i32) (local $1 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -46,7 +45,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) (func $ignore-non-pointers @@ -55,13 +57,12 @@ (local $z f32) (local $w f64) (local $4 i32) - (local.set $4 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $4) - (i32.const 16) + (local.tee $4 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -98,7 +99,10 @@ ) ) (global.set $stack_ptr - (local.get $4) + (i32.add + (local.get $4) + (i32.const 16) + ) ) ) (func $spill4 @@ -107,13 +111,12 @@ (local $z i32) (local $w i32) (local $4 i32) - (local.set $4 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $4) - (i32.const 16) + (local.tee $4 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -162,7 +165,10 @@ ) ) (global.set $stack_ptr - (local.get $4) + (i32.add + (local.get $4) + (i32.const 16) + ) ) ) (func $spill5 @@ -172,13 +178,12 @@ (local $w i32) (local $a i32) (local $5 i32) - (local.set $5 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $5) - (i32.const 32) + (local.tee $5 + (i32.sub + (global.get $stack_ptr) + (i32.const 32) + ) ) ) (block @@ -237,20 +242,22 @@ ) ) (global.set $stack_ptr - (local.get $5) + (i32.add + (local.get $5) + (i32.const 32) + ) ) ) (func $some-alive (local $x i32) (local $y i32) (local $2 i32) - (local.set $2 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $2) - (i32.const 16) + (local.tee $2 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -266,7 +273,10 @@ ) ) (global.set $stack_ptr - (local.get $2) + (i32.add + (local.get $2) + (i32.const 16) + ) ) ) (func $spill-args (param $p i32) (param $q i32) @@ -274,13 +284,12 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local.set $3 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $3) - (i32.const 16) + (local.tee $3 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -305,7 +314,10 @@ ) ) (global.set $stack_ptr - (local.get $3) + (i32.add + (local.get $3) + (i32.const 16) + ) ) ) (func $spill-ret (result i32) @@ -314,13 +326,12 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (local.set $4 @@ -342,7 +353,10 @@ (i32.const 2) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (return (local.get $2) @@ -353,7 +367,10 @@ (i32.const 3) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (return (local.get $3) @@ -364,7 +381,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (local.get $4) ) @@ -372,13 +392,12 @@ (local $x i32) (local $1 i32) (local $2 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (local.set $2 @@ -397,7 +416,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (local.get $2) ) @@ -410,13 +432,12 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local.set $2 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $2) - (i32.const 16) + (local.tee $2 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (local.set $5 @@ -450,7 +471,10 @@ ) ) (global.set $stack_ptr - (local.get $2) + (i32.add + (local.get $2) + (i32.const 16) + ) ) (local.get $5) ) @@ -481,13 +505,12 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (local.set $3 @@ -505,7 +528,10 @@ (drop (block (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (return (block @@ -513,7 +539,10 @@ (i32.const 1) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (return (local.get $2) @@ -526,7 +555,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (local.get $3) ) @@ -534,13 +566,12 @@ (local $x i32) (local $2 i32) (local $3 f64) - (local.set $2 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $2) - (i32.const 16) + (local.tee $2 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -561,7 +592,10 @@ ) ) (global.set $stack_ptr - (local.get $2) + (i32.add + (local.get $2) + (i32.const 16) + ) ) ) (func $spill-call_indirect @@ -570,13 +604,12 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -605,20 +638,22 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) (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.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -639,7 +674,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) ) @@ -672,13 +710,12 @@ (func $spill (local $x i32) (local $1 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -694,7 +731,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) (func $ignore-non-pointers @@ -703,13 +743,12 @@ (local $z f32) (local $w f64) (local $4 i32) - (local.set $4 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $4) - (i32.const 16) + (local.tee $4 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -746,7 +785,10 @@ ) ) (global.set $stack_ptr - (local.get $4) + (i32.add + (local.get $4) + (i32.const 16) + ) ) ) (func $spill4 @@ -755,13 +797,12 @@ (local $z i32) (local $w i32) (local $4 i32) - (local.set $4 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $4) - (i32.const 16) + (local.tee $4 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -810,7 +851,10 @@ ) ) (global.set $stack_ptr - (local.get $4) + (i32.add + (local.get $4) + (i32.const 16) + ) ) ) (func $spill5 @@ -820,13 +864,12 @@ (local $w i32) (local $a i32) (local $5 i32) - (local.set $5 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $5) - (i32.const 32) + (local.tee $5 + (i32.sub + (global.get $stack_ptr) + (i32.const 32) + ) ) ) (block @@ -885,20 +928,22 @@ ) ) (global.set $stack_ptr - (local.get $5) + (i32.add + (local.get $5) + (i32.const 32) + ) ) ) (func $some-alive (local $x i32) (local $y i32) (local $2 i32) - (local.set $2 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $2) - (i32.const 16) + (local.tee $2 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -914,7 +959,10 @@ ) ) (global.set $stack_ptr - (local.get $2) + (i32.add + (local.get $2) + (i32.const 16) + ) ) ) (func $spill-args (param $p i32) (param $q i32) @@ -922,13 +970,12 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local.set $3 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $3) - (i32.const 16) + (local.tee $3 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -953,7 +1000,10 @@ ) ) (global.set $stack_ptr - (local.get $3) + (i32.add + (local.get $3) + (i32.const 16) + ) ) ) (func $spill-ret (result i32) @@ -962,13 +1012,12 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (local.set $4 @@ -990,7 +1039,10 @@ (i32.const 2) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (return (local.get $2) @@ -1001,7 +1053,10 @@ (i32.const 3) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (return (local.get $3) @@ -1012,7 +1067,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (local.get $4) ) @@ -1020,13 +1078,12 @@ (local $x i32) (local $1 i32) (local $2 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (local.set $2 @@ -1045,7 +1102,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (local.get $2) ) @@ -1058,13 +1118,12 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local.set $2 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $2) - (i32.const 16) + (local.tee $2 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (local.set $5 @@ -1098,7 +1157,10 @@ ) ) (global.set $stack_ptr - (local.get $2) + (i32.add + (local.get $2) + (i32.const 16) + ) ) (local.get $5) ) @@ -1129,13 +1191,12 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (local.set $3 @@ -1153,7 +1214,10 @@ (drop (block (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (return (block @@ -1161,7 +1225,10 @@ (i32.const 1) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (return (local.get $2) @@ -1174,7 +1241,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) (local.get $3) ) @@ -1182,13 +1252,12 @@ (local $x i32) (local $2 i32) (local $3 f64) - (local.set $2 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $2) - (i32.const 16) + (local.tee $2 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -1209,7 +1278,10 @@ ) ) (global.set $stack_ptr - (local.get $2) + (i32.add + (local.get $2) + (i32.const 16) + ) ) ) (func $spill-call_indirect @@ -1218,13 +1290,12 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local.set $1 - (global.get $stack_ptr) - ) (global.set $stack_ptr - (i32.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -1253,20 +1324,22 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) (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.sub - (local.get $1) - (i32.const 16) + (local.tee $1 + (i32.sub + (global.get $stack_ptr) + (i32.const 16) + ) ) ) (block @@ -1287,7 +1360,10 @@ ) ) (global.set $stack_ptr - (local.get $1) + (i32.add + (local.get $1) + (i32.const 16) + ) ) ) ) |