@@ -17805,6 +17805,159 @@ ir.cpp:
1780517805# 2478| v2478_6(void) = AliasedUse : ~m2480_20
1780617806# 2478| v2478_7(void) = ExitFunction :
1780717807
17808+ # 2484| void destructor_without_block(bool)
17809+ # 2484| Block 0
17810+ # 2484| v2484_1(void) = EnterFunction :
17811+ # 2484| m2484_2(unknown) = AliasedDefinition :
17812+ # 2484| m2484_3(unknown) = InitializeNonLocal :
17813+ # 2484| m2484_4(unknown) = Chi : total:m2484_2, partial:m2484_3
17814+ # 2484| r2484_5(glval<bool>) = VariableAddress[b] :
17815+ # 2484| m2484_6(bool) = InitializeParameter[b] : &:r2484_5
17816+ # 2486| r2486_1(glval<bool>) = VariableAddress[b] :
17817+ # 2486| r2486_2(bool) = Load[b] : &:r2486_1, m2484_6
17818+ # 2486| v2486_3(void) = ConditionalBranch : r2486_2
17819+ #-----| False -> Block 2
17820+ #-----| True -> Block 1
17821+
17822+ # 2487| Block 1
17823+ # 2487| r2487_1(glval<ClassWithDestructor>) = VariableAddress[c] :
17824+ # 2487| m2487_2(ClassWithDestructor) = Uninitialized[c] : &:r2487_1
17825+ # 2487| r2487_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
17826+ # 2487| v2487_4(void) = Call[ClassWithDestructor] : func:r2487_3, this:r2487_1
17827+ # 2487| m2487_5(unknown) = ^CallSideEffect : ~m2484_4
17828+ # 2487| m2487_6(unknown) = Chi : total:m2484_4, partial:m2487_5
17829+ # 2487| m2487_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2487_1
17830+ # 2487| m2487_8(ClassWithDestructor) = Chi : total:m2487_2, partial:m2487_7
17831+ #-----| r0_1(glval<ClassWithDestructor>) = VariableAddress[c] :
17832+ #-----| r0_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
17833+ #-----| v0_3(void) = Call[~ClassWithDestructor] : func:r0_2, this:r0_1
17834+ #-----| m0_4(unknown) = ^CallSideEffect : ~m2487_6
17835+ #-----| m0_5(unknown) = Chi : total:m2487_6, partial:m0_4
17836+ #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_1, m2487_8
17837+ #-----| m0_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_1
17838+ #-----| m0_8(ClassWithDestructor) = Chi : total:m2487_8, partial:m0_7
17839+ #-----| Goto -> Block 2
17840+
17841+ # 2489| Block 2
17842+ # 2489| m2489_1(unknown) = Phi : from 0:~m2484_4, from 1:~m0_5
17843+ # 2489| r2489_2(glval<bool>) = VariableAddress[b] :
17844+ # 2489| r2489_3(bool) = Load[b] : &:r2489_2, m2484_6
17845+ # 2489| v2489_4(void) = ConditionalBranch : r2489_3
17846+ #-----| False -> Block 4
17847+ #-----| True -> Block 3
17848+
17849+ # 2490| Block 3
17850+ # 2490| r2490_1(glval<ClassWithDestructor>) = VariableAddress[d] :
17851+ # 2490| m2490_2(ClassWithDestructor) = Uninitialized[d] : &:r2490_1
17852+ # 2490| r2490_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
17853+ # 2490| v2490_4(void) = Call[ClassWithDestructor] : func:r2490_3, this:r2490_1
17854+ # 2490| m2490_5(unknown) = ^CallSideEffect : ~m2489_1
17855+ # 2490| m2490_6(unknown) = Chi : total:m2489_1, partial:m2490_5
17856+ # 2490| m2490_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2490_1
17857+ # 2490| m2490_8(ClassWithDestructor) = Chi : total:m2490_2, partial:m2490_7
17858+ #-----| r0_9(glval<ClassWithDestructor>) = VariableAddress[d] :
17859+ #-----| r0_10(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
17860+ #-----| v0_11(void) = Call[~ClassWithDestructor] : func:r0_10, this:r0_9
17861+ #-----| m0_12(unknown) = ^CallSideEffect : ~m2490_6
17862+ #-----| m0_13(unknown) = Chi : total:m2490_6, partial:m0_12
17863+ #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_9, m2490_8
17864+ #-----| m0_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_9
17865+ #-----| m0_16(ClassWithDestructor) = Chi : total:m2490_8, partial:m0_15
17866+ #-----| Goto -> Block 5
17867+
17868+ # 2492| Block 4
17869+ # 2492| r2492_1(glval<ClassWithDestructor>) = VariableAddress[e] :
17870+ # 2492| m2492_2(ClassWithDestructor) = Uninitialized[e] : &:r2492_1
17871+ # 2492| r2492_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
17872+ # 2492| v2492_4(void) = Call[ClassWithDestructor] : func:r2492_3, this:r2492_1
17873+ # 2492| m2492_5(unknown) = ^CallSideEffect : ~m2489_1
17874+ # 2492| m2492_6(unknown) = Chi : total:m2489_1, partial:m2492_5
17875+ # 2492| m2492_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2492_1
17876+ # 2492| m2492_8(ClassWithDestructor) = Chi : total:m2492_2, partial:m2492_7
17877+ #-----| r0_17(glval<ClassWithDestructor>) = VariableAddress[e] :
17878+ #-----| r0_18(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
17879+ #-----| v0_19(void) = Call[~ClassWithDestructor] : func:r0_18, this:r0_17
17880+ #-----| m0_20(unknown) = ^CallSideEffect : ~m2492_6
17881+ #-----| m0_21(unknown) = Chi : total:m2492_6, partial:m0_20
17882+ #-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_17, m2492_8
17883+ #-----| m0_23(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_17
17884+ #-----| m0_24(ClassWithDestructor) = Chi : total:m2492_8, partial:m0_23
17885+ #-----| Goto -> Block 5
17886+
17887+ # 2494| Block 5
17888+ # 2494| m2494_1(unknown) = Phi : from 3:~m0_13, from 4:~m0_21, from 6:~m0_29
17889+ # 2494| r2494_2(glval<bool>) = VariableAddress[b] :
17890+ # 2494| r2494_3(bool) = Load[b] : &:r2494_2, m2484_6
17891+ # 2494| v2494_4(void) = ConditionalBranch : r2494_3
17892+ #-----| False -> Block 7
17893+ #-----| True -> Block 6
17894+
17895+ # 2495| Block 6
17896+ # 2495| r2495_1(glval<ClassWithDestructor>) = VariableAddress[f] :
17897+ # 2495| m2495_2(ClassWithDestructor) = Uninitialized[f] : &:r2495_1
17898+ # 2495| r2495_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
17899+ # 2495| v2495_4(void) = Call[ClassWithDestructor] : func:r2495_3, this:r2495_1
17900+ # 2495| m2495_5(unknown) = ^CallSideEffect : ~m2494_1
17901+ # 2495| m2495_6(unknown) = Chi : total:m2494_1, partial:m2495_5
17902+ # 2495| m2495_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2495_1
17903+ # 2495| m2495_8(ClassWithDestructor) = Chi : total:m2495_2, partial:m2495_7
17904+ #-----| r0_25(glval<ClassWithDestructor>) = VariableAddress[f] :
17905+ #-----| r0_26(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
17906+ #-----| v0_27(void) = Call[~ClassWithDestructor] : func:r0_26, this:r0_25
17907+ #-----| m0_28(unknown) = ^CallSideEffect : ~m2495_6
17908+ #-----| m0_29(unknown) = Chi : total:m2495_6, partial:m0_28
17909+ #-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_25, m2495_8
17910+ #-----| m0_31(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_25
17911+ #-----| m0_32(ClassWithDestructor) = Chi : total:m2495_8, partial:m0_31
17912+ #-----| Goto (back edge) -> Block 5
17913+
17914+ # 2497| Block 7
17915+ # 2497| r2497_1(glval<int>) = VariableAddress[i] :
17916+ # 2497| r2497_2(int) = Constant[0] :
17917+ # 2497| m2497_3(int) = Store[i] : &:r2497_1, r2497_2
17918+ #-----| Goto -> Block 8
17919+
17920+ # 2497| Block 8
17921+ # 2497| m2497_4(unknown) = Phi : from 7:~m2494_1, from 9:~m0_37
17922+ # 2497| m2497_5(int) = Phi : from 7:m2497_3, from 9:m2497_15
17923+ # 2497| r2497_6(glval<int>) = VariableAddress[i] :
17924+ # 2497| r2497_7(int) = Load[i] : &:r2497_6, m2497_5
17925+ # 2497| r2497_8(int) = Constant[42] :
17926+ # 2497| r2497_9(bool) = CompareLT : r2497_7, r2497_8
17927+ # 2497| v2497_10(void) = ConditionalBranch : r2497_9
17928+ #-----| False -> Block 10
17929+ #-----| True -> Block 9
17930+
17931+ # 2498| Block 9
17932+ # 2498| r2498_1(glval<ClassWithDestructor>) = VariableAddress[g] :
17933+ # 2498| m2498_2(ClassWithDestructor) = Uninitialized[g] : &:r2498_1
17934+ # 2498| r2498_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
17935+ # 2498| v2498_4(void) = Call[ClassWithDestructor] : func:r2498_3, this:r2498_1
17936+ # 2498| m2498_5(unknown) = ^CallSideEffect : ~m2497_4
17937+ # 2498| m2498_6(unknown) = Chi : total:m2497_4, partial:m2498_5
17938+ # 2498| m2498_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2498_1
17939+ # 2498| m2498_8(ClassWithDestructor) = Chi : total:m2498_2, partial:m2498_7
17940+ #-----| r0_33(glval<ClassWithDestructor>) = VariableAddress[g] :
17941+ #-----| r0_34(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
17942+ #-----| v0_35(void) = Call[~ClassWithDestructor] : func:r0_34, this:r0_33
17943+ #-----| m0_36(unknown) = ^CallSideEffect : ~m2498_6
17944+ #-----| m0_37(unknown) = Chi : total:m2498_6, partial:m0_36
17945+ #-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_33, m2498_8
17946+ #-----| m0_39(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r0_33
17947+ #-----| m0_40(ClassWithDestructor) = Chi : total:m2498_8, partial:m0_39
17948+ # 2497| r2497_11(glval<int>) = VariableAddress[i] :
17949+ # 2497| r2497_12(int) = Load[i] : &:r2497_11, m2497_5
17950+ # 2497| r2497_13(int) = Constant[1] :
17951+ # 2497| r2497_14(int) = Add : r2497_12, r2497_13
17952+ # 2497| m2497_15(int) = Store[i] : &:r2497_11, r2497_14
17953+ #-----| Goto (back edge) -> Block 8
17954+
17955+ # 2499| Block 10
17956+ # 2499| v2499_1(void) = NoOp :
17957+ # 2484| v2484_7(void) = ReturnVoid :
17958+ # 2484| v2484_8(void) = AliasedUse : ~m2497_4
17959+ # 2484| v2484_9(void) = ExitFunction :
17960+
1780817961perf-regression.cpp:
1780917962# 6| void Big::Big()
1781017963# 6| Block 0
0 commit comments