diff options
Diffstat (limited to 'test/passes/flatten_rereloop.wast')
-rw-r--r-- | test/passes/flatten_rereloop.wast | 783 |
1 files changed, 0 insertions, 783 deletions
diff --git a/test/passes/flatten_rereloop.wast b/test/passes/flatten_rereloop.wast deleted file mode 100644 index c6625805e..000000000 --- a/test/passes/flatten_rereloop.wast +++ /dev/null @@ -1,783 +0,0 @@ -(module - (memory 1) - (global $global (mut i32) (i32.const 0)) - (func $0 (result f64) - (if - (i32.const 0) - (loop $label$2 - (unreachable) - ) - ) - (f64.const -nan:0xfffffd63e4e5a) - ) - (func $1 (result i32) - (block $label$8 - (block $label$9 - (block $label$16 - (block $label$18 - (block $label$19 - (br_table $label$18 $label$16 $label$19 - (i32.const 0) - ) - ) - (br_table $label$9 $label$8 - (i32.const 1) - ) - ) - (unreachable) - ) - (unreachable) - ) - (unreachable) - ) - (i32.const 2) - ) - (func $skip-empty - (block $a1 - (block $a2 - (block $a3 - (block $a4 - (br $a4) - ) - (br $a3) - ) - (br $a2) - ) - (br $a1) - ) - ) - (func $skip-empty-2 - (block $a1 - (block $a2 - (block $a3 - (block $a4 - (br $a4) - ) - (call $skip-empty) - (br $a3) - ) - (call $skip-empty) - (br $a2) - ) - (br $a1) - ) - ) - (func $skip-empty-3 - (block $a1 - (block $a2 - (block $a3 - (block $a4 - (nop) - (br $a4) - (nop) - ) - (nop) - (call $skip-empty) - (nop) - (br $a3) - ) - (nop) - (call $skip-empty) - (nop) - (br $a2) - ) - (br $a1) - ) - ) - (func $skip-empty-4 (param $x i32) - (block $a1 - (block $a2 - (block $a3 - (block $a4 - (br_table $a1 $a2 $a3 $a4 $a1 $a2 $a3 $a4 (local.get $x)) - ) - (br $a3) - ) - (br $a2) - ) - (br $a1) - ) - ) - (func $skipping (param $0 i32) (result f32) - (if - (i32.const 0) - (unreachable) - ) ;; branches joining here lead to skip opportunities - (loop $label$2 (result f32) - (f32.const 1) - ) - ) - (func $merging - (if - (i32.const 0) - (return) - ;; no else, but the else ends up with a return too, and we can merge them - ) - ) - (func $unswitch - (block $label$1 - (br_table $label$1 $label$1 - (i32.const 0) - ) - ) - ) - (func $skip-only-empty - (if - (i32.const 1) - (global.set $global - (i32.const 0) - ) - ) - ) - (func $skip-only-one-branch-out (result i32) - (block $label$1 - (nop) - ) - (if - (i32.const 1) - (unreachable) ;; blocks a path through - ) - (i32.const 0) - ) - (func $multipass-for-skips (result f32) - (if (result f32) - (i32.const 0) - (block (result f32) - (block $label$2 - (br_if $label$2 - (i32.const 536870912) - ) - ) - (f32.const 9223372036854775808) - ) - (f32.const 65505) - ) - ) - (func $branch-merge-vs-replace - (if - (i32.const 0) - (unreachable) - ) - ) - (func $unswitch-amount - (block $label$1 - (if - (i32.const -23) - (nop) - (block - (block $label$4 - (br_table $label$1 $label$4 - (i32.const 44064) - ) - ) - (unreachable) - ) - ) - ) - ) -) -;; manual TODO: merge branches, all the parts -(module - (type $0 (func)) - (type $1 (func (result i32))) - (type $2 (func (param i32) (result i32))) - (type $3 (func (param i32))) - (func $trivial (; 0 ;) (type $0) - (nop) - ) - (func $trivial2 (; 1 ;) (type $0) - (block - (call $trivial) - (nop) - (call $trivial) - (nop) - ) - (nop) - ) - (func $return-void (; 2 ;) (type $0) - (return) - (unreachable) - ) - (func $return-val (; 3 ;) (type $1) (result i32) - (return - (i32.const 1) - ) - (unreachable) - ) - (func $ifs (; 4 ;) (type $2) (param $x i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (block - (block - (local.set $1 - (local.get $x) - ) - (if - (local.get $1) - (block - (block - (local.set $2 - (local.get $x) - ) - (if - (local.get $2) - (block - (return - (i32.const 2) - ) - (unreachable) - ) - (block - (return - (i32.const 3) - ) - (unreachable) - ) - ) - ) - (unreachable) - ) - ) - ) - (nop) - (block - (local.set $3 - (local.get $x) - ) - (if - (local.get $3) - (block - (return - (i32.const 4) - ) - (unreachable) - ) - ) - ) - (nop) - (return - (i32.const 5) - ) - (unreachable) - ) - (local.set $5 - (local.get $4) - ) - (return - (local.get $5) - ) - ) - (func $loops (; 5 ;) (type $3) (param $x i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (block - (block - (local.set $1 - (local.get $x) - ) - (if - (local.get $1) - (block - (loop $top - (block - (call $trivial) - (nop) - (br $top) - (unreachable) - ) - (unreachable) - ) - (unreachable) - ) - ) - ) - (nop) - (loop $top2 - (block - (call $trivial) - (nop) - (local.set $2 - (local.get $x) - ) - (br_if $top2 - (local.get $2) - ) - (nop) - ) - (nop) - ) - (nop) - (loop $top3 - (block - (call $trivial) - (nop) - (block - (local.set $3 - (local.get $x) - ) - (if - (local.get $3) - (block - (br $top3) - (unreachable) - ) - ) - ) - (nop) - ) - (nop) - ) - (nop) - ) - (nop) - ) - (func $br-out (; 6 ;) (type $3) (param $x i32) - (block $out - (call $br-out - (i32.const 5) - ) - (nop) - (br $out) - (unreachable) - ) - (nop) - ) - (func $unreachable (; 7 ;) (type $3) (param $x i32) - (local $1 i32) - (local $2 i32) - (block - (block - (local.set $1 - (local.get $x) - ) - (if - (local.get $1) - (block - (block - (local.set $2 - (local.get $x) - ) - (if - (local.get $2) - (block - (block $block - (call $unreachable - (i32.const 1) - ) - (nop) - (unreachable) - (unreachable) - (call $unreachable - (i32.const 2) - ) - (nop) - ) - (unreachable) - ) - (block - (block $block4 - (call $unreachable - (i32.const 3) - ) - (nop) - (return) - (unreachable) - (call $unreachable - (i32.const 4) - ) - (nop) - ) - (unreachable) - ) - ) - ) - (unreachable) - ) - ) - ) - (nop) - (block $out - (call $unreachable - (i32.const 5) - ) - (nop) - (br $out) - (unreachable) - (call $unreachable - (i32.const 6) - ) - (nop) - ) - (nop) - ) - (nop) - ) - (func $empty-blocks (; 8 ;) (type $3) (param $x i32) - (block - (block $block - ) - (nop) - (block $block5 - ) - (nop) - ) - (nop) - ) - (func $before-and-after (; 9 ;) (type $3) (param $x i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (block - (call $before-and-after - (i32.const 1) - ) - (nop) - (block $block - (call $before-and-after - (i32.const 2) - ) - (nop) - ) - (nop) - (call $before-and-after - (i32.const 3) - ) - (nop) - (block $out - (call $before-and-after - (i32.const 4) - ) - (nop) - (local.set $1 - (local.get $x) - ) - (br_if $out - (local.get $1) - ) - (nop) - (call $before-and-after - (i32.const 5) - ) - (nop) - ) - (nop) - (call $before-and-after - (i32.const 6) - ) - (nop) - (loop $loop-in - (nop) - ) - (nop) - (call $before-and-after - (i32.const 7) - ) - (nop) - (loop $top - (nop) - ) - (nop) - (call $before-and-after - (i32.const 8) - ) - (nop) - (loop $top2 - (block - (call $before-and-after - (i32.const 9) - ) - (nop) - (local.set $2 - (local.get $x) - ) - (br_if $top2 - (local.get $2) - ) - (nop) - (call $before-and-after - (i32.const 10) - ) - (nop) - ) - (nop) - ) - (nop) - (call $before-and-after - (i32.const 11) - ) - (nop) - (block - (local.set $3 - (local.get $x) - ) - (if - (local.get $3) - (block - (call $before-and-after - (i32.const 12) - ) - (nop) - ) - ) - ) - (nop) - (call $before-and-after - (i32.const 13) - ) - (nop) - (block - (local.set $4 - (local.get $x) - ) - (if - (local.get $4) - (block - (call $before-and-after - (i32.const 14) - ) - (nop) - ) - (block - (call $before-and-after - (i32.const 15) - ) - (nop) - ) - ) - ) - (nop) - (block - (local.set $5 - (local.get $x) - ) - (if - (local.get $5) - (block - (block $block8 - (call $before-and-after - (i32.const 16) - ) - (nop) - ) - (nop) - ) - ) - ) - (nop) - (call $before-and-after - (i32.const 17) - ) - (nop) - (block $block9 - (call $before-and-after - (i32.const 18) - ) - (nop) - (block $block10 - (call $before-and-after - (i32.const 19) - ) - (nop) - ) - (nop) - (call $before-and-after - (i32.const 20) - ) - (nop) - ) - (nop) - (call $before-and-after - (i32.const 21) - ) - (nop) - (block $block11 - (block $block12 - (call $before-and-after - (i32.const 22) - ) - (nop) - ) - (nop) - ) - (nop) - (call $before-and-after - (i32.const 23) - ) - (nop) - (block $no1 - (block $no2 - (call $before-and-after - (i32.const 24) - ) - (nop) - ) - (nop) - ) - (nop) - (call $before-and-after - (i32.const 25) - ) - (nop) - ) - (nop) - ) - (func $switch (; 10 ;) (type $3) (param $x i32) - (local $1 i32) - (local $2 i32) - (block $out - (block $a - (local.set $1 - (local.get $x) - ) - (br_table $a $a - (local.get $1) - ) - (unreachable) - ) - (nop) - (call $switch - (i32.const 1) - ) - (nop) - (block $b - (block $c - (local.set $2 - (local.get $x) - ) - (br_table $b $b $b $c - (local.get $2) - ) - (unreachable) - ) - (nop) - (call $switch - (i32.const 2) - ) - (nop) - ) - (nop) - (call $switch - (i32.const 3) - ) - (nop) - ) - (nop) - ) - (func $no-return (; 11 ;) (type $0) - (if - (i32.const 1) - (block - (drop - (i32.const 2) - ) - (nop) - ) - (block - (drop - (i32.const 3) - ) - (nop) - ) - ) - (nop) - ) - (func $if-br-wat (; 12 ;) (type $3) (param $x i32) - (local $1 i32) - (local $2 i32) - (block - (call $if-br-wat - (i32.const 0) - ) - (nop) - (block $label$2 - (block - (local.set $1 - (local.get $x) - ) - (if - (local.get $1) - (block - (call $if-br-wat - (i32.const 1) - ) - (nop) - ) - (block - (block - (local.set $2 - (local.get $x) - ) - (if - (local.get $2) - (block - (br $label$2) - (unreachable) - ) - ) - ) - (nop) - ) - ) - ) - (nop) - (call $if-br-wat - (i32.const 2) - ) - (nop) - ) - (nop) - (call $if-br-wat - (i32.const 3) - ) - (nop) - ) - (nop) - ) - (func $switcher-to-nowhere (; 13 ;) (type $2) (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (block - (block $switch - (block $switch-case0 - (block $switch-case - (local.set $1 - (local.get $0) - ) - (br_table $switch-case $switch-case0 $switch - (local.get $1) - ) - (unreachable) - ) - (nop) - (return - (i32.const 1) - ) - (unreachable) - ) - (nop) - (return - (i32.const 2) - ) - (unreachable) - ) - (nop) - (return - (i32.const 3) - ) - (unreachable) - ) - (local.set $3 - (local.get $2) - ) - (return - (local.get $3) - ) - ) -) |