| BinaryenNone: 0 |
| BinaryenInt32: 1 |
| BinaryenInt64: 2 |
| BinaryenFloat32: 3 |
| BinaryenFloat64: 4 |
| (f32.neg |
| (f32.const -33.61199951171875) |
| ) |
| (module |
| (type $iiIfF (func (param i32 i64 f32 f64) (result i32))) |
| (type $fiF (func (param i32 f64) (result f32))) |
| (type $v (func)) |
| (type $3 (func)) |
| (import "module" "base" (func $an-imported (param i32 f64) (result f32))) |
| (table 1 1 anyfunc) |
| (elem (i32.const 0) "$kitchen()sinker") |
| (memory $0 1 256) |
| (data (i32.const 10) "hello, world") |
| (export "kitchen_sinker" (func "$kitchen()sinker")) |
| (export "mem" (memory $0)) |
| (start $starter) |
| (func "$kitchen()sinker" (type $iiIfF) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32) |
| (local $4 i32) |
| (block $the-body i32 |
| (block $the-nothing |
| (drop |
| (block $the-value i32 |
| (drop |
| (i32.clz |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (i64.ctz |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (i32.popcnt |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f32.neg |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f64.abs |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (f32.ceil |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f64.floor |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (f32.trunc |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f32.nearest |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f64.sqrt |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (i64.extend_s/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (i64.extend_u/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (i32.wrap/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (i32.trunc_s/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i64.trunc_s/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i32.trunc_u/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i64.trunc_u/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i32.trunc_s/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i64.trunc_s/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i32.trunc_u/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i64.trunc_u/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i32.reinterpret/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i64.reinterpret/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (f32.convert_s/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f64.convert_s/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f32.convert_u/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f64.convert_u/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f32.convert_s/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (f64.convert_s/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (f32.convert_u/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (f64.convert_u/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (f64.promote/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f32.demote/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (f32.reinterpret/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f64.reinterpret/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (f64.sub |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (i32.div_s |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.div_u |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i64.rem_s |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.rem_u |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.or |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.xor |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.shl |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i64.shr_u |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i32.rotl |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.rotr |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (f32.div |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (drop |
| (f64.copysign |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (f32.min |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (drop |
| (f64.max |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (f32.ne |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (drop |
| (i32.lt_s |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.lt_u |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i64.le_s |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.le_u |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.gt_s |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.gt_u |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i32.ge_s |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.ge_u |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (f32.lt |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (drop |
| (f64.le |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (f64.gt |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (f32.ge |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (block |
| ) |
| (if |
| (i32.const 1) |
| (drop |
| (i32.const 2) |
| ) |
| (drop |
| (i32.const 3) |
| ) |
| ) |
| (if |
| (i32.const 4) |
| (drop |
| (i32.const 5) |
| ) |
| ) |
| (drop |
| (loop $in i32 |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (loop i32 |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (br_if $the-value |
| (i32.const 1) |
| (i32.const 0) |
| ) |
| ) |
| (br_if $the-nothing |
| (i32.const 2) |
| ) |
| (br $the-value |
| (i32.const 3) |
| ) |
| (br $the-nothing) |
| (br_table $the-value $the-value |
| (i32.const 1) |
| (i32.const 0) |
| ) |
| (br_table $the-nothing $the-nothing |
| (i32.const 2) |
| ) |
| (drop |
| (i32.eqz |
| (call "$kitchen()sinker" |
| (i32.const 13) |
| (i64.const 37) |
| (f32.const 1.2999999523162842) |
| (f64.const 3.7) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.trunc_s/f32 |
| (call $an-imported |
| (i32.const 13) |
| (f64.const 3.7) |
| ) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (call_indirect $iiIfF |
| (i32.const 13) |
| (i64.const 37) |
| (f32.const 1.2999999523162842) |
| (f64.const 3.7) |
| (i32.const 2449) |
| ) |
| ) |
| ) |
| (drop |
| (get_local $0) |
| ) |
| (set_local $0 |
| (i32.const 101) |
| ) |
| (drop |
| (tee_local $0 |
| (i32.const 102) |
| ) |
| ) |
| (drop |
| (i32.load |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i64.load16_s offset=2 align=1 |
| (i32.const 8) |
| ) |
| ) |
| (drop |
| (f32.load |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (f64.load offset=2 |
| (i32.const 9) |
| ) |
| ) |
| (i32.store |
| (i32.const 10) |
| (i32.const 11) |
| ) |
| (i64.store offset=2 align=4 |
| (i32.const 110) |
| (i64.const 111) |
| ) |
| (drop |
| (select |
| (i32.const 3) |
| (i32.const 5) |
| (i32.const 1) |
| ) |
| ) |
| (return |
| (i32.const 1337) |
| ) |
| (nop) |
| (unreachable) |
| ) |
| ) |
| ) |
| (i32.const 42) |
| ) |
| ) |
| (func $starter (type $v) |
| (nop) |
| ) |
| ) |
| raw: |
| (module |
| (type $v (func)) |
| (type $vi (func (param i32))) |
| (type $i (func (result i32))) |
| (import "module" "check" (func $check (param i32))) |
| (memory $0 0) |
| (func $just-one-block (type $v) |
| (local $0 i32) |
| (call $check |
| (i32.const 1337) |
| ) |
| ) |
| (func $two-blocks (type $v) |
| (local $0 i32) |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (func $two-blocks-plus-code (type $v) |
| (local $0 i32) |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (drop |
| (i32.const 77) |
| ) |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (func $loop (type $v) |
| (local $0 i32) |
| (loop $shape$0$continue |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (br $shape$0$continue) |
| ) |
| ) |
| ) |
| ) |
| (func $loop-plus-code (type $v) |
| (local $0 i32) |
| (loop $shape$0$continue |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (drop |
| (i32.const 33) |
| ) |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (drop |
| (i32.const -66) |
| ) |
| (br $shape$0$continue) |
| ) |
| ) |
| ) |
| ) |
| (func $split (type $v) |
| (local $0 i32) |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| ) |
| (func $split-plus-code (type $v) |
| (local $0 i32) |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (drop |
| (i32.const 10) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (block |
| (drop |
| (i32.const 20) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $if (type $v) |
| (local $0 i32) |
| (block $block$3$break |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (br $block$3$break) |
| ) |
| ) |
| (br $block$3$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (func $if-plus-code (type $v) |
| (local $0 i32) |
| (block $block$3$break |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (drop |
| (i32.const -1) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (drop |
| (i32.const -3) |
| ) |
| (br $block$3$break) |
| ) |
| ) |
| ) |
| (block |
| (drop |
| (i32.const -2) |
| ) |
| (br $block$3$break) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (func $if-else (type $v) |
| (local $0 i32) |
| (block $block$4$break |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (br $block$4$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| (block |
| (br $block$4$break) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (func $loop-tail (type $v) |
| (local $0 i32) |
| (block $block$3$break |
| (loop $shape$0$continue |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (if |
| (i32.const 10) |
| (br $shape$0$continue) |
| (br $block$3$break) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (func $nontrivial-loop-plus-phi-to-head (type $v) |
| (local $0 i32) |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (drop |
| (i32.const 10) |
| ) |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (block $block$7$break |
| (block $block$4$break |
| (loop $shape$1$continue |
| (block $block$3$break |
| (call $check |
| (i32.const 1) |
| ) |
| (if |
| (i32.const -2) |
| (br $block$3$break) |
| (block |
| (drop |
| (i32.const 20) |
| ) |
| (br $block$7$break) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| (if |
| (i32.const -6) |
| (br $block$4$break) |
| (block |
| (drop |
| (i32.const 30) |
| ) |
| (br $shape$1$continue) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (block $block$6$break |
| (call $check |
| (i32.const 3) |
| ) |
| (if |
| (i32.const -10) |
| (block |
| (call $check |
| (i32.const 4) |
| ) |
| (block |
| (br $block$6$break) |
| ) |
| ) |
| (br $block$6$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 5) |
| ) |
| (block |
| (drop |
| (i32.const 40) |
| ) |
| (br $block$7$break) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 6) |
| ) |
| ) |
| ) |
| ) |
| (func $switch (type $v) |
| (local $0 i32) |
| (call $check |
| (i32.const 0) |
| ) |
| (block $switch$1$leave |
| (block $switch$1$default |
| (block $switch$1$case$3 |
| (block $switch$1$case$2 |
| (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default |
| (i32.const -99) |
| ) |
| ) |
| (block |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (br $switch$1$leave) |
| ) |
| (block |
| (drop |
| (i32.const 55) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (br $switch$1$leave) |
| ) |
| (block |
| (block |
| (call $check |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (br $switch$1$leave) |
| ) |
| ) |
| (func $duffs-device (type $v) |
| (local $0 i32) |
| (local $1 i32) |
| (local $2 i64) |
| (local $3 i32) |
| (local $4 f32) |
| (local $5 f64) |
| (local $6 i32) |
| (block |
| (block $block$3$break |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 10) |
| (block |
| (set_local $3 |
| (i32.const 2) |
| ) |
| (br $block$2$break) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 3) |
| ) |
| (br $block$3$break) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (loop $shape$1$continue |
| (if |
| (i32.eq |
| (get_local $3) |
| (i32.const 2) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 0) |
| ) |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 3) |
| ) |
| (br $shape$1$continue) |
| ) |
| ) |
| (if |
| (i32.eq |
| (get_local $3) |
| (i32.const 3) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 0) |
| ) |
| (call $check |
| (i32.const 2) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 2) |
| ) |
| (br $shape$1$continue) |
| ) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $return (type $i) (result i32) |
| (local $0 i32) |
| (block $the-list |
| (call $check |
| (i32.const 42) |
| ) |
| (return |
| (i32.const 1337) |
| ) |
| ) |
| ) |
| ) |
| optimized: |
| (module |
| (type $v (func)) |
| (type $vi (func (param i32))) |
| (type $i (func (result i32))) |
| (memory $0 0) |
| ) |
| module loaded from binary form: |
| (module |
| (type $0 (func (param i32 i32) (result i32))) |
| (memory $0 0) |
| (func $adder (type $0) (param $var$0 i32) (param $var$1 i32) (result i32) |
| (i32.add |
| (get_local $var$0) |
| (get_local $var$1) |
| ) |
| ) |
| ) |
| (module |
| (type $vi (func (param i32))) |
| (type $v (func)) |
| (import "spectest" "print" (func $print-i32 (param i32))) |
| (memory $0 0) |
| (start $starter) |
| (func $starter (type $v) |
| (call $print-i32 |
| (i32.const 1234) |
| ) |
| ) |
| ) |
| (i32.const 1234) |
| (module |
| (type $v (func)) |
| (memory $0 0) |
| (func $func (type $v) |
| (local $0 i32) |
| (set_local $0 |
| (i64.const 1234) |
| ) |
| ) |
| ) |
| validation: 0 |
| // beginning a Binaryen API trace |
| #include <math.h> |
| #include <map> |
| #include "src/binaryen-c.h" |
| int main() { |
| std::map<size_t, BinaryenFunctionTypeRef> functionTypes; |
| std::map<size_t, BinaryenExpressionRef> expressions; |
| std::map<size_t, BinaryenFunctionRef> functions; |
| std::map<size_t, RelooperBlockRef> relooperBlocks; |
| BinaryenModuleRef the_module = NULL; |
| RelooperRef the_relooper = NULL; |
| the_module = BinaryenModuleCreate(); |
| expressions[size_t(NULL)] = BinaryenExpressionRef(NULL); |
| expressions[1] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| expressions[2] = BinaryenConst(the_module, BinaryenLiteralInt64(2)); |
| expressions[3] = BinaryenConst(the_module, BinaryenLiteralFloat32(3.14)); |
| expressions[4] = BinaryenConst(the_module, BinaryenLiteralFloat64(2.1828)); |
| expressions[5] = BinaryenConst(the_module, BinaryenLiteralFloat32(NAN)); |
| expressions[6] = BinaryenConst(the_module, BinaryenLiteralFloat64(NAN)); |
| expressions[7] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); |
| expressions[8] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); |
| expressions[9] = BinaryenConst(the_module, BinaryenLiteralInt32(13)); |
| expressions[10] = BinaryenConst(the_module, BinaryenLiteralInt64(37)); |
| expressions[11] = BinaryenConst(the_module, BinaryenLiteralFloat32(1.3)); |
| expressions[12] = BinaryenConst(the_module, BinaryenLiteralFloat64(3.7)); |
| { |
| BinaryenIndex paramTypes[] = { 1, 2, 3, 4 }; |
| functionTypes[0] = BinaryenAddFunctionType(the_module, "iiIfF", 1, paramTypes, 4); |
| } |
| expressions[13] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| expressions[14] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| expressions[15] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); |
| expressions[16] = BinaryenConst(the_module, BinaryenLiteralInt32(4)); |
| expressions[17] = BinaryenConst(the_module, BinaryenLiteralInt32(5)); |
| expressions[18] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| expressions[19] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| expressions[20] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| expressions[21] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| expressions[22] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| expressions[23] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); |
| expressions[24] = BinaryenConst(the_module, BinaryenLiteralInt32(5)); |
| expressions[25] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); |
| expressions[26] = BinaryenConst(the_module, BinaryenLiteralInt32(11)); |
| expressions[27] = BinaryenConst(the_module, BinaryenLiteralInt32(110)); |
| expressions[28] = BinaryenConst(the_module, BinaryenLiteralInt64(111)); |
| expressions[29] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[30] = BinaryenUnary(the_module, 0, expressions[29]); |
| expressions[31] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[32] = BinaryenUnary(the_module, 3, expressions[31]); |
| expressions[33] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[34] = BinaryenUnary(the_module, 4, expressions[33]); |
| expressions[35] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[36] = BinaryenUnary(the_module, 6, expressions[35]); |
| expressions[37] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[38] = BinaryenUnary(the_module, 9, expressions[37]); |
| expressions[39] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[40] = BinaryenUnary(the_module, 10, expressions[39]); |
| expressions[41] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[42] = BinaryenUnary(the_module, 13, expressions[41]); |
| expressions[43] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[44] = BinaryenUnary(the_module, 14, expressions[43]); |
| expressions[45] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[46] = BinaryenUnary(the_module, 16, expressions[45]); |
| expressions[47] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[48] = BinaryenUnary(the_module, 19, expressions[47]); |
| expressions[49] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[50] = BinaryenUnary(the_module, 20, expressions[49]); |
| expressions[51] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[52] = BinaryenUnary(the_module, 22, expressions[51]); |
| expressions[53] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[54] = BinaryenUnary(the_module, 23, expressions[53]); |
| expressions[55] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[56] = BinaryenUnary(the_module, 24, expressions[55]); |
| expressions[57] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[58] = BinaryenUnary(the_module, 25, expressions[57]); |
| expressions[59] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[60] = BinaryenUnary(the_module, 26, expressions[59]); |
| expressions[61] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[62] = BinaryenUnary(the_module, 27, expressions[61]); |
| expressions[63] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[64] = BinaryenUnary(the_module, 28, expressions[63]); |
| expressions[65] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[66] = BinaryenUnary(the_module, 29, expressions[65]); |
| expressions[67] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[68] = BinaryenUnary(the_module, 30, expressions[67]); |
| expressions[69] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[70] = BinaryenUnary(the_module, 31, expressions[69]); |
| expressions[71] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[72] = BinaryenUnary(the_module, 32, expressions[71]); |
| expressions[73] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[74] = BinaryenUnary(the_module, 33, expressions[73]); |
| expressions[75] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[76] = BinaryenUnary(the_module, 34, expressions[75]); |
| expressions[77] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[78] = BinaryenUnary(the_module, 35, expressions[77]); |
| expressions[79] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[80] = BinaryenUnary(the_module, 36, expressions[79]); |
| expressions[81] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[82] = BinaryenUnary(the_module, 37, expressions[81]); |
| expressions[83] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[84] = BinaryenUnary(the_module, 38, expressions[83]); |
| expressions[85] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[86] = BinaryenUnary(the_module, 39, expressions[85]); |
| expressions[87] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[88] = BinaryenUnary(the_module, 40, expressions[87]); |
| expressions[89] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[90] = BinaryenUnary(the_module, 41, expressions[89]); |
| expressions[91] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[92] = BinaryenUnary(the_module, 42, expressions[91]); |
| expressions[93] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[94] = BinaryenUnary(the_module, 43, expressions[93]); |
| expressions[95] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[96] = BinaryenUnary(the_module, 44, expressions[95]); |
| expressions[97] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[98] = BinaryenUnary(the_module, 45, expressions[97]); |
| expressions[99] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[100] = BinaryenUnary(the_module, 46, expressions[99]); |
| expressions[101] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[102] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[103] = BinaryenBinary(the_module, 0, expressions[102], expressions[101]); |
| expressions[104] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33)); |
| expressions[105] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[106] = BinaryenBinary(the_module, 64, expressions[105], expressions[104]); |
| expressions[107] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[108] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[109] = BinaryenBinary(the_module, 3, expressions[108], expressions[107]); |
| expressions[110] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[111] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[112] = BinaryenBinary(the_module, 29, expressions[111], expressions[110]); |
| expressions[113] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[114] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[115] = BinaryenBinary(the_module, 30, expressions[114], expressions[113]); |
| expressions[116] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[117] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[118] = BinaryenBinary(the_module, 6, expressions[117], expressions[116]); |
| expressions[119] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[120] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[121] = BinaryenBinary(the_module, 7, expressions[120], expressions[119]); |
| expressions[122] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[123] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[124] = BinaryenBinary(the_module, 33, expressions[123], expressions[122]); |
| expressions[125] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[126] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[127] = BinaryenBinary(the_module, 9, expressions[126], expressions[125]); |
| expressions[128] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[129] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[130] = BinaryenBinary(the_module, 35, expressions[129], expressions[128]); |
| expressions[131] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[132] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[133] = BinaryenBinary(the_module, 36, expressions[132], expressions[131]); |
| expressions[134] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[135] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[136] = BinaryenBinary(the_module, 12, expressions[135], expressions[134]); |
| expressions[137] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[138] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[139] = BinaryenBinary(the_module, 13, expressions[138], expressions[137]); |
| expressions[140] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[141] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[142] = BinaryenBinary(the_module, 39, expressions[141], expressions[140]); |
| expressions[143] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5)); |
| expressions[144] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[145] = BinaryenBinary(the_module, 53, expressions[144], expressions[143]); |
| expressions[146] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33)); |
| expressions[147] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[148] = BinaryenBinary(the_module, 67, expressions[147], expressions[146]); |
| expressions[149] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5)); |
| expressions[150] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[151] = BinaryenBinary(the_module, 55, expressions[150], expressions[149]); |
| expressions[152] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33)); |
| expressions[153] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[154] = BinaryenBinary(the_module, 69, expressions[153], expressions[152]); |
| expressions[155] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[156] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[157] = BinaryenBinary(the_module, 15, expressions[156], expressions[155]); |
| expressions[158] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5)); |
| expressions[159] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[160] = BinaryenBinary(the_module, 58, expressions[159], expressions[158]); |
| expressions[161] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[162] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[163] = BinaryenBinary(the_module, 17, expressions[162], expressions[161]); |
| expressions[164] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[165] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[166] = BinaryenBinary(the_module, 43, expressions[165], expressions[164]); |
| expressions[167] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[168] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[169] = BinaryenBinary(the_module, 44, expressions[168], expressions[167]); |
| expressions[170] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[171] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[172] = BinaryenBinary(the_module, 20, expressions[171], expressions[170]); |
| expressions[173] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[174] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[175] = BinaryenBinary(the_module, 46, expressions[174], expressions[173]); |
| expressions[176] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[177] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[178] = BinaryenBinary(the_module, 22, expressions[177], expressions[176]); |
| expressions[179] = BinaryenConst(the_module, BinaryenLiteralInt32(-11)); |
| expressions[180] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| expressions[181] = BinaryenBinary(the_module, 23, expressions[180], expressions[179]); |
| expressions[182] = BinaryenConst(the_module, BinaryenLiteralInt64(-23)); |
| expressions[183] = BinaryenConst(the_module, BinaryenLiteralInt64(-22)); |
| expressions[184] = BinaryenBinary(the_module, 49, expressions[183], expressions[182]); |
| expressions[185] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5)); |
| expressions[186] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[187] = BinaryenBinary(the_module, 59, expressions[186], expressions[185]); |
| expressions[188] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33)); |
| expressions[189] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[190] = BinaryenBinary(the_module, 73, expressions[189], expressions[188]); |
| expressions[191] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9007.33)); |
| expressions[192] = BinaryenConst(the_module, BinaryenLiteralFloat64(-9005.84)); |
| expressions[193] = BinaryenBinary(the_module, 74, expressions[192], expressions[191]); |
| expressions[194] = BinaryenConst(the_module, BinaryenLiteralFloat32(-62.5)); |
| expressions[195] = BinaryenConst(the_module, BinaryenLiteralFloat32(-33.612)); |
| expressions[196] = BinaryenBinary(the_module, 62, expressions[195], expressions[194]); |
| { |
| BinaryenExpressionRef children[] = { 0 }; |
| expressions[197] = BinaryenBlock(the_module, NULL, children, 0); |
| } |
| expressions[198] = BinaryenIf(the_module, expressions[13], expressions[14], expressions[15]); |
| expressions[199] = BinaryenIf(the_module, expressions[16], expressions[17], expressions[0]); |
| expressions[200] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| expressions[201] = BinaryenLoop(the_module, "in", expressions[200]); |
| expressions[202] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| expressions[203] = BinaryenLoop(the_module, NULL, expressions[202]); |
| expressions[204] = BinaryenBreak(the_module, "the-value", expressions[18], expressions[19]); |
| expressions[205] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| expressions[206] = BinaryenBreak(the_module, "the-nothing", expressions[205], expressions[0]); |
| expressions[207] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); |
| expressions[208] = BinaryenBreak(the_module, "the-value", expressions[0], expressions[207]); |
| expressions[209] = BinaryenBreak(the_module, "the-nothing", expressions[0], expressions[0]); |
| { |
| const char* names[] = { "the-value" }; |
| expressions[210] = BinaryenSwitch(the_module, names, 1, "the-value", expressions[20], expressions[21]); |
| } |
| expressions[211] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| const char* names[] = { "the-nothing" }; |
| expressions[212] = BinaryenSwitch(the_module, names, 1, "the-nothing", expressions[211], expressions[0]); |
| } |
| { |
| BinaryenExpressionRef operands[] = { expressions[9], expressions[10], expressions[11], expressions[12] }; |
| expressions[213] = BinaryenCall(the_module, "kitchen()sinker", operands, 4, 1); |
| } |
| expressions[214] = BinaryenUnary(the_module, 20, expressions[213]); |
| { |
| BinaryenExpressionRef operands[] = { expressions[7], expressions[8] }; |
| expressions[215] = BinaryenCallImport(the_module, "an-imported", operands, 2, 3); |
| } |
| expressions[216] = BinaryenUnary(the_module, 25, expressions[215]); |
| expressions[217] = BinaryenUnary(the_module, 20, expressions[216]); |
| expressions[218] = BinaryenConst(the_module, BinaryenLiteralInt32(2449)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[9], expressions[10], expressions[11], expressions[12] }; |
| expressions[219] = BinaryenCallIndirect(the_module, expressions[218], operands, 4, "iiIfF"); |
| } |
| expressions[220] = BinaryenUnary(the_module, 20, expressions[219]); |
| expressions[221] = BinaryenGetLocal(the_module, 0, 1); |
| expressions[222] = BinaryenDrop(the_module, expressions[221]); |
| expressions[223] = BinaryenConst(the_module, BinaryenLiteralInt32(101)); |
| expressions[224] = BinaryenSetLocal(the_module, 0, expressions[223]); |
| expressions[225] = BinaryenConst(the_module, BinaryenLiteralInt32(102)); |
| expressions[226] = BinaryenTeeLocal(the_module, 0, expressions[225]); |
| expressions[227] = BinaryenDrop(the_module, expressions[226]); |
| expressions[228] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| expressions[229] = BinaryenLoad(the_module, 4, 0, 0, 0, 1, expressions[228]); |
| expressions[230] = BinaryenConst(the_module, BinaryenLiteralInt32(8)); |
| expressions[231] = BinaryenLoad(the_module, 2, 1, 2, 1, 2, expressions[230]); |
| expressions[232] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| expressions[233] = BinaryenLoad(the_module, 4, 0, 0, 0, 3, expressions[232]); |
| expressions[234] = BinaryenConst(the_module, BinaryenLiteralInt32(9)); |
| expressions[235] = BinaryenLoad(the_module, 8, 0, 2, 8, 4, expressions[234]); |
| expressions[236] = BinaryenStore(the_module, 4, 0, 0, expressions[25], expressions[26], 1); |
| expressions[237] = BinaryenStore(the_module, 8, 2, 4, expressions[27], expressions[28], 2); |
| expressions[238] = BinaryenSelect(the_module, expressions[22], expressions[23], expressions[24]); |
| expressions[239] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); |
| expressions[240] = BinaryenReturn(the_module, expressions[239]); |
| expressions[241] = BinaryenNop(the_module); |
| expressions[242] = BinaryenUnreachable(the_module); |
| BinaryenExpressionPrint(expressions[36]); |
| (f32.neg |
| (f32.const -33.61199951171875) |
| ) |
| { |
| BinaryenExpressionRef children[] = { expressions[30], expressions[32], expressions[34], expressions[36], expressions[38], expressions[40], expressions[42], expressions[44], expressions[46], expressions[48], expressions[50], expressions[52], expressions[54], expressions[56], expressions[58], expressions[60], expressions[62], expressions[64], expressions[66], expressions[68], expressions[70], expressions[72], expressions[74], expressions[76], expressions[78], expressions[80], expressions[82], expressions[84], expressions[86], expressions[88], expressions[90], expressions[92], expressions[94], expressions[96], expressions[98], expressions[100], expressions[103], expressions[106], expressions[109], expressions[112], expressions[115], expressions[118], expressions[121], expressions[124], expressions[127], expressions[130], expressions[133], expressions[136], expressions[139], expressions[142], expressions[145], expressions[148], expressions[151], expressions[154], expressions[157], expressions[160], expressions[163], expressions[166], expressions[169], expressions[172], expressions[175], expressions[178], expressions[181], expressions[184], expressions[187], expressions[190], expressions[193], expressions[196], expressions[197], expressions[198], expressions[199], expressions[201], expressions[203], expressions[204], expressions[206], expressions[208], expressions[209], expressions[210], expressions[212], expressions[214], expressions[217], expressions[220], expressions[222], expressions[224], expressions[227], expressions[229], expressions[231], expressions[233], expressions[235], expressions[236], expressions[237], expressions[238], expressions[240], expressions[241], expressions[242] }; |
| expressions[243] = BinaryenBlock(the_module, "the-value", children, 95); |
| } |
| expressions[244] = BinaryenDrop(the_module, expressions[243]); |
| { |
| BinaryenExpressionRef children[] = { expressions[244] }; |
| expressions[245] = BinaryenBlock(the_module, "the-nothing", children, 1); |
| } |
| expressions[246] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); |
| { |
| BinaryenExpressionRef children[] = { expressions[245], expressions[246] }; |
| expressions[247] = BinaryenBlock(the_module, "the-body", children, 2); |
| } |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[0] = BinaryenAddFunction(the_module, "kitchen()sinker", functionTypes[0], varTypes, 1, expressions[247]); |
| } |
| { |
| BinaryenIndex paramTypes[] = { 1, 4 }; |
| functionTypes[1] = BinaryenAddFunctionType(the_module, "fiF", 3, paramTypes, 2); |
| } |
| BinaryenAddImport(the_module, "an-imported", "module", "base", functionTypes[1]); |
| BinaryenAddExport(the_module, "kitchen()sinker", "kitchen_sinker"); |
| { |
| BinaryenFunctionRef funcs[] = { functions[0] }; |
| BinaryenSetFunctionTable(the_module, funcs, 1); |
| } |
| expressions[248] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); |
| { |
| const char segment0[] = { 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 }; |
| const char* segments[] = { segment0 }; |
| BinaryenExpressionRef segmentOffsets[] = { expressions[248] }; |
| BinaryenIndex segmentSizes[] = { 12 }; |
| BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentOffsets, segmentSizes, 1); |
| } |
| { |
| BinaryenIndex paramTypes[] = { 0 }; |
| functionTypes[2] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0); |
| } |
| expressions[249] = BinaryenNop(the_module); |
| { |
| BinaryenType varTypes[] = { 0 }; |
| functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[2], varTypes, 0, expressions[249]); |
| } |
| BinaryenSetStart(the_module, functions[1]); |
| { |
| BinaryenIndex paramTypes[] = { 0 }; |
| functionTypes[3] = BinaryenAddFunctionType(the_module, NULL, 0, paramTypes, 0); |
| } |
| BinaryenModuleAutoDrop(the_module); |
| BinaryenModuleValidate(the_module); |
| BinaryenModulePrint(the_module); |
| (module |
| (type $iiIfF (func (param i32 i64 f32 f64) (result i32))) |
| (type $fiF (func (param i32 f64) (result f32))) |
| (type $v (func)) |
| (type $3 (func)) |
| (import "module" "base" (func $an-imported (param i32 f64) (result f32))) |
| (table 1 1 anyfunc) |
| (elem (i32.const 0) "$kitchen()sinker") |
| (memory $0 1 256) |
| (data (i32.const 10) "hello, world") |
| (export "kitchen_sinker" (func "$kitchen()sinker")) |
| (export "mem" (memory $0)) |
| (start $starter) |
| (func "$kitchen()sinker" (type $iiIfF) (param $0 i32) (param $1 i64) (param $2 f32) (param $3 f64) (result i32) |
| (local $4 i32) |
| (block $the-body i32 |
| (block $the-nothing |
| (drop |
| (block $the-value i32 |
| (drop |
| (i32.clz |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (i64.ctz |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (i32.popcnt |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f32.neg |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f64.abs |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (f32.ceil |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f64.floor |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (f32.trunc |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f32.nearest |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f64.sqrt |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (i64.extend_s/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (i64.extend_u/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (i32.wrap/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (i32.trunc_s/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i64.trunc_s/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i32.trunc_u/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i64.trunc_u/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i32.trunc_s/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i64.trunc_s/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i32.trunc_u/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i64.trunc_u/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (i32.reinterpret/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (i64.reinterpret/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (f32.convert_s/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f64.convert_s/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f32.convert_u/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f64.convert_u/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f32.convert_s/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (f64.convert_s/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (f32.convert_u/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (f64.convert_u/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (f64.promote/f32 |
| (f32.const -33.61199951171875) |
| ) |
| ) |
| (drop |
| (f32.demote/f64 |
| (f64.const -9005.841) |
| ) |
| ) |
| (drop |
| (f32.reinterpret/i32 |
| (i32.const -10) |
| ) |
| ) |
| (drop |
| (f64.reinterpret/i64 |
| (i64.const -22) |
| ) |
| ) |
| (drop |
| (i32.add |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (f64.sub |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (i32.div_s |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.div_u |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i64.rem_s |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.rem_u |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i32.and |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.or |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.xor |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.shl |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i64.shr_u |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.shr_s |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i32.rotl |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.rotr |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (f32.div |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (drop |
| (f64.copysign |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (f32.min |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (drop |
| (f64.max |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (i32.eq |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (f32.ne |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (drop |
| (i32.lt_s |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.lt_u |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i64.le_s |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.le_u |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.gt_s |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (i32.gt_u |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i32.ge_s |
| (i32.const -10) |
| (i32.const -11) |
| ) |
| ) |
| (drop |
| (i64.ge_u |
| (i64.const -22) |
| (i64.const -23) |
| ) |
| ) |
| (drop |
| (f32.lt |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (drop |
| (f64.le |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (f64.gt |
| (f64.const -9005.841) |
| (f64.const -9007.333) |
| ) |
| ) |
| (drop |
| (f32.ge |
| (f32.const -33.61199951171875) |
| (f32.const -62.5) |
| ) |
| ) |
| (block |
| ) |
| (if |
| (i32.const 1) |
| (drop |
| (i32.const 2) |
| ) |
| (drop |
| (i32.const 3) |
| ) |
| ) |
| (if |
| (i32.const 4) |
| (drop |
| (i32.const 5) |
| ) |
| ) |
| (drop |
| (loop $in i32 |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (loop i32 |
| (i32.const 0) |
| ) |
| ) |
| (drop |
| (br_if $the-value |
| (i32.const 1) |
| (i32.const 0) |
| ) |
| ) |
| (br_if $the-nothing |
| (i32.const 2) |
| ) |
| (br $the-value |
| (i32.const 3) |
| ) |
| (br $the-nothing) |
| (br_table $the-value $the-value |
| (i32.const 1) |
| (i32.const 0) |
| ) |
| (br_table $the-nothing $the-nothing |
| (i32.const 2) |
| ) |
| (drop |
| (i32.eqz |
| (call "$kitchen()sinker" |
| (i32.const 13) |
| (i64.const 37) |
| (f32.const 1.2999999523162842) |
| (f64.const 3.7) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (i32.trunc_s/f32 |
| (call $an-imported |
| (i32.const 13) |
| (f64.const 3.7) |
| ) |
| ) |
| ) |
| ) |
| (drop |
| (i32.eqz |
| (call_indirect $iiIfF |
| (i32.const 13) |
| (i64.const 37) |
| (f32.const 1.2999999523162842) |
| (f64.const 3.7) |
| (i32.const 2449) |
| ) |
| ) |
| ) |
| (drop |
| (get_local $0) |
| ) |
| (set_local $0 |
| (i32.const 101) |
| ) |
| (drop |
| (tee_local $0 |
| (i32.const 102) |
| ) |
| ) |
| (drop |
| (i32.load |
| (i32.const 1) |
| ) |
| ) |
| (drop |
| (i64.load16_s offset=2 align=1 |
| (i32.const 8) |
| ) |
| ) |
| (drop |
| (f32.load |
| (i32.const 2) |
| ) |
| ) |
| (drop |
| (f64.load offset=2 |
| (i32.const 9) |
| ) |
| ) |
| (i32.store |
| (i32.const 10) |
| (i32.const 11) |
| ) |
| (i64.store offset=2 align=4 |
| (i32.const 110) |
| (i64.const 111) |
| ) |
| (drop |
| (select |
| (i32.const 3) |
| (i32.const 5) |
| (i32.const 1) |
| ) |
| ) |
| (return |
| (i32.const 1337) |
| ) |
| (nop) |
| (unreachable) |
| ) |
| ) |
| ) |
| (i32.const 42) |
| ) |
| ) |
| (func $starter (type $v) |
| (nop) |
| ) |
| ) |
| BinaryenModuleDispose(the_module); |
| functionTypes.clear(); |
| expressions.clear(); |
| functions.clear(); |
| relooperBlocks.clear(); |
| the_module = BinaryenModuleCreate(); |
| expressions[size_t(NULL)] = BinaryenExpressionRef(NULL); |
| { |
| BinaryenIndex paramTypes[] = { 0 }; |
| functionTypes[0] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0); |
| } |
| { |
| BinaryenIndex paramTypes[] = { 1 }; |
| functionTypes[1] = BinaryenAddFunctionType(the_module, "vi", 0, paramTypes, 1); |
| } |
| BinaryenAddImport(the_module, "check", "module", "check", functionTypes[1]); |
| the_relooper = RelooperCreate(); |
| expressions[1] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[1] }; |
| expressions[2] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[2]); |
| expressions[3] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[0] = BinaryenAddFunction(the_module, "just-one-block", functionTypes[0], varTypes, 1, expressions[3]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[4] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[4] }; |
| expressions[5] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[5]); |
| expressions[6] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[6] }; |
| expressions[7] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[7]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]); |
| expressions[8] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[1] = BinaryenAddFunction(the_module, "two-blocks", functionTypes[0], varTypes, 1, expressions[8]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[9] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[9] }; |
| expressions[10] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[10]); |
| expressions[11] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[11] }; |
| expressions[12] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[12]); |
| expressions[13] = BinaryenConst(the_module, BinaryenLiteralInt32(77)); |
| expressions[14] = BinaryenDrop(the_module, expressions[13]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[14]); |
| expressions[15] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[2] = BinaryenAddFunction(the_module, "two-blocks-plus-code", functionTypes[0], varTypes, 1, expressions[15]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[16] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[16] }; |
| expressions[17] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[17]); |
| expressions[18] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[18] }; |
| expressions[19] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[19]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[0]); |
| expressions[20] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[3] = BinaryenAddFunction(the_module, "loop", functionTypes[0], varTypes, 1, expressions[20]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[21] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[21] }; |
| expressions[22] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[22]); |
| expressions[23] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[23] }; |
| expressions[24] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[24]); |
| expressions[25] = BinaryenConst(the_module, BinaryenLiteralInt32(33)); |
| expressions[26] = BinaryenDrop(the_module, expressions[25]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[26]); |
| expressions[27] = BinaryenConst(the_module, BinaryenLiteralInt32(-66)); |
| expressions[28] = BinaryenDrop(the_module, expressions[27]); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[0], expressions[28]); |
| expressions[29] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[4] = BinaryenAddFunction(the_module, "loop-plus-code", functionTypes[0], varTypes, 1, expressions[29]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[30] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[30] }; |
| expressions[31] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[31]); |
| expressions[32] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[32] }; |
| expressions[33] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[33]); |
| expressions[34] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[34] }; |
| expressions[35] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[35]); |
| expressions[36] = BinaryenConst(the_module, BinaryenLiteralInt32(55)); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[36], expressions[0]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]); |
| expressions[37] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[5] = BinaryenAddFunction(the_module, "split", functionTypes[0], varTypes, 1, expressions[37]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[38] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[38] }; |
| expressions[39] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[39]); |
| expressions[40] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[40] }; |
| expressions[41] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[41]); |
| expressions[42] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[42] }; |
| expressions[43] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[43]); |
| expressions[44] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); |
| expressions[45] = BinaryenDrop(the_module, expressions[44]); |
| expressions[46] = BinaryenConst(the_module, BinaryenLiteralInt32(55)); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[46], expressions[45]); |
| expressions[47] = BinaryenConst(the_module, BinaryenLiteralInt32(20)); |
| expressions[48] = BinaryenDrop(the_module, expressions[47]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[48]); |
| expressions[49] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[6] = BinaryenAddFunction(the_module, "split-plus-code", functionTypes[0], varTypes, 1, expressions[49]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[50] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[50] }; |
| expressions[51] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[51]); |
| expressions[52] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[52] }; |
| expressions[53] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[53]); |
| expressions[54] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[54] }; |
| expressions[55] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[55]); |
| expressions[56] = BinaryenConst(the_module, BinaryenLiteralInt32(55)); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[56], expressions[0]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]); |
| expressions[57] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[7] = BinaryenAddFunction(the_module, "if", functionTypes[0], varTypes, 1, expressions[57]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[58] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[58] }; |
| expressions[59] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[59]); |
| expressions[60] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[60] }; |
| expressions[61] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[61]); |
| expressions[62] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[62] }; |
| expressions[63] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[63]); |
| expressions[64] = BinaryenConst(the_module, BinaryenLiteralInt32(-1)); |
| expressions[65] = BinaryenDrop(the_module, expressions[64]); |
| expressions[66] = BinaryenConst(the_module, BinaryenLiteralInt32(55)); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[66], expressions[65]); |
| expressions[67] = BinaryenConst(the_module, BinaryenLiteralInt32(-2)); |
| expressions[68] = BinaryenDrop(the_module, expressions[67]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[68]); |
| expressions[69] = BinaryenConst(the_module, BinaryenLiteralInt32(-3)); |
| expressions[70] = BinaryenDrop(the_module, expressions[69]); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[70]); |
| expressions[71] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[8] = BinaryenAddFunction(the_module, "if-plus-code", functionTypes[0], varTypes, 1, expressions[71]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[72] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[72] }; |
| expressions[73] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[73]); |
| expressions[74] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[74] }; |
| expressions[75] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[75]); |
| expressions[76] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[76] }; |
| expressions[77] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[77]); |
| expressions[78] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[78] }; |
| expressions[79] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[79]); |
| expressions[80] = BinaryenConst(the_module, BinaryenLiteralInt32(55)); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[80], expressions[0]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[3], expressions[0], expressions[0]); |
| RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[0], expressions[0]); |
| expressions[81] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[9] = BinaryenAddFunction(the_module, "if-else", functionTypes[0], varTypes, 1, expressions[81]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[82] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[82] }; |
| expressions[83] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[83]); |
| expressions[84] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[84] }; |
| expressions[85] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[85]); |
| expressions[86] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[86] }; |
| expressions[87] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[87]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[0]); |
| expressions[88] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[0], expressions[88], expressions[0]); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]); |
| expressions[89] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[10] = BinaryenAddFunction(the_module, "loop-tail", functionTypes[0], varTypes, 1, expressions[89]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[90] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[90] }; |
| expressions[91] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[91]); |
| expressions[92] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[92] }; |
| expressions[93] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[93]); |
| expressions[94] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[94] }; |
| expressions[95] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[95]); |
| expressions[96] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[96] }; |
| expressions[97] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[97]); |
| expressions[98] = BinaryenConst(the_module, BinaryenLiteralInt32(4)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[98] }; |
| expressions[99] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[4] = RelooperAddBlock(the_relooper, expressions[99]); |
| expressions[100] = BinaryenConst(the_module, BinaryenLiteralInt32(5)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[100] }; |
| expressions[101] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[5] = RelooperAddBlock(the_relooper, expressions[101]); |
| expressions[102] = BinaryenConst(the_module, BinaryenLiteralInt32(6)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[102] }; |
| expressions[103] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[6] = RelooperAddBlock(the_relooper, expressions[103]); |
| expressions[104] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); |
| expressions[105] = BinaryenDrop(the_module, expressions[104]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[0], expressions[105]); |
| expressions[106] = BinaryenConst(the_module, BinaryenLiteralInt32(-2)); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[106], expressions[0]); |
| expressions[107] = BinaryenConst(the_module, BinaryenLiteralInt32(20)); |
| expressions[108] = BinaryenDrop(the_module, expressions[107]); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[6], expressions[0], expressions[108]); |
| expressions[109] = BinaryenConst(the_module, BinaryenLiteralInt32(-6)); |
| RelooperAddBranch(relooperBlocks[2], relooperBlocks[3], expressions[109], expressions[0]); |
| expressions[110] = BinaryenConst(the_module, BinaryenLiteralInt32(30)); |
| expressions[111] = BinaryenDrop(the_module, expressions[110]); |
| RelooperAddBranch(relooperBlocks[2], relooperBlocks[1], expressions[0], expressions[111]); |
| expressions[112] = BinaryenConst(the_module, BinaryenLiteralInt32(-10)); |
| RelooperAddBranch(relooperBlocks[3], relooperBlocks[4], expressions[112], expressions[0]); |
| RelooperAddBranch(relooperBlocks[3], relooperBlocks[5], expressions[0], expressions[0]); |
| RelooperAddBranch(relooperBlocks[4], relooperBlocks[5], expressions[0], expressions[0]); |
| expressions[113] = BinaryenConst(the_module, BinaryenLiteralInt32(40)); |
| expressions[114] = BinaryenDrop(the_module, expressions[113]); |
| RelooperAddBranch(relooperBlocks[5], relooperBlocks[6], expressions[0], expressions[114]); |
| expressions[115] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[11] = BinaryenAddFunction(the_module, "nontrivial-loop-plus-phi-to-head", functionTypes[0], varTypes, 1, expressions[115]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[116] = BinaryenConst(the_module, BinaryenLiteralInt32(-99)); |
| expressions[117] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[117] }; |
| expressions[118] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlockWithSwitch(the_relooper, expressions[118], expressions[116]); |
| expressions[119] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[119] }; |
| expressions[120] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[120]); |
| expressions[121] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[121] }; |
| expressions[122] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[122]); |
| expressions[123] = BinaryenConst(the_module, BinaryenLiteralInt32(3)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[123] }; |
| expressions[124] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[3] = RelooperAddBlock(the_relooper, expressions[124]); |
| { |
| BinaryenIndex indexes[] = { 2, 5 }; |
| RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[1], indexes, 2, expressions[0]); |
| } |
| expressions[125] = BinaryenConst(the_module, BinaryenLiteralInt32(55)); |
| expressions[126] = BinaryenDrop(the_module, expressions[125]); |
| { |
| BinaryenIndex indexes[] = { 4 }; |
| RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[2], indexes, 1, expressions[126]); |
| } |
| { |
| BinaryenIndex indexes[] = { 0 }; |
| RelooperAddBranchForSwitch(relooperBlocks[0], relooperBlocks[3], indexes, 0, expressions[0]); |
| } |
| expressions[127] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[12] = BinaryenAddFunction(the_module, "switch", functionTypes[0], varTypes, 1, expressions[127]); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[128] = BinaryenConst(the_module, BinaryenLiteralInt32(0)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[128] }; |
| expressions[129] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[129]); |
| expressions[130] = BinaryenConst(the_module, BinaryenLiteralInt32(1)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[130] }; |
| expressions[131] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[1] = RelooperAddBlock(the_relooper, expressions[131]); |
| expressions[132] = BinaryenConst(the_module, BinaryenLiteralInt32(2)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[132] }; |
| expressions[133] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| relooperBlocks[2] = RelooperAddBlock(the_relooper, expressions[133]); |
| expressions[134] = BinaryenConst(the_module, BinaryenLiteralInt32(10)); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[1], expressions[134], expressions[0]); |
| RelooperAddBranch(relooperBlocks[0], relooperBlocks[2], expressions[0], expressions[0]); |
| RelooperAddBranch(relooperBlocks[1], relooperBlocks[2], expressions[0], expressions[0]); |
| RelooperAddBranch(relooperBlocks[2], relooperBlocks[1], expressions[0], expressions[0]); |
| expressions[135] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 3, the_module); |
| { |
| BinaryenType varTypes[] = { 1, 1, 2, 1, 3, 4, 1 }; |
| functions[13] = BinaryenAddFunction(the_module, "duffs-device", functionTypes[0], varTypes, 7, expressions[135]); |
| } |
| { |
| BinaryenIndex paramTypes[] = { 0 }; |
| functionTypes[2] = BinaryenAddFunctionType(the_module, "i", 1, paramTypes, 0); |
| } |
| the_relooper = RelooperCreate(); |
| expressions[136] = BinaryenConst(the_module, BinaryenLiteralInt32(42)); |
| { |
| BinaryenExpressionRef operands[] = { expressions[136] }; |
| expressions[137] = BinaryenCallImport(the_module, "check", operands, 1, 0); |
| } |
| expressions[138] = BinaryenConst(the_module, BinaryenLiteralInt32(1337)); |
| expressions[139] = BinaryenReturn(the_module, expressions[138]); |
| { |
| BinaryenExpressionRef children[] = { expressions[137], expressions[139] }; |
| expressions[140] = BinaryenBlock(the_module, "the-list", children, 2); |
| } |
| relooperBlocks[0] = RelooperAddBlock(the_relooper, expressions[140]); |
| expressions[141] = RelooperRenderAndDispose(the_relooper, relooperBlocks[0], 0, the_module); |
| { |
| BinaryenType varTypes[] = { 1 }; |
| functions[14] = BinaryenAddFunction(the_module, "return", functionTypes[2], varTypes, 1, expressions[141]); |
| } |
| raw: |
| BinaryenModulePrint(the_module); |
| (module |
| (type $v (func)) |
| (type $vi (func (param i32))) |
| (type $i (func (result i32))) |
| (import "module" "check" (func $check (param i32))) |
| (memory $0 0) |
| (func $just-one-block (type $v) |
| (local $0 i32) |
| (call $check |
| (i32.const 1337) |
| ) |
| ) |
| (func $two-blocks (type $v) |
| (local $0 i32) |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (func $two-blocks-plus-code (type $v) |
| (local $0 i32) |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (drop |
| (i32.const 77) |
| ) |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (func $loop (type $v) |
| (local $0 i32) |
| (loop $shape$0$continue |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (br $shape$0$continue) |
| ) |
| ) |
| ) |
| ) |
| (func $loop-plus-code (type $v) |
| (local $0 i32) |
| (loop $shape$0$continue |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (drop |
| (i32.const 33) |
| ) |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (drop |
| (i32.const -66) |
| ) |
| (br $shape$0$continue) |
| ) |
| ) |
| ) |
| ) |
| (func $split (type $v) |
| (local $0 i32) |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| ) |
| (func $split-plus-code (type $v) |
| (local $0 i32) |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (drop |
| (i32.const 10) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (block |
| (drop |
| (i32.const 20) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $if (type $v) |
| (local $0 i32) |
| (block $block$3$break |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (br $block$3$break) |
| ) |
| ) |
| (br $block$3$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (func $if-plus-code (type $v) |
| (local $0 i32) |
| (block $block$3$break |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (drop |
| (i32.const -1) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (drop |
| (i32.const -3) |
| ) |
| (br $block$3$break) |
| ) |
| ) |
| ) |
| (block |
| (drop |
| (i32.const -2) |
| ) |
| (br $block$3$break) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (func $if-else (type $v) |
| (local $0 i32) |
| (block $block$4$break |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 55) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (br $block$4$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| (block |
| (br $block$4$break) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (func $loop-tail (type $v) |
| (local $0 i32) |
| (block $block$3$break |
| (loop $shape$0$continue |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| (if |
| (i32.const 10) |
| (br $shape$0$continue) |
| (br $block$3$break) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (func $nontrivial-loop-plus-phi-to-head (type $v) |
| (local $0 i32) |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (block |
| (drop |
| (i32.const 10) |
| ) |
| (br $block$2$break) |
| ) |
| ) |
| (block |
| (block $block$7$break |
| (block $block$4$break |
| (loop $shape$1$continue |
| (block $block$3$break |
| (call $check |
| (i32.const 1) |
| ) |
| (if |
| (i32.const -2) |
| (br $block$3$break) |
| (block |
| (drop |
| (i32.const 20) |
| ) |
| (br $block$7$break) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| (if |
| (i32.const -6) |
| (br $block$4$break) |
| (block |
| (drop |
| (i32.const 30) |
| ) |
| (br $shape$1$continue) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (block $block$6$break |
| (call $check |
| (i32.const 3) |
| ) |
| (if |
| (i32.const -10) |
| (block |
| (call $check |
| (i32.const 4) |
| ) |
| (block |
| (br $block$6$break) |
| ) |
| ) |
| (br $block$6$break) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 5) |
| ) |
| (block |
| (drop |
| (i32.const 40) |
| ) |
| (br $block$7$break) |
| ) |
| ) |
| ) |
| ) |
| (block |
| (call $check |
| (i32.const 6) |
| ) |
| ) |
| ) |
| ) |
| (func $switch (type $v) |
| (local $0 i32) |
| (call $check |
| (i32.const 0) |
| ) |
| (block $switch$1$leave |
| (block $switch$1$default |
| (block $switch$1$case$3 |
| (block $switch$1$case$2 |
| (br_table $switch$1$default $switch$1$default $switch$1$case$2 $switch$1$default $switch$1$case$3 $switch$1$case$2 $switch$1$default |
| (i32.const -99) |
| ) |
| ) |
| (block |
| (block |
| (call $check |
| (i32.const 1) |
| ) |
| ) |
| ) |
| (br $switch$1$leave) |
| ) |
| (block |
| (drop |
| (i32.const 55) |
| ) |
| (block |
| (call $check |
| (i32.const 2) |
| ) |
| ) |
| ) |
| (br $switch$1$leave) |
| ) |
| (block |
| (block |
| (call $check |
| (i32.const 3) |
| ) |
| ) |
| ) |
| (br $switch$1$leave) |
| ) |
| ) |
| (func $duffs-device (type $v) |
| (local $0 i32) |
| (local $1 i32) |
| (local $2 i64) |
| (local $3 i32) |
| (local $4 f32) |
| (local $5 f64) |
| (local $6 i32) |
| (block |
| (block $block$3$break |
| (block $block$2$break |
| (call $check |
| (i32.const 0) |
| ) |
| (if |
| (i32.const 10) |
| (block |
| (set_local $3 |
| (i32.const 2) |
| ) |
| (br $block$2$break) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 3) |
| ) |
| (br $block$3$break) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (loop $shape$1$continue |
| (if |
| (i32.eq |
| (get_local $3) |
| (i32.const 2) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 0) |
| ) |
| (call $check |
| (i32.const 1) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 3) |
| ) |
| (br $shape$1$continue) |
| ) |
| ) |
| (if |
| (i32.eq |
| (get_local $3) |
| (i32.const 3) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 0) |
| ) |
| (call $check |
| (i32.const 2) |
| ) |
| (block |
| (set_local $3 |
| (i32.const 2) |
| ) |
| (br $shape$1$continue) |
| ) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (func $return (type $i) (result i32) |
| (local $0 i32) |
| (block $the-list |
| (call $check |
| (i32.const 42) |
| ) |
| (return |
| (i32.const 1337) |
| ) |
| ) |
| ) |
| ) |
| BinaryenModuleValidate(the_module); |
| BinaryenModuleOptimize(the_module); |
| BinaryenModuleValidate(the_module); |
| optimized: |
| BinaryenModulePrint(the_module); |
| (module |
| (type $v (func)) |
| (type $vi (func (param i32))) |
| (type $i (func (result i32))) |
| (memory $0 0) |
| ) |
| BinaryenModuleDispose(the_module); |
| functionTypes.clear(); |
| expressions.clear(); |
| functions.clear(); |
| relooperBlocks.clear(); |
| return 0; |
| } |