diff options
-rw-r--r-- | src/passes/Inlining.cpp | 9 | ||||
-rw-r--r-- | test/lit/passes/inlining-eh-legacy.wast | 85 | ||||
-rw-r--r-- | test/lit/passes/inlining-unreachable.wast | 40 | ||||
-rw-r--r-- | test/lit/passes/inlining_all-features.wast | 41 | ||||
-rw-r--r-- | test/lit/passes/inlining_enable-tail-call.wast | 574 | ||||
-rw-r--r-- | test/lit/passes/inlining_optimize-level=3.wast | 404 | ||||
-rw-r--r-- | test/lit/passes/inlining_splitting.wast | 1270 | ||||
-rw-r--r-- | test/lit/passes/inlining_splitting_basics.wast | 100 | ||||
-rw-r--r-- | test/lit/passes/no-inline-monomorphize-inlining.wast | 68 | ||||
-rw-r--r-- | test/lit/passes/no-inline.wast | 608 |
10 files changed, 1433 insertions, 1766 deletions
diff --git a/src/passes/Inlining.cpp b/src/passes/Inlining.cpp index cbee7e77f..998e355c9 100644 --- a/src/passes/Inlining.cpp +++ b/src/passes/Inlining.cpp @@ -290,15 +290,12 @@ struct Planner : public WalkerPass<TryDepthWalker<Planner>> { } if (state->inlinableFunctions.count(curr->target) && !isUnreachable && curr->target != getFunction()->name) { - // nest the call in a block. that way the location of the pointer to the - // call will not change even if we inline multiple times into the same - // function, otherwise call1(call2()) might be a problem - auto* block = Builder(*getModule()).makeBlock(curr); - replaceCurrent(block); // can't add a new element in parallel assert(state->actionsForFunction.count(getFunction()->name) > 0); state->actionsForFunction[getFunction()->name].emplace_back( - &block->list[0], getModule()->getFunction(curr->target), tryDepth > 0); + getCurrentPointer(), + getModule()->getFunction(curr->target), + tryDepth > 0); } } diff --git a/test/lit/passes/inlining-eh-legacy.wast b/test/lit/passes/inlining-eh-legacy.wast index b6e3caec2..9135f786e 100644 --- a/test/lit/passes/inlining-eh-legacy.wast +++ b/test/lit/passes/inlining-eh-legacy.wast @@ -22,16 +22,14 @@ ;; CHECK: (func $caller-with-label (type $1) (param $x i32) ;; CHECK-NEXT: (loop $label - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$callee-with-label - ;; CHECK-NEXT: (try $label0 - ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (catch $tag$0 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (pop i32) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$callee-with-label + ;; CHECK-NEXT: (try $label0 + ;; CHECK-NEXT: (do + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (catch $tag$0 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (pop i32) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -89,10 +87,8 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (delegate 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$callee-a$1 (result i32) - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$callee-a$1 (result i32) + ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $caller-with-try-delegate (result i32) @@ -109,36 +105,77 @@ ;; CHECK: (func $caller-with-pop (type $0) ;; CHECK-NEXT: (local $0 i32) + ;; CHECK-NEXT: (try + ;; CHECK-NEXT: (do + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (catch $tag$0 + ;; CHECK-NEXT: (block $__inlined_func$callee-b$2 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (pop i32) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + (func $caller-with-pop + (try + (do) + (catch $tag$0 + ;; After this $callee-b is inlined, there will be an additional block + ;; surrouding this 'pop'. However, that block has no breaks to it, and + ;; will be considered the implicit block of the catch scope, so no + ;; fixups are done. + (call $callee-b + (pop i32) + ) + ) + ) + ) + + (func $callee-c (param $x i32) (result i32) + (local.get $x) + ) + + ;; CHECK: (func $caller-with-pop-twice (type $0) + ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) + ;; CHECK-NEXT: (local $2 i32) ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (catch $tag$0 - ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (local.set $2 ;; CHECK-NEXT: (pop i32) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$callee-b$2 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: (block $__inlined_func$callee-b$4 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (block $__inlined_func$callee-c$3 (result i32) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (local.get $2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - (func $caller-with-pop + (func $caller-with-pop-twice (try (do) (catch $tag$0 - ;; After this $callee-b is inlined, there will be additional 'block's - ;; surrouding this 'pop', which makes its location invalid. We fix it by + ;; As above, but now with two calls here, both of whom will be inlined. + ;; As a result we have two blocks that nest the pops. We fix that by ;; creating a new local to set the result of 'pop' and later use ;; local.get to get the value within the inlined function body. (call $callee-b - (pop i32) + (call $callee-c + (pop i32) + ) ) ) ) diff --git a/test/lit/passes/inlining-unreachable.wast b/test/lit/passes/inlining-unreachable.wast index 044de4848..d723212fc 100644 --- a/test/lit/passes/inlining-unreachable.wast +++ b/test/lit/passes/inlining-unreachable.wast @@ -75,11 +75,9 @@ ;; CHECK: (func $caller (type $0) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$callee - ;; CHECK-NEXT: (call $imported - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$callee + ;; CHECK-NEXT: (call $imported + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -100,22 +98,20 @@ ;; CHECK: (func $caller-2 (type $0) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$callee-2$1 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__return_call - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (try - ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: (br $__return_call) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$callee-2$1 + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (block $__return_call + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (try + ;; CHECK-NEXT: (do + ;; CHECK-NEXT: (unreachable) + ;; CHECK-NEXT: (br $__return_call) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $imported - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $imported + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -179,11 +175,9 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (return - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$1 - ;; CHECK-NEXT: (block $block0 - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$1 + ;; CHECK-NEXT: (block $block0 + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) diff --git a/test/lit/passes/inlining_all-features.wast b/test/lit/passes/inlining_all-features.wast index c274e9abb..38d24ab72 100644 --- a/test/lit/passes/inlining_all-features.wast +++ b/test/lit/passes/inlining_all-features.wast @@ -20,10 +20,8 @@ (func $foo) ;; CHECK: (func $ref_func_test (type $1) (result funcref) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$foo - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$foo + ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (ref.func $foo) ;; CHECK-NEXT: ) @@ -139,3 +137,38 @@ ) ) ) + +;; Test handling of nested inlined calls. +(module + (func $callee-a (param i32)) + + (func $callee-b (param $x i32) (result i32) + (local.get $x) + ) + + ;; CHECK: (type $0 (func)) + + ;; CHECK: (func $caller-with-pop-twice (type $0) + ;; CHECK-NEXT: (local $0 i32) + ;; CHECK-NEXT: (local $1 i32) + ;; CHECK-NEXT: (block $__inlined_func$callee-a$1 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (block $__inlined_func$callee-b (result i32) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + (func $caller-with-pop-twice + ;; Both these calls should be inlined. + (call $callee-a + (call $callee-b + (i32.const 42) + ) + ) + ) +) diff --git a/test/lit/passes/inlining_enable-tail-call.wast b/test/lit/passes/inlining_enable-tail-call.wast index a5e797ca7..dae243dcf 100644 --- a/test/lit/passes/inlining_enable-tail-call.wast +++ b/test/lit/passes/inlining_enable-tail-call.wast @@ -24,124 +24,92 @@ ;; CHECK-NEXT: (local $4 f32) ;; CHECK-NEXT: (local $5 i64) ;; CHECK-NEXT: (local $6 f32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$exported - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$exported + ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$tabled$1 - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$tabled$1 + ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$multi$2 - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$multi$2 + ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$multi$3 - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$multi$3 + ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$ok$4 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$ok$4 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$int$5 (result i32) - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$int$5 (result i32) + ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result f64) - ;; CHECK-NEXT: (block $__inlined_func$double$6 (result f64) - ;; CHECK-NEXT: (f64.const 3.14159) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$double$6 (result f64) + ;; CHECK-NEXT: (f64.const 3.14159) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $x - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$int2$7 (result i32) - ;; CHECK-NEXT: (i32.const 112) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$int2$7 (result i32) + ;; CHECK-NEXT: (i32.const 112) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $y - ;; CHECK-NEXT: (block (result f64) - ;; CHECK-NEXT: (block $__inlined_func$double2$8 (result f64) - ;; CHECK-NEXT: (f64.const 113.14159) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$double2$8 (result f64) + ;; CHECK-NEXT: (f64.const 113.14159) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$with-local$9 - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (f32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (f32.const 2.1418280601501465) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$with-local$9 + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (f32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (f32.const 2.1418280601501465) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$with-local2$10 - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (i64.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (i64.const 4) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$with-local2$10 + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (i64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (i64.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$return$11 (result i32) - ;; CHECK-NEXT: (br $__inlined_func$return$11 - ;; CHECK-NEXT: (i32.const 5) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$return$11 (result i32) + ;; CHECK-NEXT: (br $__inlined_func$return$11 + ;; CHECK-NEXT: (i32.const 5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$multipass$12 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$multipass2$15 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 6) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$multipass$12 + ;; CHECK-NEXT: (block $__inlined_func$multipass2$15 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$param$13 - ;; CHECK-NEXT: (local.set $4 - ;; CHECK-NEXT: (f32.const 12.34000015258789) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i64.const 890005350012) + ;; CHECK-NEXT: (block $__inlined_func$param$13 + ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (f32.const 12.34000015258789) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i64.const 890005350012) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $6 + ;; CHECK-NEXT: (f32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (f32.const 0) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $6) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -184,9 +152,7 @@ ) ;; CHECK: (func $cycle1 ;; CHECK-NEXT: (block $__inlined_func$cycle2$14 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (call $cycle1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $cycle1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $cycle1 @@ -313,18 +279,16 @@ ;; CHECK-NEXT: (then ;; CHECK-NEXT: (if (result i32) ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$func_3 (result i32) - ;; CHECK-NEXT: (local.set $8 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (select - ;; CHECK-NEXT: (local.get $8) - ;; CHECK-NEXT: (local.tee $8 - ;; CHECK-NEXT: (i32.const -1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (block $__inlined_func$func_3 (result i32) + ;; CHECK-NEXT: (local.set $8 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (select + ;; CHECK-NEXT: (local.get $8) + ;; CHECK-NEXT: (local.tee $8 + ;; CHECK-NEXT: (i32.const -1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -474,14 +438,12 @@ ;; CHECK: (type $0 (func)) ;; CHECK: (func $caller - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$callee - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$callee + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) (func $caller (return_call $callee) @@ -561,17 +523,15 @@ ;; CHECK: (func $caller ;; CHECK-NEXT: (local $0 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$callee - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$callee + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) (func $caller (return_call $callee @@ -583,12 +543,10 @@ ;; CHECK-NEXT: (block $__original_body ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__original_body) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__original_body) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (return) @@ -641,12 +599,10 @@ ;; CHECK-NEXT: (return ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__original_body) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__original_body) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -678,25 +634,23 @@ ;; CHECK-NEXT: (local $y i32) ;; CHECK-NEXT: (local $2 i32) ;; CHECK-NEXT: (local $3 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$callee - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (local.get $x) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (local.get $y) + ;; CHECK-NEXT: (block $__inlined_func$callee + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (local.get $y) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $3) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) (func $caller (local $x i32) @@ -727,15 +681,13 @@ ;; CHECK-NEXT: (block $__original_body ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (local.get $x) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (local.get $y) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__original_body) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (local.get $x) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (local.get $y) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__original_body) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (return) @@ -778,23 +730,17 @@ ;; CHECK: (type $0 (func)) ;; CHECK: (func $first - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$second - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$third$2 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (return) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$second + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (block $__inlined_func$third$2 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) (func $first (return_call $second) @@ -813,9 +759,7 @@ ;; CHECK-NEXT: (block $__inlined_func$second-2$1 ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (br $__original_body_0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__original_body_0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -871,26 +815,22 @@ ;; CHECK-NEXT: (local.set $3 ;; CHECK-NEXT: (local.get $y) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (return - ;; CHECK-NEXT: (block $__inlined_func$third$1 (result i32) - ;; CHECK-NEXT: (local.set $4 - ;; CHECK-NEXT: (local.get $2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (return + ;; CHECK-NEXT: (block $__inlined_func$third$1 (result i32) + ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (local.get $2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $4) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -940,15 +880,13 @@ ;; CHECK-NEXT: (return ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (local.get $x) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (local.get $y) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__original_body) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (local.get $y) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__original_body) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -956,17 +894,13 @@ ;; CHECK-NEXT: (block $__inlined_func$second ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (local.set $4 - ;; CHECK-NEXT: (local.get $2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__original_body_0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__original_body_0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1023,16 +957,10 @@ ;; CHECK: (func $first ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$second (result i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (br $__inlined_func$second - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$third$2 (result i32) - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$second (result i32) + ;; CHECK-NEXT: (br $__inlined_func$second + ;; CHECK-NEXT: (block $__inlined_func$third$2 (result i32) + ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1045,25 +973,19 @@ ) ;; CHECK: (func $first-2 ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$second-2$1 (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__return_call - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (try - ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (br $__return_call) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$second-2$1 (result i32) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (block $__return_call + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (try + ;; CHECK-NEXT: (do + ;; CHECK-NEXT: (br $__return_call) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$third$3 (result i32) - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$third$3 (result i32) + ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1096,19 +1018,15 @@ ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (block $__inlined_func$second ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$third$2 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$third$2 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__inlined_func$second) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__inlined_func$second) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1122,21 +1040,17 @@ ;; CHECK-NEXT: (block $__return_call ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (br $__return_call) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__return_call) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (br $__inlined_func$second-2$1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$third$3 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$third$3 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1241,14 +1155,12 @@ ;; CHECK: (func $first ;; CHECK-NEXT: (block $__inlined_func$second ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (call $third - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (br $__inlined_func$second) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $third + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (br $__inlined_func$second) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__inlined_func$second) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__inlined_func$second) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1263,26 +1175,22 @@ ;; CHECK-NEXT: (block $__return_call ;; CHECK-NEXT: (try ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (local.tee $0 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (br $__inlined_func$second-2$1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.tee $0 + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (br $__inlined_func$second-2$1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__return_call) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__return_call) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (br $__inlined_func$second-2$1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$third$2 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$third$2 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1331,13 +1239,11 @@ ;; CHECK: (func $caller ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$callee (result i32) - ;; CHECK-NEXT: (br $__inlined_func$callee - ;; CHECK-NEXT: (call_indirect (type $T) - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$callee (result i32) + ;; CHECK-NEXT: (br $__inlined_func$callee + ;; CHECK-NEXT: (call_indirect (type $T) + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1356,22 +1262,20 @@ ) ;; CHECK: (func $caller-2 ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$callee-2$1 (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__return_call - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (try - ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (br $__return_call) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$callee-2$1 (result i32) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (block $__return_call + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (try + ;; CHECK-NEXT: (do + ;; CHECK-NEXT: (br $__return_call) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call_indirect (type $T) - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call_indirect (type $T) + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1484,35 +1388,29 @@ (return_call $2) ) ;; CHECK: (func $19 - ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (block $__inlined_func$13$1 ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$13$1 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (global.get $global$0) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (global.get $global$0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (unreachable) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (block $__inlined_func$2 ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$2 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (global.get $global$0) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (global.set $global$0 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (global.get $global$0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__inlined_func$13$1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (global.set $global$0 + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__inlined_func$13$1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1558,39 +1456,35 @@ ) ) ;; CHECK: (func $19 - ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (block $__inlined_func$13$1 ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$13$1 + ;; CHECK-NEXT: (block $__original_body ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__original_body - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (global.get $global$0) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (try - ;; CHECK-NEXT: (do - ;; CHECK-NEXT: (br $__original_body) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (global.get $global$0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (br $__inlined_func$13$1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block $__inlined_func$2 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (global.get $global$0) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (global.set $global$0 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (try + ;; CHECK-NEXT: (do + ;; CHECK-NEXT: (br $__original_body) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (br $__inlined_func$13$1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$2 + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (global.get $global$0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (global.set $global$0 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) diff --git a/test/lit/passes/inlining_optimize-level=3.wast b/test/lit/passes/inlining_optimize-level=3.wast index ab9386533..654786d5e 100644 --- a/test/lit/passes/inlining_optimize-level=3.wast +++ b/test/lit/passes/inlining_optimize-level=3.wast @@ -82,138 +82,106 @@ ) ;; CHECK: (func $intoHere ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$yes$2 (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$yes$2 (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$yes-big-but-single-use$3 (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (nop) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$yes-big-but-single-use$3 (result i32) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (nop) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$no-calls$21 (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$yes (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$no-calls$21 (result i32) + ;; CHECK-NEXT: (block $__inlined_func$yes (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$no-calls$22 (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$yes0 (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$no-calls$22 (result i32) + ;; CHECK-NEXT: (block $__inlined_func$yes0 (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$yes-calls-but-one-use$23 (result i32) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$yes$1 (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$yes-calls-but-one-use$23 (result i32) + ;; CHECK-NEXT: (block $__inlined_func$yes$1 (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$no-loops$4 (result i32) - ;; CHECK-NEXT: (loop (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$no-loops$4 (result i32) + ;; CHECK-NEXT: (loop (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$no-loops$5 (result i32) - ;; CHECK-NEXT: (loop (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$no-loops$5 (result i32) + ;; CHECK-NEXT: (loop (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$yes-loops-but-one-use$6 (result i32) - ;; CHECK-NEXT: (loop (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$yes-loops-but-one-use$6 (result i32) + ;; CHECK-NEXT: (loop (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$no-loops-but-one-use-but-exported$7 (result i32) - ;; CHECK-NEXT: (loop (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$no-loops-but-one-use-but-exported$7 (result i32) + ;; CHECK-NEXT: (loop (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$no-loops-but-one-use-but-tabled$8 (result i32) - ;; CHECK-NEXT: (loop (result i32) - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$no-loops-but-one-use-but-tabled$8 (result i32) + ;; CHECK-NEXT: (loop (result i32) + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -243,10 +211,8 @@ ;; CHECK-NEXT: (local.set $1 ;; CHECK-NEXT: (local.get $x) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (call $recursive-inlining-1 - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $recursive-inlining-1 + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -280,32 +246,24 @@ ;; CHECK-NEXT: (local.set $1 ;; CHECK-NEXT: (local.get $x) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$b-recursive-inlining-2$24 (result i32) - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: (block $__inlined_func$b-recursive-inlining-2$24 (result i32) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$b-recursive-inlining-2$25 (result i32) + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$b-recursive-inlining-2$25 (result i32) - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (local.get $2) + ;; CHECK-NEXT: (block $__inlined_func$b-recursive-inlining-2$26 (result i32) + ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (local.get $3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$b-recursive-inlining-2$27 (result i32) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$b-recursive-inlining-2$26 (result i32) - ;; CHECK-NEXT: (local.set $4 - ;; CHECK-NEXT: (local.get $3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$b-recursive-inlining-2$27 (result i32) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $b-recursive-inlining-2 - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $b-recursive-inlining-2 + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -335,74 +293,54 @@ ;; a single iteration (which is the usual case, and the case here). ;; CHECK: (func $call-many-getters - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$11 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$11 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$12 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$12 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$13 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$13 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$14 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$14 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$15 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$15 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$16 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$16 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$17 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$17 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$18 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$18 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$19 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$19 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$getter$20 - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$getter$20 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -461,18 +399,16 @@ ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (block $__inlined_func$0_0 ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$0_0_0 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (br_if $__inlined_func$0_0 - ;; CHECK-NEXT: (i32.const 10) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (block $__inlined_func$0_0_0 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (br_if $__inlined_func$0_0 + ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -516,34 +452,26 @@ ;; CHECK-NEXT: (local $0 f32) ;; CHECK-NEXT: (local $1 f32) ;; CHECK-NEXT: (local $2 f32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$A$3 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (block (result f32) - ;; CHECK-NEXT: (block $__inlined_func$C$2 (result f32) - ;; CHECK-NEXT: (local.tee $0 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$D$1 - ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (block $__inlined_func$A$3 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (block $__inlined_func$C$2 (result f32) + ;; CHECK-NEXT: (local.tee $0 + ;; CHECK-NEXT: (block $__inlined_func$D$1 + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (f32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result f32) - ;; CHECK-NEXT: (block $__inlined_func$C (result f32) - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $2) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (f32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (block $__inlined_func$C (result f32) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -656,40 +584,36 @@ ;; CHECK-NEXT: (local $3 i32) ;; CHECK-NEXT: (local $4 i32) ;; CHECK-NEXT: (local $5 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$middle1 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $top - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: (local.get $2) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$middle1 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $top + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$middle2$1 - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $4 - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (i32.const 3) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $top - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: (i32.const 42) - ;; CHECK-NEXT: (local.get $3) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$middle2$1 + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $top + ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (i32.const 42) + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (call $middle3 diff --git a/test/lit/passes/inlining_splitting.wast b/test/lit/passes/inlining_splitting.wast index 4d944d454..84c0b9832 100644 --- a/test/lit/passes/inlining_splitting.wast +++ b/test/lit/passes/inlining_splitting.wast @@ -52,54 +52,48 @@ ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) ;; CHECK-NEXT: (local $2 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-work-hard - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-work-hard + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$maybe-work-hard ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$maybe-work-hard - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-work-hard$1 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-work-hard$1 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$maybe-work-hard ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$maybe-work-hard - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-work-hard$2 - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-work-hard$2 + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (i32.const 3) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$maybe-work-hard ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$maybe-work-hard - ;; CHECK-NEXT: (local.get $2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -135,32 +129,28 @@ ;; CHECK: (func $call-just-if (type $0) ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$just-if$3 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-B$just-if - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$just-if$3 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-B$just-if + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$just-if$4 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 2) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-B$just-if - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$just-if$4 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-B$just-if + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -290,52 +280,48 @@ ;; CHECK-NEXT: (local $3 i64) ;; CHECK-NEXT: (local $4 i32) ;; CHECK-NEXT: (local $5 f64) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$many-params$6 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i64.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (f64.const 3.14159) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$many-params$6 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (f64.const 3.14159) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$many-params + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$many-params - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: (local.get $2) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$many-params$7 - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (i64.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $4 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (f64.const 3.14159) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$many-params$7 + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (i64.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (f64.const 3.14159) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $4) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$many-params + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: (local.get $4) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$many-params - ;; CHECK-NEXT: (local.get $3) - ;; CHECK-NEXT: (local.get $4) - ;; CHECK-NEXT: (local.get $5) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -370,40 +356,36 @@ ;; CHECK: (func $call-condition-eqz (type $0) ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-eqz$8 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-eqz$8 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-eqz - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-eqz + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-eqz$9 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-eqz$9 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-eqz - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-eqz + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -429,27 +411,23 @@ ) ;; CHECK: (func $call-condition-global (type $0) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-global$10 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $glob) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-global) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-global$10 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $glob) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-global) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-global$11 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $glob) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-global) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-global$11 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $glob) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-global) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -478,40 +456,36 @@ ;; CHECK: (func $call-condition-ref.is (type $0) ;; CHECK-NEXT: (local $0 anyref) ;; CHECK-NEXT: (local $1 anyref) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-ref.is$12 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (ref.is_null - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-ref.is$12 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-ref.is - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-ref.is + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-ref.is$13 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (ref.is_null - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$condition-ref.is$13 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-ref.is - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$condition-ref.is + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -640,27 +614,23 @@ ) ;; CHECK: (func $call-start-used-globally (type $0) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$start-used-globally$14 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $glob) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$start-used-globally) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$start-used-globally$14 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $glob) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$start-used-globally) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$start-used-globally$15 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $glob) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$start-used-globally) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$start-used-globally$15 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $glob) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$start-used-globally) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -683,23 +653,19 @@ ) ;; CHECK: (func $call-inlineable (type $0) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$inlineable$16 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (global.get $glob) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$inlineable$16) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$inlineable$16 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (global.get $glob) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$inlineable$16) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$inlineable$17 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (global.get $glob) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$inlineable$17) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$inlineable$17 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (global.get $glob) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$inlineable$17) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -853,37 +819,33 @@ ;; CHECK: (func $call-colliding-name (type $0) ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$colliding-name$18 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$colliding-name$18 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$colliding-name_67 ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$colliding-name_67 - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$colliding-name$19 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$colliding-name$19 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$colliding-name_67 ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$colliding-name_67 - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -929,50 +891,46 @@ ;; CHECK-NEXT: (local $0 anyref) ;; CHECK-NEXT: (local $1 anyref) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$error-if-null$20 (result anyref) - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$byn-split-inlineable-B$error-if-null$20 - ;; CHECK-NEXT: (call $byn-split-outlined-B$error-if-null - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$error-if-null$20 (result anyref) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result anyref) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$byn-split-inlineable-B$error-if-null$20 + ;; CHECK-NEXT: (call $byn-split-outlined-B$error-if-null + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$error-if-null$21 (result anyref) - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$byn-split-inlineable-B$error-if-null$21 - ;; CHECK-NEXT: (call $byn-split-outlined-B$error-if-null - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$error-if-null$21 (result anyref) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result anyref) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$byn-split-inlineable-B$error-if-null$21 + ;; CHECK-NEXT: (call $byn-split-outlined-B$error-if-null + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1097,46 +1055,42 @@ ;; CHECK-NEXT: (local $0 anyref) ;; CHECK-NEXT: (local $1 anyref) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$reachable-if-body$22 (result anyref) - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$reachable-if-body$22 (result anyref) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result anyref) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-B$reachable-if-body ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-B$reachable-if-body - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$reachable-if-body$23 (result anyref) - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$reachable-if-body$23 (result anyref) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result anyref) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-B$reachable-if-body ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-B$reachable-if-body - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1163,42 +1117,38 @@ ;; CHECK-NEXT: (local $0 anyref) ;; CHECK-NEXT: (local $1 anyref) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (block $__inlined_func$reachable-if-body-noloop$24 (result anyref) - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $import) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$reachable-if-body-noloop$24 (result anyref) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result anyref) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $import) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (block $__inlined_func$reachable-if-body-noloop$25 (result anyref) - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $import) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$reachable-if-body-noloop$25 (result anyref) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result anyref) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $import) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1291,37 +1241,33 @@ ;; CHECK: (func $call-unreachable-if-body-no-result (type $0) ;; CHECK-NEXT: (local $0 anyref) ;; CHECK-NEXT: (local $1 anyref) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$unreachable-if-body-no-result$26 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$unreachable-if-body-no-result$26 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-B$unreachable-if-body-no-result ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-B$unreachable-if-body-no-result - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$unreachable-if-body-no-result$27 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$unreachable-if-body-no-result$27 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-B$unreachable-if-body-no-result ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-B$unreachable-if-body-no-result - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1363,72 +1309,68 @@ ;; CHECK-NEXT: (local $2 anyref) ;; CHECK-NEXT: (local $3 anyref) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$multi-if$28 (result anyref) - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $__inlined_func$byn-split-outlined-B$multi-if$30 - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $import) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$multi-if$28 (result anyref) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result anyref) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $__inlined_func$byn-split-outlined-B$multi-if$30 + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $import) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-B$multi-if_76 ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-B$multi-if_76 - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$multi-if$29 (result anyref) - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result anyref) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $__inlined_func$byn-split-outlined-B$multi-if$31 - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (call $import) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$multi-if$29 (result anyref) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (ref.null none) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result anyref) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $__inlined_func$byn-split-outlined-B$multi-if$31 + ;; CHECK-NEXT: (local.set $3 + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (call $import) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (ref.is_null + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-B$multi-if_76 ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-B$multi-if_76 - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1642,19 +1584,11 @@ ;; CHECK-NEXT: (return) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$1 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (call $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$1 + ;; CHECK-NEXT: (call $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$1$1 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (call $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$1$1 + ;; CHECK-NEXT: (call $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $0 @@ -1669,52 +1603,34 @@ (call $1) ) ;; CHECK: (func $1 (type $none_=>_none) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$2 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $global$0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (block $__inlined_func$byn-split-outlined-A$0$3 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$1 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$4 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $global$0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$2 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $global$0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (block $__inlined_func$byn-split-outlined-A$0$3 + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (block $__inlined_func$1 + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$4 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $global$0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$1$1 - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$5 - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz - ;; CHECK-NEXT: (global.get $global$0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$1$1 + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$5 + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (global.get $global$0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1839,38 +1755,26 @@ ) ;; CHECK: (func $byn-split-outlined-A$0 (type $none_=>_none) -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$1 -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$6 -;; CHECK-NEXT: (if -;; CHECK-NEXT: (i32.eqz -;; CHECK-NEXT: (global.get $global$0) -;; CHECK-NEXT: ) -;; CHECK-NEXT: (then -;; CHECK-NEXT: (call $byn-split-outlined-A$0_21) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) +;; CHECK-NEXT: (block $__inlined_func$1 +;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$6 +;; CHECK-NEXT: (if +;; CHECK-NEXT: (i32.eqz +;; CHECK-NEXT: (global.get $global$0) +;; CHECK-NEXT: ) +;; CHECK-NEXT: (then +;; CHECK-NEXT: (call $byn-split-outlined-A$0_21) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$1$1 -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$7 -;; CHECK-NEXT: (if -;; CHECK-NEXT: (i32.eqz -;; CHECK-NEXT: (global.get $global$0) -;; CHECK-NEXT: ) -;; CHECK-NEXT: (then -;; CHECK-NEXT: (call $byn-split-outlined-A$0_21) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) +;; CHECK-NEXT: (block $__inlined_func$1$1 +;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$7 +;; CHECK-NEXT: (if +;; CHECK-NEXT: (i32.eqz +;; CHECK-NEXT: (global.get $global$0) +;; CHECK-NEXT: ) +;; CHECK-NEXT: (then +;; CHECK-NEXT: (call $byn-split-outlined-A$0_21) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1878,38 +1782,26 @@ ;; CHECK-NEXT: ) ;; CHECK: (func $byn-split-outlined-A$0_21 (type $none_=>_none) -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$1 -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$8 -;; CHECK-NEXT: (if -;; CHECK-NEXT: (i32.eqz -;; CHECK-NEXT: (global.get $global$0) -;; CHECK-NEXT: ) -;; CHECK-NEXT: (then -;; CHECK-NEXT: (call $byn-split-outlined-A$0_22) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) +;; CHECK-NEXT: (block $__inlined_func$1 +;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$8 +;; CHECK-NEXT: (if +;; CHECK-NEXT: (i32.eqz +;; CHECK-NEXT: (global.get $global$0) +;; CHECK-NEXT: ) +;; CHECK-NEXT: (then +;; CHECK-NEXT: (call $byn-split-outlined-A$0_22) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$1$1 -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$9 -;; CHECK-NEXT: (if -;; CHECK-NEXT: (i32.eqz -;; CHECK-NEXT: (global.get $global$0) -;; CHECK-NEXT: ) -;; CHECK-NEXT: (then -;; CHECK-NEXT: (call $byn-split-outlined-A$0_22) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) +;; CHECK-NEXT: (block $__inlined_func$1$1 +;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$0$9 +;; CHECK-NEXT: (if +;; CHECK-NEXT: (i32.eqz +;; CHECK-NEXT: (global.get $global$0) +;; CHECK-NEXT: ) +;; CHECK-NEXT: (then +;; CHECK-NEXT: (call $byn-split-outlined-A$0_22) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1917,19 +1809,11 @@ ;; CHECK-NEXT: ) ;; CHECK: (func $byn-split-outlined-A$0_22 (type $none_=>_none) -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$1 -;; CHECK-NEXT: (block -;; CHECK-NEXT: (call $0) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) +;; CHECK-NEXT: (block $__inlined_func$1 +;; CHECK-NEXT: (call $0) ;; CHECK-NEXT: ) -;; CHECK-NEXT: (block -;; CHECK-NEXT: (block $__inlined_func$1$1 -;; CHECK-NEXT: (block -;; CHECK-NEXT: (call $0) -;; CHECK-NEXT: ) -;; CHECK-NEXT: ) +;; CHECK-NEXT: (block $__inlined_func$1$1 +;; CHECK-NEXT: (call $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (module @@ -1961,88 +1845,84 @@ ;; CHECK: (func $call-$middle-size-A (type $0) ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$middle-size-A - ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (block $__inlined_func$middle-size-A + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$middle-size-A) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$middle-size-A) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$middle-size-A$1 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$middle-size-A$1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (block $__inlined_func$middle-size-A$1 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$middle-size-A$1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -2077,37 +1957,33 @@ ;; CHECK: (func $call-$big-size-A (type $0) ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$big-size-A$2 - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$big-size-A$2 + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$big-size-A ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$big-size-A - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$big-size-A$3 - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-A$big-size-A$3 + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (i32.eqz + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (call $byn-split-outlined-A$big-size-A ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (call $byn-split-outlined-A$big-size-A - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -2142,92 +2018,88 @@ ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$middle-size-B$4 (result i32) - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (unreachable) + ;; CHECK-NEXT: (block $__inlined_func$middle-size-B$4 (result i32) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$middle-size-B$5 (result i32) - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (unreachable) + ;; CHECK-NEXT: (block $__inlined_func$middle-size-B$5 (result i32) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -2268,46 +2140,42 @@ ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (local $1 i32) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$big-size-B$6 (result i32) - ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$byn-split-inlineable-B$big-size-B$6 - ;; CHECK-NEXT: (call $byn-split-outlined-B$big-size-B - ;; CHECK-NEXT: (local.get $0) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$big-size-B$6 (result i32) + ;; CHECK-NEXT: (local.set $0 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$byn-split-inlineable-B$big-size-B$6 + ;; CHECK-NEXT: (call $byn-split-outlined-B$big-size-B + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$big-size-B$7 (result i32) - ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (i32.const 1) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (block (result i32) - ;; CHECK-NEXT: (if - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: (then - ;; CHECK-NEXT: (br $__inlined_func$byn-split-inlineable-B$big-size-B$7 - ;; CHECK-NEXT: (call $byn-split-outlined-B$big-size-B - ;; CHECK-NEXT: (local.get $1) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block $__inlined_func$byn-split-inlineable-B$big-size-B$7 (result i32) + ;; CHECK-NEXT: (local.set $1 + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block (result i32) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $1) + ;; CHECK-NEXT: (then + ;; CHECK-NEXT: (br $__inlined_func$byn-split-inlineable-B$big-size-B$7 + ;; CHECK-NEXT: (call $byn-split-outlined-B$big-size-B + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) diff --git a/test/lit/passes/inlining_splitting_basics.wast b/test/lit/passes/inlining_splitting_basics.wast index fe07a3926..2f3a32908 100644 --- a/test/lit/passes/inlining_splitting_basics.wast +++ b/test/lit/passes/inlining_splitting_basics.wast @@ -66,37 +66,33 @@ ;; PARTIAL: (func $call-pattern-A (type $0) ;; PARTIAL-NEXT: (local $0 i32) ;; PARTIAL-NEXT: (local $1 i32) - ;; PARTIAL-NEXT: (block - ;; PARTIAL-NEXT: (block $__inlined_func$byn-split-inlineable-A$pattern-A - ;; PARTIAL-NEXT: (local.set $0 - ;; PARTIAL-NEXT: (i32.const 1) + ;; PARTIAL-NEXT: (block $__inlined_func$byn-split-inlineable-A$pattern-A + ;; PARTIAL-NEXT: (local.set $0 + ;; PARTIAL-NEXT: (i32.const 1) + ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (if + ;; PARTIAL-NEXT: (i32.eqz + ;; PARTIAL-NEXT: (local.get $0) ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (if - ;; PARTIAL-NEXT: (i32.eqz + ;; PARTIAL-NEXT: (then + ;; PARTIAL-NEXT: (call $byn-split-outlined-A$pattern-A ;; PARTIAL-NEXT: (local.get $0) ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (then - ;; PARTIAL-NEXT: (call $byn-split-outlined-A$pattern-A - ;; PARTIAL-NEXT: (local.get $0) - ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (block - ;; PARTIAL-NEXT: (block $__inlined_func$byn-split-inlineable-A$pattern-A$1 - ;; PARTIAL-NEXT: (local.set $1 - ;; PARTIAL-NEXT: (i32.const 2) + ;; PARTIAL-NEXT: (block $__inlined_func$byn-split-inlineable-A$pattern-A$1 + ;; PARTIAL-NEXT: (local.set $1 + ;; PARTIAL-NEXT: (i32.const 2) + ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (if + ;; PARTIAL-NEXT: (i32.eqz + ;; PARTIAL-NEXT: (local.get $1) ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (if - ;; PARTIAL-NEXT: (i32.eqz + ;; PARTIAL-NEXT: (then + ;; PARTIAL-NEXT: (call $byn-split-outlined-A$pattern-A ;; PARTIAL-NEXT: (local.get $1) ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (then - ;; PARTIAL-NEXT: (call $byn-split-outlined-A$pattern-A - ;; PARTIAL-NEXT: (local.get $1) - ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) @@ -155,50 +151,46 @@ ;; PARTIAL-NEXT: (local $0 i32) ;; PARTIAL-NEXT: (local $1 i32) ;; PARTIAL-NEXT: (drop - ;; PARTIAL-NEXT: (block (result i32) - ;; PARTIAL-NEXT: (block $__inlined_func$byn-split-inlineable-B$pattern-B$2 (result i32) - ;; PARTIAL-NEXT: (local.set $0 - ;; PARTIAL-NEXT: (i32.const 1) - ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (block (result i32) - ;; PARTIAL-NEXT: (if - ;; PARTIAL-NEXT: (i32.eqz - ;; PARTIAL-NEXT: (local.get $0) - ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (then - ;; PARTIAL-NEXT: (br $__inlined_func$byn-split-inlineable-B$pattern-B$2 - ;; PARTIAL-NEXT: (call $byn-split-outlined-B$pattern-B - ;; PARTIAL-NEXT: (local.get $0) - ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (block $__inlined_func$byn-split-inlineable-B$pattern-B$2 (result i32) + ;; PARTIAL-NEXT: (local.set $0 + ;; PARTIAL-NEXT: (i32.const 1) + ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (block (result i32) + ;; PARTIAL-NEXT: (if + ;; PARTIAL-NEXT: (i32.eqz + ;; PARTIAL-NEXT: (local.get $0) + ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (then + ;; PARTIAL-NEXT: (br $__inlined_func$byn-split-inlineable-B$pattern-B$2 + ;; PARTIAL-NEXT: (call $byn-split-outlined-B$pattern-B + ;; PARTIAL-NEXT: (local.get $0) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (local.get $0) ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (local.get $0) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: (drop - ;; PARTIAL-NEXT: (block (result i32) - ;; PARTIAL-NEXT: (block $__inlined_func$byn-split-inlineable-B$pattern-B$3 (result i32) - ;; PARTIAL-NEXT: (local.set $1 - ;; PARTIAL-NEXT: (i32.const 2) - ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (block (result i32) - ;; PARTIAL-NEXT: (if - ;; PARTIAL-NEXT: (i32.eqz - ;; PARTIAL-NEXT: (local.get $1) - ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (then - ;; PARTIAL-NEXT: (br $__inlined_func$byn-split-inlineable-B$pattern-B$3 - ;; PARTIAL-NEXT: (call $byn-split-outlined-B$pattern-B - ;; PARTIAL-NEXT: (local.get $1) - ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (block $__inlined_func$byn-split-inlineable-B$pattern-B$3 (result i32) + ;; PARTIAL-NEXT: (local.set $1 + ;; PARTIAL-NEXT: (i32.const 2) + ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (block (result i32) + ;; PARTIAL-NEXT: (if + ;; PARTIAL-NEXT: (i32.eqz + ;; PARTIAL-NEXT: (local.get $1) + ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (then + ;; PARTIAL-NEXT: (br $__inlined_func$byn-split-inlineable-B$pattern-B$3 + ;; PARTIAL-NEXT: (call $byn-split-outlined-B$pattern-B + ;; PARTIAL-NEXT: (local.get $1) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) - ;; PARTIAL-NEXT: (local.get $1) ;; PARTIAL-NEXT: ) + ;; PARTIAL-NEXT: (local.get $1) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) ;; PARTIAL-NEXT: ) diff --git a/test/lit/passes/no-inline-monomorphize-inlining.wast b/test/lit/passes/no-inline-monomorphize-inlining.wast index 2479b46f4..5065e6e05 100644 --- a/test/lit/passes/no-inline-monomorphize-inlining.wast +++ b/test/lit/passes/no-inline-monomorphize-inlining.wast @@ -48,53 +48,45 @@ ;; YESINLINE-NEXT: (local $5 (ref $A)) ;; YESINLINE-NEXT: (local $6 (ref $B)) ;; YESINLINE-NEXT: (local $7 (ref $A)) - ;; YESINLINE-NEXT: (block - ;; YESINLINE-NEXT: (block $__inlined_func$refinable_noinline - ;; YESINLINE-NEXT: (local.set $2 - ;; YESINLINE-NEXT: (local.get $A) - ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (drop - ;; YESINLINE-NEXT: (local.get $2) - ;; YESINLINE-NEXT: ) + ;; YESINLINE-NEXT: (block $__inlined_func$refinable_noinline + ;; YESINLINE-NEXT: (local.set $2 + ;; YESINLINE-NEXT: (local.get $A) + ;; YESINLINE-NEXT: ) + ;; YESINLINE-NEXT: (drop + ;; YESINLINE-NEXT: (local.get $2) ;; YESINLINE-NEXT: ) ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (block - ;; YESINLINE-NEXT: (block $__inlined_func$refinable_noinline$1 - ;; YESINLINE-NEXT: (local.set $3 - ;; YESINLINE-NEXT: (local.get $A) - ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (drop - ;; YESINLINE-NEXT: (local.get $3) - ;; YESINLINE-NEXT: ) + ;; YESINLINE-NEXT: (block $__inlined_func$refinable_noinline$1 + ;; YESINLINE-NEXT: (local.set $3 + ;; YESINLINE-NEXT: (local.get $A) + ;; YESINLINE-NEXT: ) + ;; YESINLINE-NEXT: (drop + ;; YESINLINE-NEXT: (local.get $3) ;; YESINLINE-NEXT: ) ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (block - ;; YESINLINE-NEXT: (block $__inlined_func$refinable_noinline_2$2 - ;; YESINLINE-NEXT: (local.set $4 - ;; YESINLINE-NEXT: (local.get $B) + ;; YESINLINE-NEXT: (block $__inlined_func$refinable_noinline_2$2 + ;; YESINLINE-NEXT: (local.set $4 + ;; YESINLINE-NEXT: (local.get $B) + ;; YESINLINE-NEXT: ) + ;; YESINLINE-NEXT: (block + ;; YESINLINE-NEXT: (local.set $5 + ;; YESINLINE-NEXT: (local.get $4) ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (block - ;; YESINLINE-NEXT: (local.set $5 - ;; YESINLINE-NEXT: (local.get $4) - ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (drop - ;; YESINLINE-NEXT: (local.get $5) - ;; YESINLINE-NEXT: ) + ;; YESINLINE-NEXT: (drop + ;; YESINLINE-NEXT: (local.get $5) ;; YESINLINE-NEXT: ) ;; YESINLINE-NEXT: ) ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (block - ;; YESINLINE-NEXT: (block $__inlined_func$refinable_noinline_2$3 - ;; YESINLINE-NEXT: (local.set $6 - ;; YESINLINE-NEXT: (local.get $B) + ;; YESINLINE-NEXT: (block $__inlined_func$refinable_noinline_2$3 + ;; YESINLINE-NEXT: (local.set $6 + ;; YESINLINE-NEXT: (local.get $B) + ;; YESINLINE-NEXT: ) + ;; YESINLINE-NEXT: (block + ;; YESINLINE-NEXT: (local.set $7 + ;; YESINLINE-NEXT: (local.get $6) ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (block - ;; YESINLINE-NEXT: (local.set $7 - ;; YESINLINE-NEXT: (local.get $6) - ;; YESINLINE-NEXT: ) - ;; YESINLINE-NEXT: (drop - ;; YESINLINE-NEXT: (local.get $7) - ;; YESINLINE-NEXT: ) + ;; YESINLINE-NEXT: (drop + ;; YESINLINE-NEXT: (local.get $7) ;; YESINLINE-NEXT: ) ;; YESINLINE-NEXT: ) ;; YESINLINE-NEXT: ) diff --git a/test/lit/passes/no-inline.wast b/test/lit/passes/no-inline.wast index 9fd95d0b7..2e21105cb 100644 --- a/test/lit/passes/no-inline.wast +++ b/test/lit/passes/no-inline.wast @@ -101,53 +101,45 @@ ;; YES_ALL-NEXT: (local $1 i32) ;; YES_ALL-NEXT: (local $2 i32) ;; YES_ALL-NEXT: (local $3 i32) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$full-yes-inline - ;; YES_ALL-NEXT: (local.set $0 - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (call $import) + ;; YES_ALL-NEXT: (block $__inlined_func$full-yes-inline + ;; YES_ALL-NEXT: (local.set $0 + ;; YES_ALL-NEXT: (i32.const 0) ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (call $import) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$full-maybe-inline$1 - ;; YES_ALL-NEXT: (local.set $1 - ;; YES_ALL-NEXT: (i32.const 1) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (call $import) + ;; YES_ALL-NEXT: (block $__inlined_func$full-maybe-inline$1 + ;; YES_ALL-NEXT: (local.set $1 + ;; YES_ALL-NEXT: (i32.const 1) ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (call $import) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$2 - ;; YES_ALL-NEXT: (local.set $2 - ;; YES_ALL-NEXT: (i32.const 2) + ;; YES_ALL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$2 + ;; YES_ALL-NEXT: (local.set $2 + ;; YES_ALL-NEXT: (i32.const 2) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (if + ;; YES_ALL-NEXT: (i32.eqz + ;; YES_ALL-NEXT: (local.get $2) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (if - ;; YES_ALL-NEXT: (i32.eqz + ;; YES_ALL-NEXT: (then + ;; YES_ALL-NEXT: (call $byn-split-outlined-A$partial-yes-inline ;; YES_ALL-NEXT: (local.get $2) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (then - ;; YES_ALL-NEXT: (call $byn-split-outlined-A$partial-yes-inline - ;; YES_ALL-NEXT: (local.get $2) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-maybe-inline$3 - ;; YES_ALL-NEXT: (local.set $3 - ;; YES_ALL-NEXT: (i32.const 3) + ;; YES_ALL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-maybe-inline$3 + ;; YES_ALL-NEXT: (local.set $3 + ;; YES_ALL-NEXT: (i32.const 3) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (if + ;; YES_ALL-NEXT: (i32.eqz + ;; YES_ALL-NEXT: (local.get $3) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (if - ;; YES_ALL-NEXT: (i32.eqz + ;; YES_ALL-NEXT: (then + ;; YES_ALL-NEXT: (call $byn-split-outlined-A$partial-maybe-inline ;; YES_ALL-NEXT: (local.get $3) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (then - ;; YES_ALL-NEXT: (call $byn-split-outlined-A$partial-maybe-inline - ;; YES_ALL-NEXT: (local.get $3) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) @@ -156,36 +148,30 @@ ;; NO_PART-NEXT: (local $0 i32) ;; NO_PART-NEXT: (local $1 i32) ;; NO_PART-NEXT: (local $2 i32) - ;; NO_PART-NEXT: (block - ;; NO_PART-NEXT: (block $__inlined_func$full-yes-inline - ;; NO_PART-NEXT: (local.set $0 - ;; NO_PART-NEXT: (i32.const 0) - ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (call $import) + ;; NO_PART-NEXT: (block $__inlined_func$full-yes-inline + ;; NO_PART-NEXT: (local.set $0 + ;; NO_PART-NEXT: (i32.const 0) ;; NO_PART-NEXT: ) + ;; NO_PART-NEXT: (call $import) ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (block - ;; NO_PART-NEXT: (block $__inlined_func$full-maybe-inline$1 - ;; NO_PART-NEXT: (local.set $1 - ;; NO_PART-NEXT: (i32.const 1) - ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (call $import) + ;; NO_PART-NEXT: (block $__inlined_func$full-maybe-inline$1 + ;; NO_PART-NEXT: (local.set $1 + ;; NO_PART-NEXT: (i32.const 1) ;; NO_PART-NEXT: ) + ;; NO_PART-NEXT: (call $import) ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (block - ;; NO_PART-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$2 - ;; NO_PART-NEXT: (local.set $2 - ;; NO_PART-NEXT: (i32.const 2) + ;; NO_PART-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$2 + ;; NO_PART-NEXT: (local.set $2 + ;; NO_PART-NEXT: (i32.const 2) + ;; NO_PART-NEXT: ) + ;; NO_PART-NEXT: (if + ;; NO_PART-NEXT: (i32.eqz + ;; NO_PART-NEXT: (local.get $2) ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (if - ;; NO_PART-NEXT: (i32.eqz + ;; NO_PART-NEXT: (then + ;; NO_PART-NEXT: (call $byn-split-outlined-A$partial-yes-inline ;; NO_PART-NEXT: (local.get $2) ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (then - ;; NO_PART-NEXT: (call $byn-split-outlined-A$partial-yes-inline - ;; NO_PART-NEXT: (local.get $2) - ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: ) ;; NO_PART-NEXT: ) ;; NO_PART-NEXT: ) ;; NO_PART-NEXT: ) @@ -197,48 +183,42 @@ ;; NO_FULL-NEXT: (local $0 i32) ;; NO_FULL-NEXT: (local $1 i32) ;; NO_FULL-NEXT: (local $2 i32) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$full-yes-inline - ;; NO_FULL-NEXT: (local.set $0 - ;; NO_FULL-NEXT: (i32.const 0) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (call $import) + ;; NO_FULL-NEXT: (block $__inlined_func$full-yes-inline + ;; NO_FULL-NEXT: (local.set $0 + ;; NO_FULL-NEXT: (i32.const 0) ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (call $import) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: (call $full-maybe-inline ;; NO_FULL-NEXT: (i32.const 1) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$1 - ;; NO_FULL-NEXT: (local.set $1 - ;; NO_FULL-NEXT: (i32.const 2) + ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$1 + ;; NO_FULL-NEXT: (local.set $1 + ;; NO_FULL-NEXT: (i32.const 2) + ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (if + ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (local.get $1) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (if - ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (then + ;; NO_FULL-NEXT: (call $byn-split-outlined-A$partial-yes-inline ;; NO_FULL-NEXT: (local.get $1) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (then - ;; NO_FULL-NEXT: (call $byn-split-outlined-A$partial-yes-inline - ;; NO_FULL-NEXT: (local.get $1) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-maybe-inline$2 - ;; NO_FULL-NEXT: (local.set $2 - ;; NO_FULL-NEXT: (i32.const 3) + ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-maybe-inline$2 + ;; NO_FULL-NEXT: (local.set $2 + ;; NO_FULL-NEXT: (i32.const 3) + ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (if + ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (local.get $2) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (if - ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (then + ;; NO_FULL-NEXT: (call $byn-split-outlined-A$partial-maybe-inline ;; NO_FULL-NEXT: (local.get $2) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (then - ;; NO_FULL-NEXT: (call $byn-split-outlined-A$partial-maybe-inline - ;; NO_FULL-NEXT: (local.get $2) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) @@ -246,31 +226,27 @@ ;; NO_BOTH: (func $caller ;; NO_BOTH-NEXT: (local $0 i32) ;; NO_BOTH-NEXT: (local $1 i32) - ;; NO_BOTH-NEXT: (block - ;; NO_BOTH-NEXT: (block $__inlined_func$full-yes-inline - ;; NO_BOTH-NEXT: (local.set $0 - ;; NO_BOTH-NEXT: (i32.const 0) - ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: (call $import) + ;; NO_BOTH-NEXT: (block $__inlined_func$full-yes-inline + ;; NO_BOTH-NEXT: (local.set $0 + ;; NO_BOTH-NEXT: (i32.const 0) ;; NO_BOTH-NEXT: ) + ;; NO_BOTH-NEXT: (call $import) ;; NO_BOTH-NEXT: ) ;; NO_BOTH-NEXT: (call $full-maybe-inline ;; NO_BOTH-NEXT: (i32.const 1) ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: (block - ;; NO_BOTH-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$1 - ;; NO_BOTH-NEXT: (local.set $1 - ;; NO_BOTH-NEXT: (i32.const 2) + ;; NO_BOTH-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$1 + ;; NO_BOTH-NEXT: (local.set $1 + ;; NO_BOTH-NEXT: (i32.const 2) + ;; NO_BOTH-NEXT: ) + ;; NO_BOTH-NEXT: (if + ;; NO_BOTH-NEXT: (i32.eqz + ;; NO_BOTH-NEXT: (local.get $1) ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: (if - ;; NO_BOTH-NEXT: (i32.eqz + ;; NO_BOTH-NEXT: (then + ;; NO_BOTH-NEXT: (call $byn-split-outlined-A$partial-yes-inline ;; NO_BOTH-NEXT: (local.get $1) ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: (then - ;; NO_BOTH-NEXT: (call $byn-split-outlined-A$partial-yes-inline - ;; NO_BOTH-NEXT: (local.get $1) - ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: ) ;; NO_BOTH-NEXT: ) ;; NO_BOTH-NEXT: ) ;; NO_BOTH-NEXT: ) @@ -298,53 +274,45 @@ ;; YES_ALL-NEXT: (local $1 i32) ;; YES_ALL-NEXT: (local $2 i32) ;; YES_ALL-NEXT: (local $3 i32) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$full-yes-inline$4 - ;; YES_ALL-NEXT: (local.set $0 - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (call $import) + ;; YES_ALL-NEXT: (block $__inlined_func$full-yes-inline$4 + ;; YES_ALL-NEXT: (local.set $0 + ;; YES_ALL-NEXT: (i32.const 0) ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (call $import) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$full-maybe-inline$5 - ;; YES_ALL-NEXT: (local.set $1 - ;; YES_ALL-NEXT: (i32.const 1) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (call $import) + ;; YES_ALL-NEXT: (block $__inlined_func$full-maybe-inline$5 + ;; YES_ALL-NEXT: (local.set $1 + ;; YES_ALL-NEXT: (i32.const 1) ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (call $import) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$6 - ;; YES_ALL-NEXT: (local.set $2 - ;; YES_ALL-NEXT: (i32.const 2) + ;; YES_ALL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$6 + ;; YES_ALL-NEXT: (local.set $2 + ;; YES_ALL-NEXT: (i32.const 2) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (if + ;; YES_ALL-NEXT: (i32.eqz + ;; YES_ALL-NEXT: (local.get $2) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (if - ;; YES_ALL-NEXT: (i32.eqz + ;; YES_ALL-NEXT: (then + ;; YES_ALL-NEXT: (call $byn-split-outlined-A$partial-yes-inline ;; YES_ALL-NEXT: (local.get $2) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (then - ;; YES_ALL-NEXT: (call $byn-split-outlined-A$partial-yes-inline - ;; YES_ALL-NEXT: (local.get $2) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-maybe-inline$7 - ;; YES_ALL-NEXT: (local.set $3 - ;; YES_ALL-NEXT: (i32.const 3) + ;; YES_ALL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-maybe-inline$7 + ;; YES_ALL-NEXT: (local.set $3 + ;; YES_ALL-NEXT: (i32.const 3) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (if + ;; YES_ALL-NEXT: (i32.eqz + ;; YES_ALL-NEXT: (local.get $3) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (if - ;; YES_ALL-NEXT: (i32.eqz + ;; YES_ALL-NEXT: (then + ;; YES_ALL-NEXT: (call $byn-split-outlined-A$partial-maybe-inline ;; YES_ALL-NEXT: (local.get $3) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (then - ;; YES_ALL-NEXT: (call $byn-split-outlined-A$partial-maybe-inline - ;; YES_ALL-NEXT: (local.get $3) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) @@ -353,36 +321,30 @@ ;; NO_PART-NEXT: (local $0 i32) ;; NO_PART-NEXT: (local $1 i32) ;; NO_PART-NEXT: (local $2 i32) - ;; NO_PART-NEXT: (block - ;; NO_PART-NEXT: (block $__inlined_func$full-yes-inline$3 - ;; NO_PART-NEXT: (local.set $0 - ;; NO_PART-NEXT: (i32.const 0) - ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (call $import) + ;; NO_PART-NEXT: (block $__inlined_func$full-yes-inline$3 + ;; NO_PART-NEXT: (local.set $0 + ;; NO_PART-NEXT: (i32.const 0) ;; NO_PART-NEXT: ) + ;; NO_PART-NEXT: (call $import) ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (block - ;; NO_PART-NEXT: (block $__inlined_func$full-maybe-inline$4 - ;; NO_PART-NEXT: (local.set $1 - ;; NO_PART-NEXT: (i32.const 1) - ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (call $import) + ;; NO_PART-NEXT: (block $__inlined_func$full-maybe-inline$4 + ;; NO_PART-NEXT: (local.set $1 + ;; NO_PART-NEXT: (i32.const 1) ;; NO_PART-NEXT: ) + ;; NO_PART-NEXT: (call $import) ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (block - ;; NO_PART-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$5 - ;; NO_PART-NEXT: (local.set $2 - ;; NO_PART-NEXT: (i32.const 2) + ;; NO_PART-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$5 + ;; NO_PART-NEXT: (local.set $2 + ;; NO_PART-NEXT: (i32.const 2) + ;; NO_PART-NEXT: ) + ;; NO_PART-NEXT: (if + ;; NO_PART-NEXT: (i32.eqz + ;; NO_PART-NEXT: (local.get $2) ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (if - ;; NO_PART-NEXT: (i32.eqz + ;; NO_PART-NEXT: (then + ;; NO_PART-NEXT: (call $byn-split-outlined-A$partial-yes-inline ;; NO_PART-NEXT: (local.get $2) ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: (then - ;; NO_PART-NEXT: (call $byn-split-outlined-A$partial-yes-inline - ;; NO_PART-NEXT: (local.get $2) - ;; NO_PART-NEXT: ) - ;; NO_PART-NEXT: ) ;; NO_PART-NEXT: ) ;; NO_PART-NEXT: ) ;; NO_PART-NEXT: ) @@ -394,48 +356,42 @@ ;; NO_FULL-NEXT: (local $0 i32) ;; NO_FULL-NEXT: (local $1 i32) ;; NO_FULL-NEXT: (local $2 i32) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$full-yes-inline$3 - ;; NO_FULL-NEXT: (local.set $0 - ;; NO_FULL-NEXT: (i32.const 0) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (call $import) + ;; NO_FULL-NEXT: (block $__inlined_func$full-yes-inline$3 + ;; NO_FULL-NEXT: (local.set $0 + ;; NO_FULL-NEXT: (i32.const 0) ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (call $import) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: (call $full-maybe-inline ;; NO_FULL-NEXT: (i32.const 1) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$4 - ;; NO_FULL-NEXT: (local.set $1 - ;; NO_FULL-NEXT: (i32.const 2) + ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$4 + ;; NO_FULL-NEXT: (local.set $1 + ;; NO_FULL-NEXT: (i32.const 2) + ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (if + ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (local.get $1) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (if - ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (then + ;; NO_FULL-NEXT: (call $byn-split-outlined-A$partial-yes-inline ;; NO_FULL-NEXT: (local.get $1) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (then - ;; NO_FULL-NEXT: (call $byn-split-outlined-A$partial-yes-inline - ;; NO_FULL-NEXT: (local.get $1) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-maybe-inline$5 - ;; NO_FULL-NEXT: (local.set $2 - ;; NO_FULL-NEXT: (i32.const 3) + ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-maybe-inline$5 + ;; NO_FULL-NEXT: (local.set $2 + ;; NO_FULL-NEXT: (i32.const 3) + ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (if + ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (local.get $2) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (if - ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (then + ;; NO_FULL-NEXT: (call $byn-split-outlined-A$partial-maybe-inline ;; NO_FULL-NEXT: (local.get $2) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (then - ;; NO_FULL-NEXT: (call $byn-split-outlined-A$partial-maybe-inline - ;; NO_FULL-NEXT: (local.get $2) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) @@ -443,31 +399,27 @@ ;; NO_BOTH: (func $caller-2 ;; NO_BOTH-NEXT: (local $0 i32) ;; NO_BOTH-NEXT: (local $1 i32) - ;; NO_BOTH-NEXT: (block - ;; NO_BOTH-NEXT: (block $__inlined_func$full-yes-inline$2 - ;; NO_BOTH-NEXT: (local.set $0 - ;; NO_BOTH-NEXT: (i32.const 0) - ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: (call $import) + ;; NO_BOTH-NEXT: (block $__inlined_func$full-yes-inline$2 + ;; NO_BOTH-NEXT: (local.set $0 + ;; NO_BOTH-NEXT: (i32.const 0) ;; NO_BOTH-NEXT: ) + ;; NO_BOTH-NEXT: (call $import) ;; NO_BOTH-NEXT: ) ;; NO_BOTH-NEXT: (call $full-maybe-inline ;; NO_BOTH-NEXT: (i32.const 1) ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: (block - ;; NO_BOTH-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$3 - ;; NO_BOTH-NEXT: (local.set $1 - ;; NO_BOTH-NEXT: (i32.const 2) + ;; NO_BOTH-NEXT: (block $__inlined_func$byn-split-inlineable-A$partial-yes-inline$3 + ;; NO_BOTH-NEXT: (local.set $1 + ;; NO_BOTH-NEXT: (i32.const 2) + ;; NO_BOTH-NEXT: ) + ;; NO_BOTH-NEXT: (if + ;; NO_BOTH-NEXT: (i32.eqz + ;; NO_BOTH-NEXT: (local.get $1) ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: (if - ;; NO_BOTH-NEXT: (i32.eqz + ;; NO_BOTH-NEXT: (then + ;; NO_BOTH-NEXT: (call $byn-split-outlined-A$partial-yes-inline ;; NO_BOTH-NEXT: (local.get $1) ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: (then - ;; NO_BOTH-NEXT: (call $byn-split-outlined-A$partial-yes-inline - ;; NO_BOTH-NEXT: (local.get $1) - ;; NO_BOTH-NEXT: ) - ;; NO_BOTH-NEXT: ) ;; NO_BOTH-NEXT: ) ;; NO_BOTH-NEXT: ) ;; NO_BOTH-NEXT: ) @@ -691,109 +643,101 @@ ;; YES_ALL-NEXT: (local $1 i32) ;; YES_ALL-NEXT: (local $2 i32) ;; YES_ALL-NEXT: (local $3 i32) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$maybe-partial-or-full-1 - ;; YES_ALL-NEXT: (local.set $0 - ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: (block $__inlined_func$maybe-partial-or-full-1 + ;; YES_ALL-NEXT: (local.set $0 + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (if + ;; YES_ALL-NEXT: (local.get $0) + ;; YES_ALL-NEXT: (then + ;; YES_ALL-NEXT: (call $import) ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (block $__inlined_func$maybe-partial-or-full-1$1 + ;; YES_ALL-NEXT: (local.set $1 + ;; YES_ALL-NEXT: (i32.const 1) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (if + ;; YES_ALL-NEXT: (local.get $1) + ;; YES_ALL-NEXT: (then + ;; YES_ALL-NEXT: (call $import) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (block $__inlined_func$maybe-partial-or-full-2$2 + ;; YES_ALL-NEXT: (local.set $2 + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (block ;; YES_ALL-NEXT: (if - ;; YES_ALL-NEXT: (local.get $0) + ;; YES_ALL-NEXT: (local.get $2) ;; YES_ALL-NEXT: (then - ;; YES_ALL-NEXT: (call $import) + ;; YES_ALL-NEXT: (br $__inlined_func$maybe-partial-or-full-2$2) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (nop) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$maybe-partial-or-full-1$1 - ;; YES_ALL-NEXT: (local.set $1 - ;; YES_ALL-NEXT: (i32.const 1) - ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (block $__inlined_func$maybe-partial-or-full-2$3 + ;; YES_ALL-NEXT: (local.set $3 + ;; YES_ALL-NEXT: (i32.const 1) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (block ;; YES_ALL-NEXT: (if - ;; YES_ALL-NEXT: (local.get $1) + ;; YES_ALL-NEXT: (local.get $3) ;; YES_ALL-NEXT: (then - ;; YES_ALL-NEXT: (call $import) + ;; YES_ALL-NEXT: (br $__inlined_func$maybe-partial-or-full-2$3) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$maybe-partial-or-full-2$2 - ;; YES_ALL-NEXT: (local.set $2 + ;; YES_ALL-NEXT: (nop) + ;; YES_ALL-NEXT: (drop ;; YES_ALL-NEXT: (i32.const 0) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (if - ;; YES_ALL-NEXT: (local.get $2) - ;; YES_ALL-NEXT: (then - ;; YES_ALL-NEXT: (br $__inlined_func$maybe-partial-or-full-2$2) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (nop) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (block $__inlined_func$maybe-partial-or-full-2$3 - ;; YES_ALL-NEXT: (local.set $3 - ;; YES_ALL-NEXT: (i32.const 1) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (block - ;; YES_ALL-NEXT: (if - ;; YES_ALL-NEXT: (local.get $3) - ;; YES_ALL-NEXT: (then - ;; YES_ALL-NEXT: (br $__inlined_func$maybe-partial-or-full-2$3) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (nop) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) - ;; YES_ALL-NEXT: (drop - ;; YES_ALL-NEXT: (i32.const 0) - ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) + ;; YES_ALL-NEXT: ) + ;; YES_ALL-NEXT: (drop + ;; YES_ALL-NEXT: (i32.const 0) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) ;; YES_ALL-NEXT: ) @@ -817,67 +761,59 @@ ;; NO_FULL-NEXT: (local $1 i32) ;; NO_FULL-NEXT: (local $2 i32) ;; NO_FULL-NEXT: (local $3 i32) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-B$maybe-partial-or-full-1 - ;; NO_FULL-NEXT: (local.set $0 - ;; NO_FULL-NEXT: (i32.const 0) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (if - ;; NO_FULL-NEXT: (local.get $0) - ;; NO_FULL-NEXT: (then - ;; NO_FULL-NEXT: (call $byn-split-outlined-B$maybe-partial-or-full-1 - ;; NO_FULL-NEXT: (local.get $0) - ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-B$maybe-partial-or-full-1 + ;; NO_FULL-NEXT: (local.set $0 + ;; NO_FULL-NEXT: (i32.const 0) + ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (if + ;; NO_FULL-NEXT: (local.get $0) + ;; NO_FULL-NEXT: (then + ;; NO_FULL-NEXT: (call $byn-split-outlined-B$maybe-partial-or-full-1 + ;; NO_FULL-NEXT: (local.get $0) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-B$maybe-partial-or-full-1$1 - ;; NO_FULL-NEXT: (local.set $1 - ;; NO_FULL-NEXT: (i32.const 1) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (if - ;; NO_FULL-NEXT: (local.get $1) - ;; NO_FULL-NEXT: (then - ;; NO_FULL-NEXT: (call $byn-split-outlined-B$maybe-partial-or-full-1 - ;; NO_FULL-NEXT: (local.get $1) - ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-B$maybe-partial-or-full-1$1 + ;; NO_FULL-NEXT: (local.set $1 + ;; NO_FULL-NEXT: (i32.const 1) + ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (if + ;; NO_FULL-NEXT: (local.get $1) + ;; NO_FULL-NEXT: (then + ;; NO_FULL-NEXT: (call $byn-split-outlined-B$maybe-partial-or-full-1 + ;; NO_FULL-NEXT: (local.get $1) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-partial-or-full-2$2 - ;; NO_FULL-NEXT: (local.set $2 - ;; NO_FULL-NEXT: (i32.const 0) + ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-partial-or-full-2$2 + ;; NO_FULL-NEXT: (local.set $2 + ;; NO_FULL-NEXT: (i32.const 0) + ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (if + ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (local.get $2) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (if - ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (then + ;; NO_FULL-NEXT: (call $byn-split-outlined-A$maybe-partial-or-full-2 ;; NO_FULL-NEXT: (local.get $2) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (then - ;; NO_FULL-NEXT: (call $byn-split-outlined-A$maybe-partial-or-full-2 - ;; NO_FULL-NEXT: (local.get $2) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (block - ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-partial-or-full-2$3 - ;; NO_FULL-NEXT: (local.set $3 - ;; NO_FULL-NEXT: (i32.const 1) + ;; NO_FULL-NEXT: (block $__inlined_func$byn-split-inlineable-A$maybe-partial-or-full-2$3 + ;; NO_FULL-NEXT: (local.set $3 + ;; NO_FULL-NEXT: (i32.const 1) + ;; NO_FULL-NEXT: ) + ;; NO_FULL-NEXT: (if + ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (local.get $3) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (if - ;; NO_FULL-NEXT: (i32.eqz + ;; NO_FULL-NEXT: (then + ;; NO_FULL-NEXT: (call $byn-split-outlined-A$maybe-partial-or-full-2 ;; NO_FULL-NEXT: (local.get $3) ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: (then - ;; NO_FULL-NEXT: (call $byn-split-outlined-A$maybe-partial-or-full-2 - ;; NO_FULL-NEXT: (local.get $3) - ;; NO_FULL-NEXT: ) - ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) ;; NO_FULL-NEXT: ) |