.text .file "/s/llvm/llvm/test/CodeGen/WebAssembly/reg-stackify.ll" .globl no0 .type no0,@function no0: .param i32, i32 .result i32 i32.load $1=, 0($1) i32.const $push0=, 0 i32.store $discard=, 0($0), $pop0 return $1 .endfunc .Lfunc_end0: .size no0, .Lfunc_end0-no0 .globl no1 .type no1,@function no1: .param i32, i32 .result i32 i32.load $1=, 0($1) i32.const $push0=, 0 i32.store $discard=, 0($0), $pop0 return $1 .endfunc .Lfunc_end1: .size no1, .Lfunc_end1-no1 .globl yes0 .type yes0,@function yes0: .param i32, i32 .result i32 i32.const $push1=, 0 i32.store $discard=, 0($0), $pop1 i32.load $push0=, 0($1) return $pop0 .endfunc .Lfunc_end2: .size yes0, .Lfunc_end2-yes0 .globl yes1 .type yes1,@function yes1: .param i32 .result i32 i32.load $push0=, 0($0) return $pop0 .endfunc .Lfunc_end3: .size yes1, .Lfunc_end3-yes1 .globl stack_uses .type stack_uses,@function stack_uses: .param i32, i32, i32, i32 .result i32 block i32.const $push13=, 1 i32.lt_s $push0=, $0, $pop13 i32.const $push1=, 2 i32.lt_s $push2=, $1, $pop1 i32.xor $push5=, $pop0, $pop2 i32.const $push12=, 1 i32.lt_s $push3=, $2, $pop12 i32.const $push11=, 2 i32.lt_s $push4=, $3, $pop11 i32.xor $push6=, $pop3, $pop4 i32.xor $push7=, $pop5, $pop6 i32.const $push10=, 1 i32.ne $push8=, $pop7, $pop10 br_if 0, $pop8 i32.const $push9=, 0 return $pop9 .LBB4_2: end_block i32.const $push14=, 1 return $pop14 .endfunc .Lfunc_end4: .size stack_uses, .Lfunc_end4-stack_uses .globl multiple_uses .type multiple_uses,@function multiple_uses: .param i32, i32, i32 .local i32 block i32.load $push0=, 0($2) tee_local $push3=, $3=, $pop0 i32.ge_u $push1=, $pop3, $1 br_if 0, $pop1 i32.lt_u $push2=, $3, $0 br_if 0, $pop2 i32.store $discard=, 0($2), $3 .LBB5_3: end_block return .endfunc .Lfunc_end5: .size multiple_uses, .Lfunc_end5-multiple_uses .hidden stackify_store_across_side_effects .globl stackify_store_across_side_effects .type stackify_store_across_side_effects,@function stackify_store_across_side_effects: .param i32 .local i64 i64.const $push0=, 4611686018427387904 i64.store $1=, 0($0), $pop0 call evoke_side_effects@FUNCTION i64.store $discard=, 0($0), $1 call evoke_side_effects@FUNCTION return .endfunc .Lfunc_end6: .size stackify_store_across_side_effects, .Lfunc_end6-stackify_store_across_side_effects .globl div_tree .type div_tree,@function div_tree: .param i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 .result i32 i32.div_s $push0=, $0, $1 i32.div_s $push1=, $2, $3 i32.div_s $push2=, $pop0, $pop1 i32.div_s $push3=, $4, $5 i32.div_s $push4=, $6, $7 i32.div_s $push5=, $pop3, $pop4 i32.div_s $push6=, $pop2, $pop5 i32.div_s $push7=, $8, $9 i32.div_s $push8=, $10, $11 i32.div_s $push9=, $pop7, $pop8 i32.div_s $push10=, $12, $13 i32.div_s $push11=, $14, $15 i32.div_s $push12=, $pop10, $pop11 i32.div_s $push13=, $pop9, $pop12 i32.div_s $push14=, $pop6, $pop13 return $pop14 .endfunc .Lfunc_end7: .size div_tree, .Lfunc_end7-div_tree .globl simple_multiple_use .type simple_multiple_use,@function simple_multiple_use: .param i32, i32 i32.mul $push0=, $1, $0 tee_local $push1=, $0=, $pop0 call use_a@FUNCTION, $pop1 call use_b@FUNCTION, $0 return .endfunc .Lfunc_end8: .size simple_multiple_use, .Lfunc_end8-simple_multiple_use .globl multiple_uses_in_same_insn .type multiple_uses_in_same_insn,@function multiple_uses_in_same_insn: .param i32, i32 i32.mul $push0=, $1, $0 tee_local $push1=, $0=, $pop0 call use_2@FUNCTION, $pop1, $0 return .endfunc .Lfunc_end9: .size multiple_uses_in_same_insn, .Lfunc_end9-multiple_uses_in_same_insn .globl commute .type commute,@function commute: .result i32 i32.call $push0=, red@FUNCTION i32.call $push1=, green@FUNCTION i32.add $push2=, $pop0, $pop1 i32.call $push3=, blue@FUNCTION i32.add $push4=, $pop2, $pop3 return $pop4 .endfunc .Lfunc_end10: .size commute, .Lfunc_end10-commute .globl no_stackify_past_use .type no_stackify_past_use,@function no_stackify_past_use: .param i32 .result i32 .local i32 i32.call $1=, callee@FUNCTION, $0 i32.const $push0=, 1 i32.add $push1=, $0, $pop0 i32.call $push2=, callee@FUNCTION, $pop1 i32.add $push3=, $1, $pop2 i32.mul $push4=, $1, $pop3 return $pop4 .endfunc .Lfunc_end11: .size no_stackify_past_use, .Lfunc_end11-no_stackify_past_use