diff options
Diffstat (limited to 'test/passes')
-rw-r--r-- | test/passes/code-pushing_ignore-implicit-traps.txt (renamed from test/passes/code-pushing.txt) | 0 | ||||
-rw-r--r-- | test/passes/code-pushing_ignore-implicit-traps.wast (renamed from test/passes/code-pushing.wast) | 0 | ||||
-rw-r--r-- | test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt (renamed from test/passes/optimize-instructions_optimize-level=2.txt) | 0 | ||||
-rw-r--r-- | test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.wast (renamed from test/passes/optimize-instructions_optimize-level=2.wast) | 0 | ||||
-rw-r--r-- | test/passes/remove-unused-brs_shrink-level=1.txt | 36 | ||||
-rw-r--r-- | test/passes/remove-unused-brs_shrink-level=1.wast | 25 | ||||
-rw-r--r-- | test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.txt | 125 | ||||
-rw-r--r-- | test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast | 80 |
8 files changed, 260 insertions, 6 deletions
diff --git a/test/passes/code-pushing.txt b/test/passes/code-pushing_ignore-implicit-traps.txt index f09d0dfb5..f09d0dfb5 100644 --- a/test/passes/code-pushing.txt +++ b/test/passes/code-pushing_ignore-implicit-traps.txt diff --git a/test/passes/code-pushing.wast b/test/passes/code-pushing_ignore-implicit-traps.wast index e1cb30f4a..e1cb30f4a 100644 --- a/test/passes/code-pushing.wast +++ b/test/passes/code-pushing_ignore-implicit-traps.wast diff --git a/test/passes/optimize-instructions_optimize-level=2.txt b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt index 243421e8c..243421e8c 100644 --- a/test/passes/optimize-instructions_optimize-level=2.txt +++ b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.txt diff --git a/test/passes/optimize-instructions_optimize-level=2.wast b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.wast index 7874907f3..7874907f3 100644 --- a/test/passes/optimize-instructions_optimize-level=2.wast +++ b/test/passes/optimize-instructions_optimize-level=2_ignore-implicit-traps.wast diff --git a/test/passes/remove-unused-brs_shrink-level=1.txt b/test/passes/remove-unused-brs_shrink-level=1.txt index 68015f73f..b81c12abe 100644 --- a/test/passes/remove-unused-brs_shrink-level=1.txt +++ b/test/passes/remove-unused-brs_shrink-level=1.txt @@ -4,7 +4,7 @@ (type $2 (func (result i32))) (memory $0 256 256) (func $b14 (type $2) (result i32) - (block $topmost i32 + (drop (select (block $block1 i32 (i32.const 12) @@ -15,6 +15,34 @@ (i32.const 1) ) ) + (drop + (if i32 + (i32.const 1) + (i32.load + (i32.const 10) + ) + (i32.const 27) + ) + ) + (drop + (if i32 + (i32.const 1) + (i32.rem_s + (i32.const 11) + (i32.const 12) + ) + (i32.const 27) + ) + ) + (drop + (if i32 + (i32.const 1) + (i32.trunc_u/f64 + (f64.const 12.34) + ) + (i32.const 27) + ) + ) ) (func $join-br_ifs (type $1) (block $out @@ -85,11 +113,11 @@ (nop) ) ) - (block $out80 - (br_if $out80 + (block $out83 + (br_if $out83 (i32.const 1) ) - (br_if $out80 + (br_if $out83 (call $b14) ) ) diff --git a/test/passes/remove-unused-brs_shrink-level=1.wast b/test/passes/remove-unused-brs_shrink-level=1.wast index 5a2234de6..e48ced178 100644 --- a/test/passes/remove-unused-brs_shrink-level=1.wast +++ b/test/passes/remove-unused-brs_shrink-level=1.wast @@ -3,8 +3,8 @@ (type $0 (func (param i32))) (type $1 (func)) (type $2 (func (result i32))) - (func $b14 (type $2) (result i32) - (block $topmost i32 + (func $b14 (type $2) + (drop (if i32 ;; with shrinking, this can become a select (i32.const 1) (block $block1 i32 @@ -15,6 +15,27 @@ ) ) ) + (drop + (if i32 + (i32.const 1) + (i32.load (i32.const 10)) ;; load may have side effects, unless ignored + (i32.const 27) + ) + ) + (drop + (if i32 + (i32.const 1) + (i32.rem_s (i32.const 11) (i32.const 12)) ;; rem may have side effects, unless ignored + (i32.const 27) + ) + ) + (drop + (if i32 + (i32.const 1) + (i32.trunc_u/f64 (f64.const 12.34)) ;; float to int may have side effects, unless ignored + (i32.const 27) + ) + ) ) (func $join-br_ifs (block $out diff --git a/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.txt b/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.txt new file mode 100644 index 000000000..35cfd53c8 --- /dev/null +++ b/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.txt @@ -0,0 +1,125 @@ +(module + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (result i32))) + (memory $0 256 256) + (func $b14 (type $2) (result i32) + (drop + (select + (block $block1 i32 + (i32.const 12) + ) + (block $block3 i32 + (i32.const 27) + ) + (i32.const 1) + ) + ) + (drop + (select + (i32.load + (i32.const 10) + ) + (i32.const 27) + (i32.const 1) + ) + ) + (drop + (select + (i32.rem_s + (i32.const 11) + (i32.const 12) + ) + (i32.const 27) + (i32.const 1) + ) + ) + (drop + (select + (i32.trunc_u/f64 + (f64.const 12.34) + ) + (i32.const 27) + (i32.const 1) + ) + ) + ) + (func $join-br_ifs (type $1) + (block $out + (br_if $out + (i32.or + (i32.const 1) + (i32.const 2) + ) + ) + (nop) + (br_if $out + (i32.const 3) + ) + ) + (block $out2 + (block $out3 + (br_if $out2 + (i32.const 1) + ) + (br_if $out3 + (i32.const 2) + ) + (br_if $out2 + (i32.const 3) + ) + ) + (unreachable) + ) + (block $out4 + (block $out5 + (br_if $out4 + (i32.const 1) + ) + (br_if $out5 + (i32.or + (i32.const 2) + (i32.const 3) + ) + ) + (nop) + ) + (unreachable) + ) + (block $out6 + (block $out7 + (br_if $out6 + (i32.or + (i32.const 1) + (i32.const 2) + ) + ) + (nop) + (br_if $out7 + (i32.const 3) + ) + ) + (unreachable) + ) + (if + (i32.eqz + (i32.or + (call $b14) + (i32.const 0) + ) + ) + (block + (nop) + (nop) + ) + ) + (block $out83 + (br_if $out83 + (i32.const 1) + ) + (br_if $out83 + (call $b14) + ) + ) + ) +) diff --git a/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast b/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast new file mode 100644 index 000000000..e48ced178 --- /dev/null +++ b/test/passes/remove-unused-brs_shrink-level=1_ignore-implicit-traps.wast @@ -0,0 +1,80 @@ +(module + (memory 256 256) + (type $0 (func (param i32))) + (type $1 (func)) + (type $2 (func (result i32))) + (func $b14 (type $2) + (drop + (if i32 ;; with shrinking, this can become a select + (i32.const 1) + (block $block1 i32 + (i32.const 12) + ) + (block $block3 i32 + (i32.const 27) + ) + ) + ) + (drop + (if i32 + (i32.const 1) + (i32.load (i32.const 10)) ;; load may have side effects, unless ignored + (i32.const 27) + ) + ) + (drop + (if i32 + (i32.const 1) + (i32.rem_s (i32.const 11) (i32.const 12)) ;; rem may have side effects, unless ignored + (i32.const 27) + ) + ) + (drop + (if i32 + (i32.const 1) + (i32.trunc_u/f64 (f64.const 12.34)) ;; float to int may have side effects, unless ignored + (i32.const 27) + ) + ) + ) + (func $join-br_ifs + (block $out + (br_if $out (i32.const 1)) + (br_if $out (i32.const 2)) + (br_if $out (i32.const 3)) + ) + (block $out2 + (block $out3 + (br_if $out2 (i32.const 1)) + (br_if $out3 (i32.const 2)) + (br_if $out2 (i32.const 3)) + ) + (unreachable) + ) + (block $out4 + (block $out5 + (br_if $out4 (i32.const 1)) + (br_if $out5 (i32.const 2)) + (br_if $out5 (i32.const 3)) + ) + (unreachable) + ) + (block $out6 + (block $out7 + (br_if $out6 (i32.const 1)) + (br_if $out6 (i32.const 2)) + (br_if $out7 (i32.const 3)) + ) + (unreachable) + ) + (block $out8 + (br_if $out8 (call $b14)) ;; side effect + (br_if $out8 (i32.const 0)) + ) + (block $out8 + (br_if $out8 (i32.const 1)) + (br_if $out8 (call $b14)) ;; side effect + ) + ) +) + |