@@ -17958,6 +17958,152 @@ ir.cpp:
1795817958# 2484| v2484_8(void) = AliasedUse : ~m2497_4
1795917959# 2484| v2484_9(void) = ExitFunction :
1796017960
17961+ # 2501| void destruction_in_switch_1(int)
17962+ # 2501| Block 0
17963+ # 2501| v2501_1(void) = EnterFunction :
17964+ # 2501| m2501_2(unknown) = AliasedDefinition :
17965+ # 2501| m2501_3(unknown) = InitializeNonLocal :
17966+ # 2501| m2501_4(unknown) = Chi : total:m2501_2, partial:m2501_3
17967+ # 2501| r2501_5(glval<int>) = VariableAddress[c] :
17968+ # 2501| m2501_6(int) = InitializeParameter[c] : &:r2501_5
17969+ # 2502| r2502_1(glval<int>) = VariableAddress[c] :
17970+ # 2502| r2502_2(int) = Load[c] : &:r2502_1, m2501_6
17971+ # 2502| v2502_3(void) = Switch : r2502_2
17972+ #-----| Case[0] -> Block 1
17973+ #-----| Default -> Block 2
17974+
17975+ # 2503| Block 1
17976+ # 2503| v2503_1(void) = NoOp :
17977+ # 2504| r2504_1(glval<ClassWithDestructor>) = VariableAddress[x] :
17978+ # 2504| m2504_2(ClassWithDestructor) = Uninitialized[x] : &:r2504_1
17979+ # 2504| r2504_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
17980+ # 2504| v2504_4(void) = Call[ClassWithDestructor] : func:r2504_3, this:r2504_1
17981+ # 2504| m2504_5(unknown) = ^CallSideEffect : ~m2501_4
17982+ # 2504| m2504_6(unknown) = Chi : total:m2501_4, partial:m2504_5
17983+ # 2504| m2504_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2504_1
17984+ # 2504| m2504_8(ClassWithDestructor) = Chi : total:m2504_2, partial:m2504_7
17985+ # 2506| r2506_1(glval<ClassWithDestructor>) = VariableAddress[x] :
17986+ # 2506| r2506_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
17987+ # 2506| v2506_3(void) = Call[~ClassWithDestructor] : func:r2506_2, this:r2506_1
17988+ # 2506| m2506_4(unknown) = ^CallSideEffect : ~m2504_6
17989+ # 2506| m2506_5(unknown) = Chi : total:m2504_6, partial:m2506_4
17990+ # 2506| v2506_6(void) = ^IndirectReadSideEffect[-1] : &:r2506_1, m2504_8
17991+ # 2506| m2506_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2506_1
17992+ # 2506| m2506_8(ClassWithDestructor) = Chi : total:m2504_8, partial:m2506_7
17993+ # 2505| v2505_1(void) = NoOp :
17994+ #-----| Goto -> Block 2
17995+
17996+ # 2507| Block 2
17997+ # 2507| m2507_1(unknown) = Phi : from 0:~m2501_4, from 1:~m2506_5
17998+ # 2507| v2507_2(void) = NoOp :
17999+ # 2508| v2508_1(void) = NoOp :
18000+ # 2501| v2501_7(void) = ReturnVoid :
18001+ # 2501| v2501_8(void) = AliasedUse : ~m2507_1
18002+ # 2501| v2501_9(void) = ExitFunction :
18003+
18004+ # 2510| void destruction_in_switch_2(int)
18005+ # 2510| Block 0
18006+ # 2510| v2510_1(void) = EnterFunction :
18007+ # 2510| m2510_2(unknown) = AliasedDefinition :
18008+ # 2510| m2510_3(unknown) = InitializeNonLocal :
18009+ # 2510| m2510_4(unknown) = Chi : total:m2510_2, partial:m2510_3
18010+ # 2510| r2510_5(glval<int>) = VariableAddress[c] :
18011+ # 2510| m2510_6(int) = InitializeParameter[c] : &:r2510_5
18012+ # 2511| r2511_1(glval<ClassWithDestructor>) = VariableAddress[y] :
18013+ # 2511| m2511_2(ClassWithDestructor) = Uninitialized[y] : &:r2511_1
18014+ # 2511| r2511_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
18015+ # 2511| v2511_4(void) = Call[ClassWithDestructor] : func:r2511_3, this:r2511_1
18016+ # 2511| m2511_5(unknown) = ^CallSideEffect : ~m2510_4
18017+ # 2511| m2511_6(unknown) = Chi : total:m2510_4, partial:m2511_5
18018+ # 2511| m2511_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2511_1
18019+ # 2511| m2511_8(ClassWithDestructor) = Chi : total:m2511_2, partial:m2511_7
18020+ # 2511| r2511_9(glval<int>) = VariableAddress[c] :
18021+ # 2511| r2511_10(int) = Load[c] : &:r2511_9, m2510_6
18022+ # 2511| v2511_11(void) = Switch : r2511_10
18023+ #-----| Case[0] -> Block 1
18024+ #-----| Default -> Block 2
18025+
18026+ # 2512| Block 1
18027+ # 2512| v2512_1(void) = NoOp :
18028+ # 2513| v2513_1(void) = NoOp :
18029+ #-----| Goto -> Block 3
18030+
18031+ # 2515| Block 2
18032+ # 2515| v2515_1(void) = NoOp :
18033+ # 2516| v2516_1(void) = NoOp :
18034+ #-----| Goto -> Block 3
18035+
18036+ # 2518| Block 3
18037+ # 2518| v2518_1(void) = NoOp :
18038+ # 2519| v2519_1(void) = NoOp :
18039+ # 2510| v2510_7(void) = ReturnVoid :
18040+ # 2510| v2510_8(void) = AliasedUse : ~m2511_6
18041+ # 2510| v2510_9(void) = ExitFunction :
18042+
18043+ # 2521| void destruction_in_switch_3(int)
18044+ # 2521| Block 0
18045+ # 2521| v2521_1(void) = EnterFunction :
18046+ # 2521| m2521_2(unknown) = AliasedDefinition :
18047+ # 2521| m2521_3(unknown) = InitializeNonLocal :
18048+ # 2521| m2521_4(unknown) = Chi : total:m2521_2, partial:m2521_3
18049+ # 2521| r2521_5(glval<int>) = VariableAddress[c] :
18050+ # 2521| m2521_6(int) = InitializeParameter[c] : &:r2521_5
18051+ # 2522| r2522_1(glval<ClassWithDestructor>) = VariableAddress[y] :
18052+ # 2522| m2522_2(ClassWithDestructor) = Uninitialized[y] : &:r2522_1
18053+ # 2522| r2522_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
18054+ # 2522| v2522_4(void) = Call[ClassWithDestructor] : func:r2522_3, this:r2522_1
18055+ # 2522| m2522_5(unknown) = ^CallSideEffect : ~m2521_4
18056+ # 2522| m2522_6(unknown) = Chi : total:m2521_4, partial:m2522_5
18057+ # 2522| m2522_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2522_1
18058+ # 2522| m2522_8(ClassWithDestructor) = Chi : total:m2522_2, partial:m2522_7
18059+ # 2522| r2522_9(glval<int>) = VariableAddress[c] :
18060+ # 2522| r2522_10(int) = Load[c] : &:r2522_9, m2521_6
18061+ # 2522| v2522_11(void) = Switch : r2522_10
18062+ #-----| Case[0] -> Block 1
18063+ #-----| Default -> Block 2
18064+
18065+ # 2523| Block 1
18066+ # 2523| v2523_1(void) = NoOp :
18067+ # 2524| r2524_1(glval<ClassWithDestructor>) = VariableAddress[x] :
18068+ # 2524| m2524_2(ClassWithDestructor) = Uninitialized[x] : &:r2524_1
18069+ # 2524| r2524_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
18070+ # 2524| v2524_4(void) = Call[ClassWithDestructor] : func:r2524_3, this:r2524_1
18071+ # 2524| m2524_5(unknown) = ^CallSideEffect : ~m2522_6
18072+ # 2524| m2524_6(unknown) = Chi : total:m2522_6, partial:m2524_5
18073+ # 2524| m2524_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2524_1
18074+ # 2524| m2524_8(ClassWithDestructor) = Chi : total:m2524_2, partial:m2524_7
18075+ # 2526| r2526_1(glval<ClassWithDestructor>) = VariableAddress[x] :
18076+ # 2526| r2526_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
18077+ # 2526| v2526_3(void) = Call[~ClassWithDestructor] : func:r2526_2, this:r2526_1
18078+ # 2526| m2526_4(unknown) = ^CallSideEffect : ~m2524_6
18079+ # 2526| m2526_5(unknown) = Chi : total:m2524_6, partial:m2526_4
18080+ # 2526| v2526_6(void) = ^IndirectReadSideEffect[-1] : &:r2526_1, m2524_8
18081+ # 2526| m2526_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2526_1
18082+ # 2526| m2526_8(ClassWithDestructor) = Chi : total:m2524_8, partial:m2526_7
18083+ # 2530| r2530_1(glval<ClassWithDestructor>) = VariableAddress[y] :
18084+ # 2530| r2530_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
18085+ # 2530| v2530_3(void) = Call[~ClassWithDestructor] : func:r2530_2, this:r2530_1
18086+ # 2530| m2530_4(unknown) = ^CallSideEffect : ~m2526_5
18087+ # 2530| m2530_5(unknown) = Chi : total:m2526_5, partial:m2530_4
18088+ # 2530| v2530_6(void) = ^IndirectReadSideEffect[-1] : &:r2530_1, m2522_8
18089+ # 2530| m2530_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2530_1
18090+ # 2530| m2530_8(ClassWithDestructor) = Chi : total:m2522_8, partial:m2530_7
18091+ # 2525| v2525_1(void) = NoOp :
18092+ #-----| Goto -> Block 3
18093+
18094+ # 2527| Block 2
18095+ # 2527| v2527_1(void) = NoOp :
18096+ # 2528| v2528_1(void) = NoOp :
18097+ #-----| Goto -> Block 3
18098+
18099+ # 2530| Block 3
18100+ # 2530| m2530_9(unknown) = Phi : from 1:~m2530_5, from 2:~m2522_6
18101+ # 2530| v2530_10(void) = NoOp :
18102+ # 2531| v2531_1(void) = NoOp :
18103+ # 2521| v2521_7(void) = ReturnVoid :
18104+ # 2521| v2521_8(void) = AliasedUse : ~m2530_9
18105+ # 2521| v2521_9(void) = ExitFunction :
18106+
1796118107perf-regression.cpp:
1796218108# 6| void Big::Big()
1796318109# 6| Block 0
0 commit comments