diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-04-07 11:34:45 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-04-07 11:54:53 -0700 |
commit | 068a3ed6efdb3f6b0c3b93cdf89bf6a02a5bb113 (patch) | |
tree | 37b1de9538fc8f6caf1ff3df0c3799534e19f5de | |
parent | 2bf63aadfbf30494455ac31c2fe90bdbc6774d71 (diff) | |
download | binaryen-068a3ed6efdb3f6b0c3b93cdf89bf6a02a5bb113.tar.gz binaryen-068a3ed6efdb3f6b0c3b93cdf89bf6a02a5bb113.tar.bz2 binaryen-068a3ed6efdb3f6b0c3b93cdf89bf6a02a5bb113.zip |
add more simplify-locals testing
-rw-r--r-- | test/passes/simplify-locals.txt | 199 | ||||
-rw-r--r-- | test/passes/simplify-locals.wast | 104 |
2 files changed, 299 insertions, 4 deletions
diff --git a/test/passes/simplify-locals.txt b/test/passes/simplify-locals.txt index 4b0a1ca2b..59e400dd7 100644 --- a/test/passes/simplify-locals.txt +++ b/test/passes/simplify-locals.txt @@ -1,26 +1,35 @@ (module (memory 256 256) + (type $FUNCSIG$v (func)) + (type $FUNCSIG$i (func (result i32))) + (import $waka "env" "waka") + (import $waka_int "env" "waka_int" (result i32)) (func $b0-yes (param $i1 i32) (local $x i32) (local $y i32) + (local $a i32) + (local $b i32) + (nop) (set_local $x (i32.const 5) ) (block $block0 + (nop) (set_local $x (i32.const 7) ) ) + (nop) (set_local $x (i32.const 11) ) (set_local $x - (i32.const 5) + (i32.const 9) ) (get_local $y) (block $block1 (set_local $x - (i32.const 7) + (i32.const 8) ) (get_local $y) ) @@ -28,8 +37,194 @@ (i32.const 11) ) (get_local $y) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) (set_local $x (i32.const 17) ) + (block $block2 + (set_local $a + (i32.const 1) + ) + (nop) + (get_local $a) + (set_local $b + (i32.const 2) + ) + (set_local $a + (i32.const 3) + ) + (set_local $b + (i32.const 4) + ) + (set_local $a + (i32.const 5) + ) + (nop) + (set_local $b + (i32.const 6) + ) + (get_local $a) + (set_local $a + (i32.const 7) + ) + (set_local $b + (i32.const 8) + ) + (set_local $a + (i32.const 9) + ) + (nop) + (call_import $waka) + (get_local $a) + (set_local $b + (i32.const 10) + ) + (set_local $a + (i32.const 11) + ) + (set_local $b + (i32.const 12) + ) + (set_local $a + (i32.const 13) + ) + (nop) + (i32.load + (i32.const 24) + ) + (get_local $a) + (set_local $b + (i32.const 14) + ) + (set_local $a + (i32.const 15) + ) + (set_local $b + (i32.const 16) + ) + (set_local $a + (i32.const 17) + ) + (nop) + (i32.store + (i32.const 48) + (i32.const 96) + ) + (get_local $a) + (set_local $b + (i32.const 18) + ) + ) + (block $block3 + (nop) + (set_local $a + (call_import $waka_int) + ) + (call_import $waka) + (set_local $a + (call_import $waka_int) + ) + (call_import $waka) + (get_local $a) + (call_import $waka) + (nop) + (i32.load + (i32.const 1) + ) + (set_local $a + (call_import $waka_int) + ) + (call_import $waka) + (set_local $a + (call_import $waka_int) + ) + (i32.store + (i32.const 1) + (i32.const 2) + ) + (get_local $a) + (call_import $waka) + (nop) + (set_local $a + (i32.load + (i32.const 100) + ) + ) + (call_import $waka) + (nop) + (i32.load + (i32.const 1) + ) + (set_local $a + (i32.load + (i32.const 101) + ) + ) + (call_import $waka) + (set_local $a + (i32.load + (i32.const 102) + ) + ) + (call_import $waka) + (get_local $a) + (call_import $waka) + (set_local $a + (i32.load + (i32.const 103) + ) + ) + (i32.store + (i32.const 1) + (i32.const 2) + ) + (get_local $a) + (call_import $waka) + (nop) + (set_local $a + (i32.store + (i32.const 104) + (i32.const 105) + ) + ) + (call_import $waka) + (set_local $a + (i32.store + (i32.const 106) + (i32.const 107) + ) + ) + (call_import $waka) + (get_local $a) + (call_import $waka) + (nop) + (i32.load + (i32.const 1) + ) + (set_local $a + (i32.store + (i32.const 108) + (i32.const 109) + ) + ) + (call_import $waka) + (set_local $a + (i32.store + (i32.const 110) + (i32.const 111) + ) + ) + (i32.store + (i32.const 1) + (i32.const 2) + ) + (get_local $a) + (call_import $waka) + ) ) ) diff --git a/test/passes/simplify-locals.wast b/test/passes/simplify-locals.wast index 2fd3a5f4c..6f33db4e2 100644 --- a/test/passes/simplify-locals.wast +++ b/test/passes/simplify-locals.wast @@ -1,8 +1,12 @@ (module (memory 256 256) + (import $waka "env" "waka") + (import $waka_int "env" "waka_int" (result i32)) (func $b0-yes (param $i1 i32) (local $x i32) (local $y i32) + (local $a i32) + (local $b i32) (set_local $x (i32.const 5)) (get_local $x) (block @@ -11,10 +15,10 @@ ) (set_local $x (i32.const 11)) (get_local $x) - (set_local $x (i32.const 5)) + (set_local $x (i32.const 9)) (get_local $y) (block - (set_local $x (i32.const 7)) + (set_local $x (i32.const 8)) (get_local $y) ) (set_local $x (i32.const 11)) @@ -26,6 +30,102 @@ (get_local $x) (get_local $x) (get_local $x) + (block + (set_local $a (i32.const 1)) + (set_local $b (i32.const 2)) + (get_local $a) + (get_local $b) + (set_local $a (i32.const 3)) + (set_local $b (i32.const 4)) + (set_local $a (i32.const 5)) + (set_local $b (i32.const 6)) + (get_local $b) + (get_local $a) + (set_local $a (i32.const 7)) + (set_local $b (i32.const 8)) + (set_local $a (i32.const 9)) + (set_local $b (i32.const 10)) + (call_import $waka) + (get_local $a) + (get_local $b) + (set_local $a (i32.const 11)) + (set_local $b (i32.const 12)) + (set_local $a (i32.const 13)) + (set_local $b (i32.const 14)) + (i32.load + (i32.const 24) + ) + (get_local $a) + (get_local $b) + (set_local $a (i32.const 15)) + (set_local $b (i32.const 16)) + (set_local $a (i32.const 17)) + (set_local $b (i32.const 18)) + (i32.store + (i32.const 48) + (i32.const 96) + ) + (get_local $a) + (get_local $b) + ) + (block + (set_local $a (call_import $waka_int)) + (get_local $a) ;; yes + (call_import $waka) + + (set_local $a (call_import $waka_int)) + (call_import $waka) + (get_local $a) ;; no + (call_import $waka) + + (set_local $a (call_import $waka_int)) + (i32.load (i32.const 1)) + (get_local $a) ;; no + (call_import $waka) + + (set_local $a (call_import $waka_int)) + (i32.store (i32.const 1) (i32.const 2)) + (get_local $a) ;; no + (call_import $waka) + + (set_local $a (i32.load (i32.const 100))) + (get_local $a) ;; yes + (call_import $waka) + + (set_local $a (i32.load (i32.const 101))) + (i32.load (i32.const 1)) + (get_local $a) ;; yes + (call_import $waka) + + (set_local $a (i32.load (i32.const 102))) + (call_import $waka) + (get_local $a) ;; no + (call_import $waka) + + (set_local $a (i32.load (i32.const 103))) + (i32.store (i32.const 1) (i32.const 2)) + (get_local $a) ;; no + (call_import $waka) + + (set_local $a (i32.store (i32.const 104) (i32.const 105))) + (get_local $a) ;; yes + (call_import $waka) + + (set_local $a (i32.store (i32.const 106) (i32.const 107))) + (call_import $waka) + (get_local $a) ;; no + (call_import $waka) + + (set_local $a (i32.store (i32.const 108) (i32.const 109))) + (i32.load (i32.const 1)) + (get_local $a) ;; no + (call_import $waka) + + (set_local $a (i32.store (i32.const 110) (i32.const 111))) + (i32.store (i32.const 1) (i32.const 2)) + (get_local $a) ;; no + (call_import $waka) + ) ) ) |