1;;! target = "x86_64" 2;;! test = "optimize" 3;;! filter = "wasm[2]--function" 4;;! flags = "-C inlining=y" 5 6(component 7 (core module $A 8 (func (export "f0") (result i32) (i32.const 0)) 9 (func (export "f1") (result i32) (call $not-inlined) (i32.const 1)) 10 (func $not-inlined ) 11 ) 12 13 (core module $B 14 (import "a" "f0" (func $f0 (result i32))) 15 (import "a" "f1" (func $f1 (result i32))) 16 (func (export "f2") (result i32) 17 (call $f1) 18 ) 19 ) 20 21 (core module $C 22 (import "b" "f2" (func $f2 (result i32))) 23 (func (export "f3") (result i32) 24 (call $f2) 25 ) 26 ) 27 28 (core instance $a (instantiate $A)) 29 (core instance $b (instantiate $B (with "a" (instance $a)))) 30 (core instance $c (instantiate $C (with "b" (instance $b)))) 31 32 (func (export "f") (result u32) 33 (canon lift (core func $c "f3")) 34 ) 35) 36 37;; function u2:0(i64 vmctx, i64) -> i32 tail { 38;; gv0 = vmctx 39;; gv1 = load.i64 notrap aligned readonly gv0+8 40;; gv2 = load.i64 notrap aligned gv1+24 41;; gv3 = vmctx 42;; gv4 = vmctx 43;; gv5 = load.i64 notrap aligned readonly gv4+8 44;; gv6 = load.i64 notrap aligned gv5+24 45;; gv7 = vmctx 46;; gv8 = vmctx 47;; gv9 = load.i64 notrap aligned readonly gv8+8 48;; gv10 = load.i64 notrap aligned gv9+24 49;; sig0 = (i64 vmctx, i64) -> i32 tail 50;; sig1 = (i64 vmctx, i64) -> i32 tail 51;; sig2 = (i64 vmctx, i64) tail 52;; fn0 = colocated u1:0 sig0 53;; fn1 = colocated u0:1 sig1 54;; fn2 = colocated u0:2 sig2 55;; stack_limit = gv2 56;; 57;; block0(v0: i64, v1: i64): 58;; @00d4 jump block2 59;; 60;; block2: 61;; jump block4 62;; 63;; block4: 64;; @00d4 v4 = load.i64 notrap aligned readonly can_move v0+64 65;; v10 = load.i64 notrap aligned readonly can_move v4+88 66;; call fn2(v10, v10) 67;; jump block5 68;; 69;; block5: 70;; jump block6 71;; 72;; block6: 73;; jump block3 74;; 75;; block3: 76;; jump block7 77;; 78;; block7: 79;; @00d6 jump block1 80;; 81;; block1: 82;; v11 = iconst.i32 1 83;; @00d6 return v11 ; v11 = 1 84;; } 85