@@ -17958,6 +17958,165 @@ 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
+ # 2505| v2505_1(void) = NoOp :
17986
+ # 2506| r2506_1(glval<ClassWithDestructor>) = VariableAddress[x] :
17987
+ # 2506| r2506_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
17988
+ # 2506| v2506_3(void) = Call[~ClassWithDestructor] : func:r2506_2, this:r2506_1
17989
+ # 2506| m2506_4(unknown) = ^CallSideEffect : ~m2504_6
17990
+ # 2506| m2506_5(unknown) = Chi : total:m2504_6, partial:m2506_4
17991
+ # 2506| v2506_6(void) = ^IndirectReadSideEffect[-1] : &:r2506_1, m2504_8
17992
+ # 2506| m2506_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2506_1
17993
+ # 2506| m2506_8(ClassWithDestructor) = Chi : total:m2504_8, partial:m2506_7
17994
+ # 2506| r2506_9(glval<ClassWithDestructor>) = VariableAddress[x] :
17995
+ # 2506| r2506_10(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
17996
+ # 2506| v2506_11(void) = Call[~ClassWithDestructor] : func:r2506_10, this:r2506_9
17997
+ # 2506| m2506_12(unknown) = ^CallSideEffect : ~m2506_5
17998
+ # 2506| m2506_13(unknown) = Chi : total:m2506_5, partial:m2506_12
17999
+ # 2506| v2506_14(void) = ^IndirectReadSideEffect[-1] : &:r2506_9, m2506_8
18000
+ # 2506| m2506_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2506_9
18001
+ # 2506| m2506_16(ClassWithDestructor) = Chi : total:m2506_8, partial:m2506_15
18002
+ #-----| Goto -> Block 2
18003
+
18004
+ # 2507| Block 2
18005
+ # 2507| m2507_1(unknown) = Phi : from 0:~m2501_4, from 1:~m2506_13
18006
+ # 2507| v2507_2(void) = NoOp :
18007
+ # 2508| v2508_1(void) = NoOp :
18008
+ # 2501| v2501_7(void) = ReturnVoid :
18009
+ # 2501| v2501_8(void) = AliasedUse : ~m2507_1
18010
+ # 2501| v2501_9(void) = ExitFunction :
18011
+
18012
+ # 2510| void destruction_in_switch_2(int)
18013
+ # 2510| Block 0
18014
+ # 2510| v2510_1(void) = EnterFunction :
18015
+ # 2510| m2510_2(unknown) = AliasedDefinition :
18016
+ # 2510| m2510_3(unknown) = InitializeNonLocal :
18017
+ # 2510| m2510_4(unknown) = Chi : total:m2510_2, partial:m2510_3
18018
+ # 2510| r2510_5(glval<int>) = VariableAddress[c] :
18019
+ # 2510| m2510_6(int) = InitializeParameter[c] : &:r2510_5
18020
+ # 2511| r2511_1(glval<ClassWithDestructor>) = VariableAddress[y] :
18021
+ # 2511| m2511_2(ClassWithDestructor) = Uninitialized[y] : &:r2511_1
18022
+ # 2511| r2511_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
18023
+ # 2511| v2511_4(void) = Call[ClassWithDestructor] : func:r2511_3, this:r2511_1
18024
+ # 2511| m2511_5(unknown) = ^CallSideEffect : ~m2510_4
18025
+ # 2511| m2511_6(unknown) = Chi : total:m2510_4, partial:m2511_5
18026
+ # 2511| m2511_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2511_1
18027
+ # 2511| m2511_8(ClassWithDestructor) = Chi : total:m2511_2, partial:m2511_7
18028
+ # 2511| r2511_9(glval<int>) = VariableAddress[c] :
18029
+ # 2511| r2511_10(int) = Load[c] : &:r2511_9, m2510_6
18030
+ # 2511| v2511_11(void) = Switch : r2511_10
18031
+ #-----| Case[0] -> Block 1
18032
+ #-----| Default -> Block 2
18033
+
18034
+ # 2512| Block 1
18035
+ # 2512| v2512_1(void) = NoOp :
18036
+ # 2513| v2513_1(void) = NoOp :
18037
+ #-----| Goto -> Block 3
18038
+
18039
+ # 2515| Block 2
18040
+ # 2515| v2515_1(void) = NoOp :
18041
+ # 2516| v2516_1(void) = NoOp :
18042
+ #-----| Goto -> Block 3
18043
+
18044
+ # 2518| Block 3
18045
+ # 2518| v2518_1(void) = NoOp :
18046
+ # 2519| v2519_1(void) = NoOp :
18047
+ # 2510| v2510_7(void) = ReturnVoid :
18048
+ # 2510| v2510_8(void) = AliasedUse : ~m2511_6
18049
+ # 2510| v2510_9(void) = ExitFunction :
18050
+
18051
+ # 2521| void destruction_in_switch_3(int)
18052
+ # 2521| Block 0
18053
+ # 2521| v2521_1(void) = EnterFunction :
18054
+ # 2521| m2521_2(unknown) = AliasedDefinition :
18055
+ # 2521| m2521_3(unknown) = InitializeNonLocal :
18056
+ # 2521| m2521_4(unknown) = Chi : total:m2521_2, partial:m2521_3
18057
+ # 2521| r2521_5(glval<int>) = VariableAddress[c] :
18058
+ # 2521| m2521_6(int) = InitializeParameter[c] : &:r2521_5
18059
+ # 2522| r2522_1(glval<ClassWithDestructor>) = VariableAddress[y] :
18060
+ # 2522| m2522_2(ClassWithDestructor) = Uninitialized[y] : &:r2522_1
18061
+ # 2522| r2522_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
18062
+ # 2522| v2522_4(void) = Call[ClassWithDestructor] : func:r2522_3, this:r2522_1
18063
+ # 2522| m2522_5(unknown) = ^CallSideEffect : ~m2521_4
18064
+ # 2522| m2522_6(unknown) = Chi : total:m2521_4, partial:m2522_5
18065
+ # 2522| m2522_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2522_1
18066
+ # 2522| m2522_8(ClassWithDestructor) = Chi : total:m2522_2, partial:m2522_7
18067
+ # 2522| r2522_9(glval<int>) = VariableAddress[c] :
18068
+ # 2522| r2522_10(int) = Load[c] : &:r2522_9, m2521_6
18069
+ # 2522| v2522_11(void) = Switch : r2522_10
18070
+ #-----| Case[0] -> Block 1
18071
+ #-----| Default -> Block 2
18072
+
18073
+ # 2523| Block 1
18074
+ # 2523| v2523_1(void) = NoOp :
18075
+ # 2524| r2524_1(glval<ClassWithDestructor>) = VariableAddress[x] :
18076
+ # 2524| m2524_2(ClassWithDestructor) = Uninitialized[x] : &:r2524_1
18077
+ # 2524| r2524_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
18078
+ # 2524| v2524_4(void) = Call[ClassWithDestructor] : func:r2524_3, this:r2524_1
18079
+ # 2524| m2524_5(unknown) = ^CallSideEffect : ~m2522_6
18080
+ # 2524| m2524_6(unknown) = Chi : total:m2522_6, partial:m2524_5
18081
+ # 2524| m2524_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2524_1
18082
+ # 2524| m2524_8(ClassWithDestructor) = Chi : total:m2524_2, partial:m2524_7
18083
+ # 2525| v2525_1(void) = NoOp :
18084
+ # 2526| r2526_1(glval<ClassWithDestructor>) = VariableAddress[x] :
18085
+ # 2526| r2526_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
18086
+ # 2526| v2526_3(void) = Call[~ClassWithDestructor] : func:r2526_2, this:r2526_1
18087
+ # 2526| m2526_4(unknown) = ^CallSideEffect : ~m2524_6
18088
+ # 2526| m2526_5(unknown) = Chi : total:m2524_6, partial:m2526_4
18089
+ # 2526| v2526_6(void) = ^IndirectReadSideEffect[-1] : &:r2526_1, m2524_8
18090
+ # 2526| m2526_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2526_1
18091
+ # 2526| m2526_8(ClassWithDestructor) = Chi : total:m2524_8, partial:m2526_7
18092
+ # 2530| r2530_1(glval<ClassWithDestructor>) = VariableAddress[y] :
18093
+ # 2530| r2530_2(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
18094
+ # 2530| v2530_3(void) = Call[~ClassWithDestructor] : func:r2530_2, this:r2530_1
18095
+ # 2530| m2530_4(unknown) = ^CallSideEffect : ~m2526_5
18096
+ # 2530| m2530_5(unknown) = Chi : total:m2526_5, partial:m2530_4
18097
+ # 2530| v2530_6(void) = ^IndirectReadSideEffect[-1] : &:r2530_1, m2522_8
18098
+ # 2530| m2530_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2530_1
18099
+ # 2530| m2530_8(ClassWithDestructor) = Chi : total:m2522_8, partial:m2530_7
18100
+ # 2526| r2526_9(glval<ClassWithDestructor>) = VariableAddress[x] :
18101
+ # 2526| r2526_10(glval<unknown>) = FunctionAddress[~ClassWithDestructor] :
18102
+ # 2526| v2526_11(void) = Call[~ClassWithDestructor] : func:r2526_10, this:r2526_9
18103
+ # 2526| m2526_12(unknown) = ^CallSideEffect : ~m2530_5
18104
+ # 2526| m2526_13(unknown) = Chi : total:m2530_5, partial:m2526_12
18105
+ # 2526| v2526_14(void) = ^IndirectReadSideEffect[-1] : &:r2526_9, m2526_8
18106
+ # 2526| m2526_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2526_9
18107
+ # 2526| m2526_16(ClassWithDestructor) = Chi : total:m2526_8, partial:m2526_15
18108
+ #-----| Goto -> Block 2
18109
+
18110
+ # 2527| Block 2
18111
+ # 2527| m2527_1(unknown) = Phi : from 0:~m2522_6, from 1:~m2526_13
18112
+ # 2527| v2527_2(void) = NoOp :
18113
+ # 2528| v2528_1(void) = NoOp :
18114
+ # 2530| v2530_9(void) = NoOp :
18115
+ # 2531| v2531_1(void) = NoOp :
18116
+ # 2521| v2521_7(void) = ReturnVoid :
18117
+ # 2521| v2521_8(void) = AliasedUse : ~m2527_1
18118
+ # 2521| v2521_9(void) = ExitFunction :
18119
+
17961
18120
perf-regression.cpp:
17962
18121
# 6| void Big::Big()
17963
18122
# 6| Block 0
0 commit comments