@@ -13030,6 +13030,149 @@ ir.cpp:
13030
13030
# 2137| Block 21
13031
13031
# 2137| v2137_13(void) = Unreached :
13032
13032
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
+
13033
13176
perf-regression.cpp:
13034
13177
# 6| void Big::Big()
13035
13178
# 6| Block 0
0 commit comments