summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-07 11:34:45 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-07 11:54:53 -0700
commit068a3ed6efdb3f6b0c3b93cdf89bf6a02a5bb113 (patch)
tree37b1de9538fc8f6caf1ff3df0c3799534e19f5de
parent2bf63aadfbf30494455ac31c2fe90bdbc6774d71 (diff)
downloadbinaryen-068a3ed6efdb3f6b0c3b93cdf89bf6a02a5bb113.tar.gz
binaryen-068a3ed6efdb3f6b0c3b93cdf89bf6a02a5bb113.tar.bz2
binaryen-068a3ed6efdb3f6b0c3b93cdf89bf6a02a5bb113.zip
add more simplify-locals testing
-rw-r--r--test/passes/simplify-locals.txt199
-rw-r--r--test/passes/simplify-locals.wast104
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)
+ )
)
)