diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-09-12 17:12:56 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-12 17:12:56 -0700 |
commit | 048bcadbc0fdc9866e70995984813551aa5681ea (patch) | |
tree | c401084f7a48aac8ef236f3f6f954d71ceec8884 /test/unit.wast.fromBinary | |
parent | c6729400f68a346c1d51702946bf6026638782a6 (diff) | |
download | binaryen-048bcadbc0fdc9866e70995984813551aa5681ea.tar.gz binaryen-048bcadbc0fdc9866e70995984813551aa5681ea.tar.bz2 binaryen-048bcadbc0fdc9866e70995984813551aa5681ea.zip |
Avoid new blocks in binary reading/writing (#1165)
* don't emit a toplevel block if we don't need to, as in wasm it is a list context
* don't create unnecessary blocks in wasm reading
Diffstat (limited to 'test/unit.wast.fromBinary')
-rw-r--r-- | test/unit.wast.fromBinary | 374 |
1 files changed, 164 insertions, 210 deletions
diff --git a/test/unit.wast.fromBinary b/test/unit.wast.fromBinary index 817cc3c7a..f4e9f88b9 100644 --- a/test/unit.wast.fromBinary +++ b/test/unit.wast.fromBinary @@ -19,27 +19,25 @@ (export "big_negative" (func $big_negative)) (func $big_negative (type $1) (local $var$0 f64) - (block $label$0 - (set_local $var$0 - (f64.const -2147483648) - ) - (set_local $var$0 - (f64.const -2147483648) - ) - (set_local $var$0 - (f64.const -21474836480) - ) - (set_local $var$0 - (f64.const 0.039625) - ) - (set_local $var$0 - (f64.const -0.039625) - ) + (set_local $var$0 + (f64.const -2147483648) + ) + (set_local $var$0 + (f64.const -2147483648) + ) + (set_local $var$0 + (f64.const -21474836480) + ) + (set_local $var$0 + (f64.const 0.039625) + ) + (set_local $var$0 + (f64.const -0.039625) ) ) (func $importedDoubles (type $4) (result f64) (local $var$0 f64) - (block $label$0 (result f64) + (block $label$1 (result f64) (set_local $var$0 (f64.add (f64.add @@ -71,10 +69,8 @@ ) (i32.const 0) ) - (block $label$1 - (br $label$0 - (f64.const -3.4) - ) + (br $label$1 + (f64.const -3.4) ) ) (if @@ -84,10 +80,8 @@ ) (f64.const 0) ) - (block $label$2 - (br $label$0 - (f64.const 5.6) - ) + (br $label$1 + (f64.const 5.6) ) ) (f64.const 1.2) @@ -97,16 +91,14 @@ (local $var$2 i32) (local $var$3 f64) (local $var$4 f64) - (block $label$0 (result f64) + (block $label$1 (result f64) (if (f64.gt (get_local $var$0) (f64.const 0) ) - (block $label$1 - (br $label$0 - (f64.const 1.2) - ) + (br $label$1 + (f64.const 1.2) ) ) (if @@ -114,10 +106,8 @@ (get_local $var$4) (f64.const 0) ) - (block $label$2 - (br $label$0 - (f64.const -3.4) - ) + (br $label$1 + (f64.const -3.4) ) ) (if @@ -125,10 +115,8 @@ (get_local $var$2) (i32.const 0) ) - (block $label$3 - (br $label$0 - (f64.const 5.6) - ) + (br $label$1 + (f64.const 5.6) ) ) (if @@ -136,10 +124,8 @@ (get_local $var$0) (get_local $var$1) ) - (block $label$4 - (br $label$0 - (get_local $var$0) - ) + (br $label$1 + (get_local $var$0) ) ) (get_local $var$1) @@ -166,23 +152,21 @@ (func $conversions (type $1) (local $var$0 i32) (local $var$1 f64) - (block $label$0 - (set_local $var$0 - (call $import$1 - (get_local $var$1) - ) + (set_local $var$0 + (call $import$1 + (get_local $var$1) ) - (set_local $var$1 - (f64.convert_s/i32 - (get_local $var$0) - ) + ) + (set_local $var$1 + (f64.convert_s/i32 + (get_local $var$0) ) - (set_local $var$1 - (f64.convert_u/i32 - (i32.shr_u - (get_local $var$0) - (i32.const 0) - ) + ) + (set_local $var$1 + (f64.convert_u/i32 + (i32.shr_u + (get_local $var$0) + (i32.const 0) ) ) ) @@ -191,13 +175,13 @@ (local $var$0 f64) (set_local $var$0 (f64.sub - (block $label$0 (result f64) + (block $label$1 (result f64) (drop (f64.const 0.1) ) (f64.const 5.1) ) - (block $label$1 (result f64) + (block $label$2 (result f64) (drop (f64.const 3.2) ) @@ -207,75 +191,75 @@ ) ) (func $switcher (type $6) (param $var$0 i32) (result i32) - (block $label$0 (result i32) - (block $label$1 - (block $label$2 - (block $label$3 - (block $label$4 - (br_table $label$4 $label$3 $label$2 + (block $label$1 (result i32) + (block $label$2 + (block $label$3 + (block $label$4 + (block $label$5 + (br_table $label$5 $label$4 $label$3 (i32.sub (get_local $var$0) (i32.const 1) ) ) ) - (br $label$0 + (br $label$1 (i32.const 1) ) ) - (br $label$0 + (br $label$1 (i32.const 2) ) ) (nop) ) - (block $label$5 - (block $label$6 - (block $label$7 - (block $label$8 - (br_table $label$7 $label$6 $label$6 $label$6 $label$6 $label$6 $label$6 $label$8 $label$6 + (block $label$6 + (block $label$7 + (block $label$8 + (block $label$9 + (br_table $label$8 $label$7 $label$7 $label$7 $label$7 $label$7 $label$7 $label$9 $label$7 (i32.sub (get_local $var$0) (i32.const 5) ) ) ) - (br $label$0 + (br $label$1 (i32.const 121) ) ) - (br $label$0 + (br $label$1 (i32.const 51) ) ) (nop) ) - (block $label$9 - (block $label$10 - (block $label$11 - (block $label$12 - (block $label$13 - (block $label$14 - (br_table $label$11 $label$10 $label$10 $label$12 $label$10 $label$10 $label$10 $label$10 $label$13 $label$10 $label$14 $label$10 + (block $label$10 + (block $label$11 + (block $label$12 + (block $label$13 + (block $label$14 + (block $label$15 + (br_table $label$12 $label$11 $label$11 $label$13 $label$11 $label$11 $label$11 $label$11 $label$14 $label$11 $label$15 $label$11 (i32.sub (get_local $var$0) (i32.const 2) ) ) ) - (br $label$9) + (br $label$10) ) - (br $label$9) + (br $label$10) ) - (block $label$15 - (loop $label$16 - (br $label$15) + (block $label$16 + (loop $label$17 + (br $label$16) ) ) ) - (block $label$17 - (loop $label$18 - (br $label$9) + (block $label$18 + (loop $label$19 + (br $label$10) ) ) ) @@ -285,8 +269,8 @@ ) ) (func $blocker (type $1) - (block $label$0 - (br $label$0) + (block $label$1 + (br $label$1) ) ) (func $frem (type $4) (result f64) @@ -297,44 +281,40 @@ ) (func $big_uint_div_u (type $5) (result i32) (local $var$0 i32) - (block $label$0 (result i32) - (set_local $var$0 - (i32.and - (i32.div_u - (i32.const -1) - (i32.const 2) - ) + (set_local $var$0 + (i32.and + (i32.div_u (i32.const -1) + (i32.const 2) ) + (i32.const -1) ) - (get_local $var$0) ) + (get_local $var$0) ) (func $fr (type $0) (param $var$0 f32) (local $var$1 f32) (local $var$2 f64) - (block $label$0 - (drop - (f32.demote/f64 - (get_local $var$2) - ) - ) - (drop - (get_local $var$1) - ) - (drop - (f32.const 5) - ) - (drop - (f32.const 0) - ) - (drop - (f32.const 5) - ) - (drop - (f32.const 0) + (drop + (f32.demote/f64 + (get_local $var$2) ) ) + (drop + (get_local $var$1) + ) + (drop + (f32.const 5) + ) + (drop + (f32.const 0) + ) + (drop + (f32.const 5) + ) + (drop + (f32.const 0) + ) ) (func $negZero (type $4) (result f64) (f64.const -0) @@ -344,54 +324,50 @@ (local $var$1 i32) (local $var$2 f32) (local $var$3 f64) - (block $label$0 - (set_local $var$0 - (block $label$1 (result i32) - (set_local $var$1 + (set_local $var$0 + (block $label$1 (result i32) + (set_local $var$1 + (i32.const 0) + ) + (select + (i32.sub (i32.const 0) + (get_local $var$1) ) - (select - (i32.sub - (i32.const 0) - (get_local $var$1) - ) + (get_local $var$1) + (i32.lt_s (get_local $var$1) - (i32.lt_s - (get_local $var$1) - (i32.const 0) - ) + (i32.const 0) ) ) ) - (set_local $var$3 - (f64.abs - (f64.const 0) - ) + ) + (set_local $var$3 + (f64.abs + (f64.const 0) ) - (set_local $var$2 - (f32.abs - (f32.const 0) - ) + ) + (set_local $var$2 + (f32.abs + (f32.const 0) ) ) ) (func $neg (type $1) (local $var$0 f32) - (block $label$0 - (set_local $var$0 - (f32.neg - (get_local $var$0) - ) - ) - (call_indirect $0 + (set_local $var$0 + (f32.neg (get_local $var$0) - (i32.add - (i32.and - (i32.const 1) - (i32.const 7) - ) - (i32.const 8) + ) + ) + (call_indirect $0 + (get_local $var$0) + (i32.add + (i32.and + (i32.const 1) + (i32.const 7) ) + (i32.const 8) ) ) ) @@ -426,18 +402,16 @@ (nop) ) (func $block_and_after (type $5) (result i32) - (block $label$0 (result i32) - (block $label$1 - (drop - (i32.const 1) - ) - (br $label$1) + (block $label$1 + (drop + (i32.const 1) ) - (i32.const 0) + (br $label$1) ) + (i32.const 0) ) (func $loop-roundtrip (type $7) (param $var$0 f64) (result f64) - (loop $label$0 (result f64) + (loop $label$1 (result f64) (drop (get_local $var$0) ) @@ -459,7 +433,7 @@ ) ) (func $unreachable-block (type $5) (result i32) - (block $label$0 + (block $label$1 (drop (i32.const 1) ) @@ -469,72 +443,58 @@ ) ) (func $unreachable-block-toplevel (type $5) (result i32) - (block $label$0 - (drop - (i32.const 1) - ) - (return - (i32.const 2) - ) + (drop + (i32.const 1) + ) + (return + (i32.const 2) ) ) (func $unreachable-block0 (type $5) (result i32) - (block $label$0 + (block $label$1 (return (i32.const 2) ) ) ) (func $unreachable-block0-toplevel (type $5) (result i32) - (block $label$0 - (return - (i32.const 2) - ) + (return + (i32.const 2) ) ) (func $unreachable-block-with-br (type $5) (result i32) - (block $label$0 (result i32) - (block $label$1 - (drop - (i32.const 1) - ) - (br $label$1) + (block $label$1 + (drop + (i32.const 1) ) - (i32.const 1) + (br $label$1) ) + (i32.const 1) ) (func $unreachable-if (type $5) (result i32) (if (i32.const 3) - (block $label$0 - (return - (i32.const 2) - ) + (return + (i32.const 2) ) - (block $label$1 - (return - (i32.const 1) - ) + (return + (i32.const 1) ) ) ) (func $unreachable-if-toplevel (type $5) (result i32) (if (i32.const 3) - (block $label$0 - (return - (i32.const 2) - ) + (return + (i32.const 2) ) - (block $label$1 - (return - (i32.const 1) - ) + (return + (i32.const 1) ) ) ) (func $unreachable-loop (type $5) (result i32) - (loop $label$0 + (loop $label$1 (nop) (return (i32.const 1) @@ -542,14 +502,14 @@ ) ) (func $unreachable-loop0 (type $5) (result i32) - (loop $label$0 + (loop $label$1 (return (i32.const 1) ) ) ) (func $unreachable-loop-toplevel (type $5) (result i32) - (loop $label$0 + (loop $label$1 (nop) (return (i32.const 1) @@ -557,26 +517,20 @@ ) ) (func $unreachable-loop0-toplevel (type $5) (result i32) - (loop $label$0 + (loop $label$1 (return (i32.const 1) ) ) ) (func $unreachable-ifs (type $1) - (block $label$0 - (unreachable) - ) + (unreachable) ) (func $unreachable-if-arm (type $1) (if (i32.const 1) - (block $label$0 - (nop) - ) - (block $label$1 - (unreachable) - ) + (nop) + (unreachable) ) ) ) |