diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-03-16 14:41:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-16 14:41:50 -0700 |
commit | 83d69b30b56fdc9966c84082092fe25830472dd1 (patch) | |
tree | 712061cdae10da36bb6158d87f6947471ede4750 /test | |
parent | aadec4526b339af4d2d2b92d3d64f07f935df7a5 (diff) | |
download | binaryen-83d69b30b56fdc9966c84082092fe25830472dd1.tar.gz binaryen-83d69b30b56fdc9966c84082092fe25830472dd1.tar.bz2 binaryen-83d69b30b56fdc9966c84082092fe25830472dd1.zip |
Handle tuples in RemoveUnusedBrs (#2693)
RemoveUnusedBrs produces selects for some patterns, but selects of
multivalue types are not valid. This change checks that types are not
tuple types before producing selects.
Diffstat (limited to 'test')
-rw-r--r-- | test/passes/remove-unused-brs_enable-multivalue.txt (renamed from test/passes/remove-unused-brs.txt) | 222 | ||||
-rw-r--r-- | test/passes/remove-unused-brs_enable-multivalue.wast (renamed from test/passes/remove-unused-brs.wast) | 20 |
2 files changed, 140 insertions, 102 deletions
diff --git a/test/passes/remove-unused-brs.txt b/test/passes/remove-unused-brs_enable-multivalue.txt index 392913702..074237d8d 100644 --- a/test/passes/remove-unused-brs.txt +++ b/test/passes/remove-unused-brs_enable-multivalue.txt @@ -4,6 +4,7 @@ (type $none_=>_i32 (func (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_i32_i64 (func (result i32 i64))) (type $none_=>_i64 (func (result i64))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_f64_i32_f64_f32_f32_=>_i32 (func (param i32 f64 i32 f64 f32 f32) (result i32))) @@ -191,14 +192,33 @@ (i32.const 1) ) ) - (func $b15 (; 15 ;) + (func $b14-tuple (; 15 ;) (result i32 i64) + (if (result i32 i64) + (i32.const 1) + (block $topmost (result i32 i64) + (block $block1 (result i32 i64) + (tuple.make + (i32.const 12) + (i64.const 12) + ) + ) + ) + (block $block3 (result i32 i64) + (tuple.make + (i32.const 27) + (i64.const 27) + ) + ) + ) + ) + (func $b15 (; 16 ;) (block $topmost (br_if $topmost (i32.const 17) ) ) ) - (func $b15b (; 16 ;) + (func $b15b (; 17 ;) (if (i32.const 18) (block $topmost @@ -210,7 +230,7 @@ ) ) ) - (func $b16 (; 17 ;) + (func $b16 (; 18 ;) (block $a (block $b (block $c @@ -230,7 +250,7 @@ ) ) ) - (func $b17 (; 18 ;) + (func $b17 (; 19 ;) (if (i32.const 0) (block $a @@ -272,16 +292,16 @@ ) ) ) - (func $ret-1 (; 19 ;) + (func $ret-1 (; 20 ;) (nop) ) - (func $ret-2 (; 20 ;) + (func $ret-2 (; 21 ;) (block $block0 (block $block1 ) ) ) - (func $ret-3 (; 21 ;) + (func $ret-3 (; 22 ;) (if (i32.const 0) (block $block0 @@ -290,14 +310,14 @@ ) ) ) - (func $ret-value (; 22 ;) (result i32) + (func $ret-value (; 23 ;) (result i32) (block $block0 (result i32) (block $block1 (result i32) (i32.const 1) ) ) ) - (func $no-select-but-the-last (; 23 ;) + (func $no-select-but-the-last (; 24 ;) (block $a (if (i32.const 0) @@ -371,7 +391,7 @@ ) ) ) - (func $side-effects-and-order (; 24 ;) (result i32) + (func $side-effects-and-order (; 25 ;) (result i32) (local $x i32) (block $do-once$0 (if @@ -429,7 +449,7 @@ (i32.const 1) ) ) - (func $loops (; 25 ;) + (func $loops (; 26 ;) (loop $in (block $out (br_if $in @@ -699,7 +719,7 @@ ) ) ) - (func $br_if_in_block (; 26 ;) (result i32) + (func $br_if_in_block (; 27 ;) (result i32) (block $outval (result i32) (block $in (drop @@ -733,7 +753,7 @@ ) ) ) - (func $threading (; 27 ;) + (func $threading (; 28 ;) (drop (block $value-out (result i32) (block $value-in (result i32) @@ -767,7 +787,7 @@ ) ) ) - (func $if-to-br_if-conflict (; 28 ;) (param $x i32) (param $y i32) (result i32) + (func $if-to-br_if-conflict (; 29 ;) (param $x i32) (param $y i32) (result i32) (block $leave (local.set $y (block $out (result i32) @@ -794,7 +814,7 @@ (local.get $y) ) ) - (func $if-to-br_if-conflict2 (; 29 ;) (param $x i32) (param $y i32) (result i32) + (func $if-to-br_if-conflict2 (; 30 ;) (param $x i32) (param $y i32) (result i32) (block $leave (local.set $y (block $out (result i32) @@ -821,7 +841,7 @@ (local.get $y) ) ) - (func $if-to-br_if-value-sideeffect (; 30 ;) (param $x i32) (param $y i32) (result i32) + (func $if-to-br_if-value-sideeffect (; 31 ;) (param $x i32) (param $y i32) (result i32) (block $leave (local.set $y (block $out (result i32) @@ -849,7 +869,7 @@ (local.get $y) ) ) - (func $fuzz (; 31 ;) (param $j i32) (param $g i32) + (func $fuzz (; 32 ;) (param $j i32) (param $g i32) (loop $label$continue$d (block $label$break$c (block $label$break$d @@ -879,7 +899,7 @@ ) ) ) - (func $iffify (; 32 ;) + (func $iffify (; 33 ;) (if (i32.eqz (i32.const 0) @@ -934,7 +954,7 @@ ) ) ) - (func $loop-if (; 33 ;) (result i32) + (func $loop-if (; 34 ;) (result i32) (loop $typed (result i32) (block $outer (result i32) (block (result i32) @@ -953,7 +973,7 @@ ) ) ) - (func $block-break (; 34 ;) (param $0 i32) + (func $block-break (; 35 ;) (param $0 i32) (block $block$7$break (block $shape$6$continue (call $block-break @@ -962,7 +982,7 @@ ) ) ) - (func $loop-break (; 35 ;) (param $0 i32) + (func $loop-break (; 36 ;) (param $0 i32) (loop $shape$6$continue (block $block$7$break (block @@ -977,7 +997,7 @@ ) ) ) - (func $untaken-brs-might-prevent-block-removal (; 36 ;) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 i32) (param $4 i32) (param $5 f64) (param $6 f32) (result i32) + (func $untaken-brs-might-prevent-block-removal (; 37 ;) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 i32) (param $4 i32) (param $5 f64) (param $6 f32) (result i32) (block $label$0 (result i32) (block $label$1 (br_if $label$1 @@ -1012,7 +1032,7 @@ (i32.const 1935947830) ) ) - (func $unexitable-loops-result (; 37 ;) (param $0 i32) (result i64) + (func $unexitable-loops-result (; 38 ;) (param $0 i32) (result i64) (loop $label$0 (loop $label$1 (br_if $label$0 @@ -1031,7 +1051,7 @@ ) ) ) - (func $untaken-br-with-concrete-last-element (; 38 ;) + (func $untaken-br-with-concrete-last-element (; 39 ;) (block $label$8 (block $label$11 (block $label$14 @@ -1042,7 +1062,7 @@ ) ) ) - (func $untaken-br-with-concrete-last-element2 (; 39 ;) (result i32) + (func $untaken-br-with-concrete-last-element2 (; 40 ;) (result i32) (block $label$8 (result i32) (block $label$11 (result i32) (block $label$14 (result i32) @@ -1056,7 +1076,7 @@ ) ) ) - (func $untaken-br_if-then-if (; 40 ;) + (func $untaken-br_if-then-if (; 41 ;) (block $label$0 (br_if $label$0 (unreachable) @@ -1067,7 +1087,7 @@ ) ) ) - (func $unreachable-if-that-could-be-a-br_if (; 41 ;) (result i64) + (func $unreachable-if-that-could-be-a-br_if (; 42 ;) (result i64) (loop $label$3 (result i64) (drop (if (result f64) @@ -1079,7 +1099,7 @@ (i64.const 1) ) ) - (func $nop-br-might-update-type (; 42 ;) + (func $nop-br-might-update-type (; 43 ;) (block $label$39 (drop (if (result i32) @@ -1094,7 +1114,7 @@ ) ) ) - (func $no-flow-through-if-without-else (; 43 ;) (result f32) + (func $no-flow-through-if-without-else (; 44 ;) (result f32) (local $0 i32) (local $2 f32) (if (result f32) @@ -1115,7 +1135,7 @@ (f32.const -9223372036854775808) ) ) - (func $unreachable-return-loop-value (; 44 ;) (result i64) + (func $unreachable-return-loop-value (; 45 ;) (result i64) (loop $loop (if (i32.const 1) @@ -1129,7 +1149,7 @@ (br $loop) ) ) - (func $obviously-flows-out-maybe (; 45 ;) (param $var$0 i32) (result f32) + (func $obviously-flows-out-maybe (; 46 ;) (param $var$0 i32) (result f32) (block $label$1 (result f32) (br $label$1 (f32.const 1) @@ -1148,7 +1168,7 @@ ) ) ) - (func $br-to-table (; 46 ;) (param $a i32) + (func $br-to-table (; 47 ;) (param $a i32) (block $x (block $y (block $z @@ -1167,7 +1187,7 @@ ) (unreachable) ) - (func $br-to-table-too-few (; 47 ;) (param $a i32) + (func $br-to-table-too-few (; 48 ;) (param $a i32) (block $x (block $y (block $z @@ -1187,7 +1207,7 @@ ) ) ) - (func $br-to-table-one-more (; 48 ;) (param $a i32) + (func $br-to-table-one-more (; 49 ;) (param $a i32) (block $x (block $y (block $z @@ -1207,7 +1227,7 @@ ) (unreachable) ) - (func $br-to-table-overlap (; 49 ;) (param $a i32) + (func $br-to-table-overlap (; 50 ;) (param $a i32) (block $x (block $y (block $z @@ -1237,7 +1257,7 @@ ) (unreachable) ) - (func $br-to-table-overlap-start (; 50 ;) (param $a i32) + (func $br-to-table-overlap-start (; 51 ;) (param $a i32) (block $x (block $y (block $z @@ -1267,7 +1287,7 @@ ) (unreachable) ) - (func $br-to-table-offset (; 51 ;) (param $a i32) + (func $br-to-table-offset (; 52 ;) (param $a i32) (block $x (block $y (block $z @@ -1289,7 +1309,7 @@ ) (unreachable) ) - (func $br-to-table-RANGE-high (; 52 ;) (param $a i32) + (func $br-to-table-RANGE-high (; 53 ;) (param $a i32) (block $x (block $y (block $z @@ -1319,7 +1339,7 @@ ) (unreachable) ) - (func $br-to-table-RANGE-low (; 53 ;) (param $a i32) + (func $br-to-table-RANGE-low (; 54 ;) (param $a i32) (block $x (block $y (block $z @@ -1338,7 +1358,7 @@ ) (unreachable) ) - (func $br-to-table-bad (; 54 ;) (param $a i32) (result i32) + (func $br-to-table-bad (; 55 ;) (param $a i32) (result i32) (block $value (result i32) (block $x (block $y @@ -1361,7 +1381,7 @@ (i32.const 2000) ) ) - (func $br-to-table-bad2 (; 55 ;) (param $a i32) (result i32) + (func $br-to-table-bad2 (; 56 ;) (param $a i32) (result i32) (block $value (result i32) (block $x (block $y @@ -1392,7 +1412,7 @@ (i32.const 2000) ) ) - (func $br-to-table-bad3 (; 56 ;) (param $a i32) + (func $br-to-table-bad3 (; 57 ;) (param $a i32) (block $x (block $y (block $z @@ -1417,7 +1437,7 @@ ) (unreachable) ) - (func $br-to-table-multi (; 57 ;) (param $a i32) + (func $br-to-table-multi (; 58 ;) (param $a i32) (block $x (block $y (block $z @@ -1446,7 +1466,7 @@ ) (unreachable) ) - (func $br-to-table-bad4 (; 58 ;) (param $a i32) + (func $br-to-table-bad4 (; 59 ;) (param $a i32) (block $x (block $y (block $z @@ -1476,7 +1496,7 @@ ) (unreachable) ) - (func $br-to-table-bad5 (; 59 ;) (param $a i32) + (func $br-to-table-bad5 (; 60 ;) (param $a i32) (block $x (block $y (block $z @@ -1506,7 +1526,7 @@ ) (unreachable) ) - (func $br-to-table-bad6 (; 60 ;) (param $a i32) + (func $br-to-table-bad6 (; 61 ;) (param $a i32) (block $x (block $y (block $z @@ -1536,7 +1556,7 @@ ) (unreachable) ) - (func $br-to-table-bad7 (; 61 ;) (param $a i32) + (func $br-to-table-bad7 (; 62 ;) (param $a i32) (block $x (block $y (block $z @@ -1566,7 +1586,7 @@ ) (unreachable) ) - (func $br-to-table-defaultNameOverlaps (; 62 ;) (param $a i32) + (func $br-to-table-defaultNameOverlaps (; 63 ;) (param $a i32) (block $x (block $tablify|0 (block $z @@ -1585,7 +1605,7 @@ ) (unreachable) ) - (func $br-to-table-unreach (; 63 ;) (param $a i32) + (func $br-to-table-unreach (; 64 ;) (param $a i32) (block $x (block $y (block $z @@ -1615,7 +1635,7 @@ ) (unreachable) ) - (func $br-to-table-overlap-but-later (; 64 ;) (param $a i32) + (func $br-to-table-overlap-but-later (; 65 ;) (param $a i32) (block $x (block $y (block $z @@ -1649,7 +1669,7 @@ ) (unreachable) ) - (func $tiny-switch (; 65 ;) + (func $tiny-switch (; 66 ;) (if (i32.const 0) (block $y @@ -1666,7 +1686,7 @@ ) ) ) - (func $trim-switch (; 66 ;) + (func $trim-switch (; 67 ;) (block $A (block $y (br_table $A $y $A $y $A $y @@ -1679,7 +1699,7 @@ (call $trim-switch) ) ) - (func $same-target-br_if-and-br (; 67 ;) + (func $same-target-br_if-and-br (; 68 ;) (block $x (drop (i32.const 0) @@ -1688,7 +1708,7 @@ (unreachable) ) ) - (func $simple-switch (; 68 ;) (result i32) + (func $simple-switch (; 69 ;) (result i32) (block $A (block $B (block $y @@ -1709,7 +1729,7 @@ ) (i32.const 3) ) - (func $simple-switch-2 (; 69 ;) (result i32) + (func $simple-switch-2 (; 70 ;) (result i32) (block $A (block $B (block $y @@ -1730,7 +1750,7 @@ ) (i32.const 3) ) - (func $simple-switch-3 (; 70 ;) (result i32) + (func $simple-switch-3 (; 71 ;) (result i32) (block $A (block $B (block $y @@ -1751,7 +1771,7 @@ ) (i32.const 3) ) - (func $simple-switch43 (; 71 ;) (result i32) + (func $simple-switch43 (; 72 ;) (result i32) (local $0 i32) (block $A (block $B @@ -1784,7 +1804,7 @@ ) (i32.const 3) ) - (func $simple-switch-5 (; 72 ;) (result i32) + (func $simple-switch-5 (; 73 ;) (result i32) (block $A (block $B (block $y @@ -1805,7 +1825,7 @@ ) (i32.const 3) ) - (func $undo-if-return (; 73 ;) (param $p i32) (result i32) + (func $undo-if-return (; 74 ;) (param $p i32) (result i32) (local $x i32) (block $out (block @@ -1836,7 +1856,7 @@ ) (local.get $p) ) - (func $if-unreachable-but-declares-value (; 74 ;) (param $var$0 i32) (param $var$1 f64) (param $var$2 i32) (param $var$3 f64) (param $var$4 f32) (param $var$5 f32) (result i32) + (func $if-unreachable-but-declares-value (; 75 ;) (param $var$0 i32) (param $var$1 f64) (param $var$2 i32) (param $var$3 f64) (param $var$4 f32) (param $var$5 f32) (result i32) (local $var$6 f64) (if (i32.const 0) @@ -1861,28 +1881,28 @@ ) (i32.const 0) ) - (func $if-flow-1 (; 75 ;) (result i32) + (func $if-flow-1 (; 76 ;) (result i32) (select (i32.const 1) (i32.const 2) (i32.const 0) ) ) - (func $if-flow-2 (; 76 ;) (result i32) + (func $if-flow-2 (; 77 ;) (result i32) (if (result i32) (i32.const 0) (unreachable) (i32.const 2) ) ) - (func $if-flow-3 (; 77 ;) (result i32) + (func $if-flow-3 (; 78 ;) (result i32) (if (result i32) (i32.const 0) (i32.const 1) (unreachable) ) ) - (func $if-flow-4 (; 78 ;) (result i32) + (func $if-flow-4 (; 79 ;) (result i32) (if (return (i32.const 0) @@ -1895,7 +1915,7 @@ ) ) ) - (func $iff-flow-fuzz-bug (; 79 ;) (result i32) + (func $iff-flow-fuzz-bug (; 80 ;) (result i32) (loop $label$1 (br_if $label$1 (i32.eqz @@ -1914,7 +1934,7 @@ ) ) ) - (func $fuzz-block-unreachable-brs-with-values (; 80 ;) (result i32) + (func $fuzz-block-unreachable-brs-with-values (; 81 ;) (result i32) (local $0 i32) (loop $label$1 (if @@ -1937,7 +1957,7 @@ ) ) ) - (func $drop-restructure-if (; 81 ;) (param $x i32) (param $y i32) (result i32) + (func $drop-restructure-if (; 82 ;) (param $x i32) (param $y i32) (result i32) (if (result i32) (local.get $y) (local.get $x) @@ -1947,7 +1967,7 @@ ) ) ) - (func $drop-restructure-if-final (; 82 ;) (param $x i32) (param $y i32) (result i32) + (func $drop-restructure-if-final (; 83 ;) (param $x i32) (param $y i32) (result i32) (if (result i32) (local.get $y) (local.get $x) @@ -1957,7 +1977,7 @@ ) ) ) - (func $drop-restructure-if-middle (; 83 ;) (param $x i32) (param $y i32) (result i32) + (func $drop-restructure-if-middle (; 84 ;) (param $x i32) (param $y i32) (result i32) (if (result i32) (local.get $y) (local.get $x) @@ -1968,7 +1988,7 @@ ) ) ) - (func $drop-restructure-if-bad (; 84 ;) (param $x i32) (param $y i32) (result i32) + (func $drop-restructure-if-bad (; 85 ;) (param $x i32) (param $y i32) (result i32) (block $label$2 (result i32) (drop (br_if $label$2 @@ -1981,7 +2001,7 @@ (i32.const 0) ) ) - (func $drop-restructure-if-bad-2 (; 85 ;) (param $x i32) (param $y i32) (result i32) + (func $drop-restructure-if-bad-2 (; 86 ;) (param $x i32) (param $y i32) (result i32) (block $label$2 (result i32) (drop (br_if $label$2 @@ -1994,7 +2014,7 @@ (i32.const 0) ) ) - (func $if-block (; 86 ;) + (func $if-block (; 87 ;) (if (i32.const 1) (block $label @@ -2009,7 +2029,7 @@ ) ) ) - (func $if-block-bad (; 87 ;) + (func $if-block-bad (; 88 ;) (block $label (if (br $label) @@ -2024,14 +2044,14 @@ ) ) ) - (func $if-block-br (; 88 ;) + (func $if-block-br (; 89 ;) (block $label (br_if $label (i32.const 1) ) ) ) - (func $if-block-br-1 (; 89 ;) + (func $if-block-br-1 (; 90 ;) (if (i32.const 1) (block $label @@ -2041,7 +2061,7 @@ ) ) ) - (func $if-block-br-2 (; 90 ;) + (func $if-block-br-2 (; 91 ;) (if (i32.const 1) (block $label @@ -2052,7 +2072,7 @@ (nop) ) ) - (func $if-block-br-3 (; 91 ;) + (func $if-block-br-3 (; 92 ;) (if (i32.const 1) (block $label @@ -2060,7 +2080,7 @@ (nop) ) ) - (func $if-block-br-4-eithre (; 92 ;) + (func $if-block-br-4-eithre (; 93 ;) (if (i32.const 1) (block $label @@ -2073,7 +2093,7 @@ ) ) ) - (func $if-block-br-5-value (; 93 ;) (result i32) + (func $if-block-br-5-value (; 94 ;) (result i32) (select (block $label (result i32) (i32.const 2) @@ -2082,7 +2102,7 @@ (i32.const 1) ) ) - (func $restructure-if-outerType-change (; 94 ;) + (func $restructure-if-outerType-change (; 95 ;) (loop $label$1 (br_if $label$1 (block $label$2 @@ -2099,7 +2119,7 @@ ) ) ) - (func $if-arm-unreachable (; 95 ;) + (func $if-arm-unreachable (; 96 ;) (if (unreachable) (block $label$1 @@ -2108,7 +2128,7 @@ (unreachable) ) ) - (func $propagate-type-if-we-optimize (; 96 ;) + (func $propagate-type-if-we-optimize (; 97 ;) (if (i32.const 1) (nop) @@ -2131,7 +2151,7 @@ ) ) ) - (func $switch-to-br (; 97 ;) + (func $switch-to-br (; 98 ;) (block $A (block $y (block @@ -2143,7 +2163,7 @@ ) ) ) - (func $switch-to-br-value (; 98 ;) (result i32) + (func $switch-to-br-value (; 99 ;) (result i32) (block $A (result i32) (block $y (result i32) (block @@ -2157,7 +2177,7 @@ ) ) ) - (func $switch-threading-multi (; 99 ;) (param $x i32) (param $y i32) (result i32) + (func $switch-threading-multi (; 100 ;) (param $x i32) (param $y i32) (result i32) (block $block$5$break (block $block$4$break (loop $shape$1$continue @@ -2191,7 +2211,7 @@ ) (unreachable) ) - (func $fuzz-type-changes-in-our-cycles (; 100 ;) (result i32) + (func $fuzz-type-changes-in-our-cycles (; 101 ;) (result i32) (loop $label$1 (if (i32.const 0) @@ -2209,7 +2229,7 @@ (br $label$1) ) ) - (func $refinalize-need-br-value (; 101 ;) (result i32) + (func $refinalize-need-br-value (; 102 ;) (result i32) (loop $label$3 (result i32) (block $label$6 (result i32) (block $label$10 @@ -2231,7 +2251,7 @@ ) ) ) - (func $selectify (; 102 ;) (param $x i32) + (func $selectify (; 103 ;) (param $x i32) (drop (if (result i32) (i32.eq @@ -2265,7 +2285,7 @@ ) ) ) - (func $if-one-side (; 103 ;) (result i32) + (func $if-one-side (; 104 ;) (result i32) (local $x i32) (local.set $x (select @@ -2276,7 +2296,7 @@ ) (local.get $x) ) - (func $if-one-side-b (; 104 ;) (result i32) + (func $if-one-side-b (; 105 ;) (result i32) (local $x i32) (local.set $x (select @@ -2287,7 +2307,7 @@ ) (local.get $x) ) - (func $if-one-side-tee-etc (; 105 ;) (param $0 i32) (result i32) + (func $if-one-side-tee-etc (; 106 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2308,7 +2328,7 @@ ) (i32.const 0) ) - (func $ifs-copies-recursive (; 106 ;) (param $20 i32) (result i32) + (func $ifs-copies-recursive (; 107 ;) (param $20 i32) (result i32) (if (i32.const 1) (local.set $20 @@ -2325,7 +2345,7 @@ ) (local.get $20) ) - (func $if-copy1 (; 107 ;) + (func $if-copy1 (; 108 ;) (local $x i32) (local $y i32) (loop $top @@ -2339,7 +2359,7 @@ (br $top) ) ) - (func $if-copy3 (; 108 ;) + (func $if-copy3 (; 109 ;) (local $x i32) (local $y i32) (loop $top @@ -2352,7 +2372,7 @@ (br $top) ) ) - (func $if-copy4 (; 109 ;) + (func $if-copy4 (; 110 ;) (local $x i32) (local $y i32) (loop $top @@ -2366,7 +2386,7 @@ (br $top) ) ) - (func $if-copy-tee (; 110 ;) + (func $if-copy-tee (; 111 ;) (local $x i32) (local $y i32) (loop $top @@ -2382,7 +2402,7 @@ (br $top) ) ) - (func $loop-end-set (; 111 ;) (param $x i32) (result i32) + (func $loop-end-set (; 112 ;) (param $x i32) (result i32) (loop $loop (nop) (br_if $loop @@ -2394,7 +2414,7 @@ ) (local.get $x) ) - (func $loop-end-value (; 112 ;) (param $x i32) (result i32) + (func $loop-end-value (; 113 ;) (param $x i32) (result i32) (loop $loop (result i32) (nop) (br_if $loop @@ -2403,7 +2423,7 @@ (i32.const 1) ) ) - (func $do-not-flow-values-through-unreachable-code (; 113 ;) (result i32) + (func $do-not-flow-values-through-unreachable-code (; 114 ;) (result i32) (block $block (unreachable) (if @@ -2417,7 +2437,7 @@ ) ) ) - (func $do-not-flow-values-through-unreachable-code-b (; 114 ;) (result i32) + (func $do-not-flow-values-through-unreachable-code-b (; 115 ;) (result i32) (loop $loop-in (unreachable) (if @@ -2431,7 +2451,7 @@ ) ) ) - (func $if_br_if (; 115 ;) + (func $if_br_if (; 116 ;) (local $0 i32) (block $label$1 (br_if $label$1 diff --git a/test/passes/remove-unused-brs.wast b/test/passes/remove-unused-brs_enable-multivalue.wast index c20e352f0..b37b75776 100644 --- a/test/passes/remove-unused-brs.wast +++ b/test/passes/remove-unused-brs_enable-multivalue.wast @@ -190,6 +190,25 @@ ) ) ) + (func $b14-tuple (result i32 i64) + (block $topmost (result i32 i64) + (if (result i32 i64) + (i32.const 1) + (block $block1 (result i32 i64) + (tuple.make + (i32.const 12) + (i64.const 12) + ) + ) + (block $block3 (result i32 i64) + (tuple.make + (i32.const 27) + (i64.const 27) + ) + ) + ) + ) + ) (func $b15 (type $1) (block $topmost (if @@ -2088,4 +2107,3 @@ ) ) ) - |