@@ -17958,6 +17958,152 @@ ir.cpp:
17958
17958
# 2484| v2484_8(void) = AliasedUse : ~m2497_4
17959
17959
# 2484| v2484_9(void) = ExitFunction :
17960
17960
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
+
17961
18107
perf-regression.cpp:
17962
18108
# 6| void Big::Big()
17963
18109
# 6| Block 0
0 commit comments