@@ -13030,6 +13030,149 @@ ir.cpp:
1303013030# 2137| Block 21
1303113031# 2137| v2137_13(void) = Unreached :
1303213032
13033+ # 2169| void static_variable_with_destructor_1()
13034+ # 2169| Block 0
13035+ # 2169| v2169_1(void) = EnterFunction :
13036+ # 2169| m2169_2(unknown) = AliasedDefinition :
13037+ # 2169| m2169_3(unknown) = InitializeNonLocal :
13038+ # 2169| m2169_4(unknown) = Chi : total:m2169_2, partial:m2169_3
13039+ # 2170| r2170_1(glval<ClassWithDestructor>) = VariableAddress[a] :
13040+ # 2170| m2170_2(ClassWithDestructor) = Uninitialized[a] : &:r2170_1
13041+ # 2170| r2170_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
13042+ # 2170| v2170_4(void) = Call[ClassWithDestructor] : func:r2170_3, this:r2170_1
13043+ # 2170| m2170_5(unknown) = ^CallSideEffect : ~m2169_4
13044+ # 2170| m2170_6(unknown) = Chi : total:m2169_4, partial:m2170_5
13045+ # 2170| m2170_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1
13046+ # 2170| m2170_8(ClassWithDestructor) = Chi : total:m2170_2, partial:m2170_7
13047+ # 2171| r2171_1(glval<bool>) = VariableAddress[b#init] :
13048+ # 2171| r2171_2(bool) = Load[b#init] : &:r2171_1, ~m2170_6
13049+ # 2171| v2171_3(void) = ConditionalBranch : r2171_2
13050+ #-----| False -> Block 1
13051+ #-----| True -> Block 2
13052+
13053+ # 2171| Block 1
13054+ # 2171| r2171_4(glval<ClassWithDestructor>) = VariableAddress[b] :
13055+ #-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
13056+ #-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2171_4
13057+ #-----| m0_3(unknown) = ^CallSideEffect : ~m2170_6
13058+ #-----| m0_4(unknown) = Chi : total:m2170_6, partial:m0_3
13059+ #-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2171_4
13060+ #-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5
13061+ # 2171| r2171_5(bool) = Constant[1] :
13062+ # 2171| m2171_6(bool) = Store[b#init] : &:r2171_1, r2171_5
13063+ # 2171| m2171_7(unknown) = Chi : total:m0_6, partial:m2171_6
13064+ #-----| Goto -> Block 2
13065+
13066+ # 2172| Block 2
13067+ # 2172| m2172_1(unknown) = Phi : from 0:~m2170_6, from 1:~m2171_7
13068+ # 2172| v2172_2(void) = NoOp :
13069+ # 2169| v2169_5(void) = ReturnVoid :
13070+ # 2169| v2169_6(void) = AliasedUse : ~m2172_1
13071+ # 2169| v2169_7(void) = ExitFunction :
13072+
13073+ # 2174| void static_variable_with_destructor_2()
13074+ # 2174| Block 0
13075+ # 2174| v2174_1(void) = EnterFunction :
13076+ # 2174| m2174_2(unknown) = AliasedDefinition :
13077+ # 2174| m2174_3(unknown) = InitializeNonLocal :
13078+ # 2174| m2174_4(unknown) = Chi : total:m2174_2, partial:m2174_3
13079+ # 2175| r2175_1(glval<bool>) = VariableAddress[a#init] :
13080+ # 2175| r2175_2(bool) = Load[a#init] : &:r2175_1, ~m2174_3
13081+ # 2175| v2175_3(void) = ConditionalBranch : r2175_2
13082+ #-----| False -> Block 1
13083+ #-----| True -> Block 2
13084+
13085+ # 2175| Block 1
13086+ # 2175| r2175_4(glval<ClassWithDestructor>) = VariableAddress[a] :
13087+ #-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
13088+ #-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2175_4
13089+ #-----| m0_3(unknown) = ^CallSideEffect : ~m2174_4
13090+ #-----| m0_4(unknown) = Chi : total:m2174_4, partial:m0_3
13091+ #-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2175_4
13092+ #-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5
13093+ # 2175| r2175_5(bool) = Constant[1] :
13094+ # 2175| m2175_6(bool) = Store[a#init] : &:r2175_1, r2175_5
13095+ # 2175| m2175_7(unknown) = Chi : total:m0_6, partial:m2175_6
13096+ #-----| Goto -> Block 2
13097+
13098+ # 2176| Block 2
13099+ # 2176| m2176_1(unknown) = Phi : from 0:~m2174_4, from 1:~m2175_7
13100+ # 2176| r2176_2(glval<ClassWithDestructor>) = VariableAddress[b] :
13101+ # 2176| m2176_3(ClassWithDestructor) = Uninitialized[b] : &:r2176_2
13102+ # 2176| r2176_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
13103+ # 2176| v2176_5(void) = Call[ClassWithDestructor] : func:r2176_4, this:r2176_2
13104+ # 2176| m2176_6(unknown) = ^CallSideEffect : ~m2176_1
13105+ # 2176| m2176_7(unknown) = Chi : total:m2176_1, partial:m2176_6
13106+ # 2176| m2176_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2176_2
13107+ # 2176| m2176_9(ClassWithDestructor) = Chi : total:m2176_3, partial:m2176_8
13108+ # 2177| v2177_1(void) = NoOp :
13109+ # 2174| v2174_5(void) = ReturnVoid :
13110+ # 2174| v2174_6(void) = AliasedUse : ~m2176_7
13111+ # 2174| v2174_7(void) = ExitFunction :
13112+
13113+ # 2179| void static_variable_with_destructor_3()
13114+ # 2179| Block 0
13115+ # 2179| v2179_1(void) = EnterFunction :
13116+ # 2179| m2179_2(unknown) = AliasedDefinition :
13117+ # 2179| m2179_3(unknown) = InitializeNonLocal :
13118+ # 2179| m2179_4(unknown) = Chi : total:m2179_2, partial:m2179_3
13119+ # 2180| r2180_1(glval<ClassWithDestructor>) = VariableAddress[a] :
13120+ # 2180| m2180_2(ClassWithDestructor) = Uninitialized[a] : &:r2180_1
13121+ # 2180| r2180_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
13122+ # 2180| v2180_4(void) = Call[ClassWithDestructor] : func:r2180_3, this:r2180_1
13123+ # 2180| m2180_5(unknown) = ^CallSideEffect : ~m2179_4
13124+ # 2180| m2180_6(unknown) = Chi : total:m2179_4, partial:m2180_5
13125+ # 2180| m2180_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2180_1
13126+ # 2180| m2180_8(ClassWithDestructor) = Chi : total:m2180_2, partial:m2180_7
13127+ # 2181| r2181_1(glval<ClassWithDestructor>) = VariableAddress[b] :
13128+ # 2181| m2181_2(ClassWithDestructor) = Uninitialized[b] : &:r2181_1
13129+ # 2181| r2181_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
13130+ # 2181| v2181_4(void) = Call[ClassWithDestructor] : func:r2181_3, this:r2181_1
13131+ # 2181| m2181_5(unknown) = ^CallSideEffect : ~m2180_6
13132+ # 2181| m2181_6(unknown) = Chi : total:m2180_6, partial:m2181_5
13133+ # 2181| m2181_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2181_1
13134+ # 2181| m2181_8(ClassWithDestructor) = Chi : total:m2181_2, partial:m2181_7
13135+ # 2182| r2182_1(glval<bool>) = VariableAddress[c#init] :
13136+ # 2182| r2182_2(bool) = Load[c#init] : &:r2182_1, ~m2181_6
13137+ # 2182| v2182_3(void) = ConditionalBranch : r2182_2
13138+ #-----| False -> Block 1
13139+ #-----| True -> Block 2
13140+
13141+ # 2182| Block 1
13142+ # 2182| r2182_4(glval<ClassWithDestructor>) = VariableAddress[c] :
13143+ #-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
13144+ #-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2182_4
13145+ #-----| m0_3(unknown) = ^CallSideEffect : ~m2181_6
13146+ #-----| m0_4(unknown) = Chi : total:m2181_6, partial:m0_3
13147+ #-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2182_4
13148+ #-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5
13149+ # 2182| r2182_5(bool) = Constant[1] :
13150+ # 2182| m2182_6(bool) = Store[c#init] : &:r2182_1, r2182_5
13151+ # 2182| m2182_7(unknown) = Chi : total:m0_6, partial:m2182_6
13152+ #-----| Goto -> Block 2
13153+
13154+ # 2183| Block 2
13155+ # 2183| m2183_1(unknown) = Phi : from 0:~m2181_6, from 1:~m2182_7
13156+ # 2183| v2183_2(void) = NoOp :
13157+ # 2179| v2179_5(void) = ReturnVoid :
13158+ # 2179| v2179_6(void) = AliasedUse : ~m2183_1
13159+ # 2179| v2179_7(void) = ExitFunction :
13160+
13161+ # 2185| ClassWithDestructor global_class_with_destructor
13162+ # 2185| Block 0
13163+ # 2185| v2185_1(void) = EnterFunction :
13164+ # 2185| m2185_2(unknown) = AliasedDefinition :
13165+ # 2185| r2185_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] :
13166+ # 2185| r2185_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
13167+ # 2185| v2185_5(void) = Call[ClassWithDestructor] : func:r2185_4, this:r2185_3
13168+ # 2185| m2185_6(unknown) = ^CallSideEffect : ~m2185_2
13169+ # 2185| m2185_7(unknown) = Chi : total:m2185_2, partial:m2185_6
13170+ # 2185| m2185_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2185_3
13171+ # 2185| m2185_9(unknown) = Chi : total:m2185_7, partial:m2185_8
13172+ # 2185| v2185_10(void) = ReturnVoid :
13173+ # 2185| v2185_11(void) = AliasedUse : ~m2185_9
13174+ # 2185| v2185_12(void) = ExitFunction :
13175+
1303313176perf-regression.cpp:
1303413177# 6| void Big::Big()
1303513178# 6| Block 0
0 commit comments