@@ -12473,6 +12473,160 @@ ir.cpp:
12473
12473
# 2121| v2121_6(void) = AliasedUse : ~m2122_8
12474
12474
# 2121| v2121_7(void) = ExitFunction :
12475
12475
12476
+ # 2125| void ClassWithDestructor::ClassWithDestructor(ClassWithDestructor const&)
12477
+ # 2125| Block 0
12478
+ # 2125| v2125_1(void) = EnterFunction :
12479
+ # 2125| m2125_2(unknown) = AliasedDefinition :
12480
+ # 2125| m2125_3(unknown) = InitializeNonLocal :
12481
+ # 2125| m2125_4(unknown) = Chi : total:m2125_2, partial:m2125_3
12482
+ # 2125| r2125_5(glval<unknown>) = VariableAddress[#this] :
12483
+ # 2125| m2125_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2125_5
12484
+ # 2125| r2125_7(glval<ClassWithDestructor>) = Load[#this] : &:r2125_5, m2125_6
12485
+ # 2125| m2125_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2125_7
12486
+ #-----| r0_1(glval<ClassWithDestructor &>) = VariableAddress[(unnamed parameter 0)] :
12487
+ #-----| m0_2(ClassWithDestructor &) = InitializeParameter[(unnamed parameter 0)] : &:r0_1
12488
+ #-----| r0_3(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r0_1, m0_2
12489
+ #-----| m0_4(unknown) = InitializeIndirection[(unnamed parameter 0)] : &:r0_3
12490
+ # 2125| r2125_9(glval<char *>) = FieldAddress[x] : m2125_6
12491
+ # 2125| r2125_10(glval<ClassWithDestructor &>) = VariableAddress[(unnamed parameter 0)] :
12492
+ # 2125| r2125_11(ClassWithDestructor &) = Load[(unnamed parameter 0)] : &:r2125_10, m0_2
12493
+ # 2125| r2125_12(glval<ClassWithDestructor>) = CopyValue : r2125_11
12494
+ # 2125| r2125_13(glval<char *>) = FieldAddress[x] : r2125_12
12495
+ # 2125| r2125_14(char *) = Load[?] : &:r2125_13, ~m0_4
12496
+ # 2125| m2125_15(char *) = Store[?] : &:r2125_9, r2125_14
12497
+ # 2125| m2125_16(unknown) = Chi : total:m2125_8, partial:m2125_15
12498
+ # 2125| v2125_17(void) = NoOp :
12499
+ # 2125| v2125_18(void) = ReturnIndirection[#this] : &:r2125_7, m2125_16
12500
+ #-----| v0_5(void) = ReturnIndirection[(unnamed parameter 0)] : &:r0_3, m0_4
12501
+ # 2125| v2125_19(void) = ReturnVoid :
12502
+ # 2125| v2125_20(void) = AliasedUse : m2125_3
12503
+ # 2125| v2125_21(void) = ExitFunction :
12504
+
12505
+ # 2128| void ClassWithDestructor::ClassWithDestructor()
12506
+ # 2128| Block 0
12507
+ # 2128| v2128_1(void) = EnterFunction :
12508
+ # 2128| m2128_2(unknown) = AliasedDefinition :
12509
+ # 2128| m2128_3(unknown) = InitializeNonLocal :
12510
+ # 2128| m2128_4(unknown) = Chi : total:m2128_2, partial:m2128_3
12511
+ # 2128| r2128_5(glval<unknown>) = VariableAddress[#this] :
12512
+ # 2128| m2128_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2128_5
12513
+ # 2128| r2128_7(glval<ClassWithDestructor>) = Load[#this] : &:r2128_5, m2128_6
12514
+ # 2128| m2128_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2128_7
12515
+ # 2128| r2128_9(glval<unknown>) = FunctionAddress[operator new] :
12516
+ # 2128| r2128_10(unsigned long) = Constant[1] :
12517
+ # 2128| r2128_11(void *) = Call[operator new] : func:r2128_9, 0:r2128_10
12518
+ # 2128| m2128_12(unknown) = ^CallSideEffect : ~m2128_4
12519
+ # 2128| m2128_13(unknown) = Chi : total:m2128_4, partial:m2128_12
12520
+ # 2128| m2128_14(unknown) = ^InitializeDynamicAllocation : &:r2128_11
12521
+ # 2128| r2128_15(char *) = Convert : r2128_11
12522
+ # 2128| r2128_16(glval<unknown>) = VariableAddress[#this] :
12523
+ # 2128| r2128_17(ClassWithDestructor *) = Load[#this] : &:r2128_16, m2128_6
12524
+ # 2128| r2128_18(glval<char *>) = FieldAddress[x] : r2128_17
12525
+ # 2128| m2128_19(char *) = Store[?] : &:r2128_18, r2128_15
12526
+ # 2128| m2128_20(unknown) = Chi : total:m2128_8, partial:m2128_19
12527
+ # 2128| v2128_21(void) = NoOp :
12528
+ # 2128| v2128_22(void) = ReturnIndirection[#this] : &:r2128_7, m2128_20
12529
+ # 2128| v2128_23(void) = ReturnVoid :
12530
+ # 2128| v2128_24(void) = AliasedUse : ~m2128_13
12531
+ # 2128| v2128_25(void) = ExitFunction :
12532
+
12533
+ # 2129| void ClassWithDestructor::~ClassWithDestructor()
12534
+ # 2129| Block 0
12535
+ # 2129| v2129_1(void) = EnterFunction :
12536
+ # 2129| m2129_2(unknown) = AliasedDefinition :
12537
+ # 2129| m2129_3(unknown) = InitializeNonLocal :
12538
+ # 2129| m2129_4(unknown) = Chi : total:m2129_2, partial:m2129_3
12539
+ # 2129| r2129_5(glval<unknown>) = VariableAddress[#this] :
12540
+ # 2129| m2129_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2129_5
12541
+ # 2129| r2129_7(glval<ClassWithDestructor>) = Load[#this] : &:r2129_5, m2129_6
12542
+ # 2129| m2129_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2129_7
12543
+ # 2129| r2129_9(glval<unknown>) = FunctionAddress[operator delete] :
12544
+ # 2129| r2129_10(glval<unknown>) = VariableAddress[#this] :
12545
+ # 2129| r2129_11(ClassWithDestructor *) = Load[#this] : &:r2129_10, m2129_6
12546
+ # 2129| r2129_12(glval<char *>) = FieldAddress[x] : r2129_11
12547
+ # 2129| r2129_13(char *) = Load[?] : &:r2129_12, ~m2129_8
12548
+ # 2129| v2129_14(void) = Call[operator delete] : func:r2129_9, 0:r2129_13
12549
+ # 2129| m2129_15(unknown) = ^CallSideEffect : ~m2129_4
12550
+ # 2129| m2129_16(unknown) = Chi : total:m2129_4, partial:m2129_15
12551
+ # 2129| v2129_17(void) = NoOp :
12552
+ # 2129| v2129_18(void) = ReturnIndirection[#this] : &:r2129_7, m2129_8
12553
+ # 2129| v2129_19(void) = ReturnVoid :
12554
+ # 2129| v2129_20(void) = AliasedUse : ~m2129_16
12555
+ # 2129| v2129_21(void) = ExitFunction :
12556
+
12557
+ # 2131| void ClassWithDestructor::set_x(char)
12558
+ # 2131| Block 0
12559
+ # 2131| v2131_1(void) = EnterFunction :
12560
+ # 2131| m2131_2(unknown) = AliasedDefinition :
12561
+ # 2131| m2131_3(unknown) = InitializeNonLocal :
12562
+ # 2131| m2131_4(unknown) = Chi : total:m2131_2, partial:m2131_3
12563
+ # 2131| r2131_5(glval<unknown>) = VariableAddress[#this] :
12564
+ # 2131| m2131_6(glval<ClassWithDestructor>) = InitializeParameter[#this] : &:r2131_5
12565
+ # 2131| r2131_7(glval<ClassWithDestructor>) = Load[#this] : &:r2131_5, m2131_6
12566
+ # 2131| m2131_8(ClassWithDestructor) = InitializeIndirection[#this] : &:r2131_7
12567
+ # 2131| r2131_9(glval<char>) = VariableAddress[y] :
12568
+ # 2131| m2131_10(char) = InitializeParameter[y] : &:r2131_9
12569
+ # 2131| r2131_11(glval<char>) = VariableAddress[y] :
12570
+ # 2131| r2131_12(char) = Load[y] : &:r2131_11, m2131_10
12571
+ # 2131| r2131_13(glval<unknown>) = VariableAddress[#this] :
12572
+ # 2131| r2131_14(ClassWithDestructor *) = Load[#this] : &:r2131_13, m2131_6
12573
+ # 2131| r2131_15(glval<char *>) = FieldAddress[x] : r2131_14
12574
+ # 2131| r2131_16(char *) = Load[?] : &:r2131_15, ~m2131_8
12575
+ # 2131| r2131_17(glval<char>) = CopyValue : r2131_16
12576
+ # 2131| m2131_18(char) = Store[?] : &:r2131_17, r2131_12
12577
+ # 2131| m2131_19(unknown) = Chi : total:m2131_4, partial:m2131_18
12578
+ # 2131| v2131_20(void) = NoOp :
12579
+ # 2131| v2131_21(void) = ReturnIndirection[#this] : &:r2131_7, m2131_8
12580
+ # 2131| v2131_22(void) = ReturnVoid :
12581
+ # 2131| v2131_23(void) = AliasedUse : ~m2131_19
12582
+ # 2131| v2131_24(void) = ExitFunction :
12583
+
12584
+ # 2134| bool initialization_with_destructor_bool
12585
+ # 2134| Block 0
12586
+ # 2134| v2134_1(void) = EnterFunction :
12587
+ # 2134| m2134_2(unknown) = AliasedDefinition :
12588
+ # 2134| r2134_3(glval<bool>) = VariableAddress[initialization_with_destructor_bool] :
12589
+ # 2134| r2134_4(bool) = Constant[1] :
12590
+ # 2134| m2134_5(bool) = Store[initialization_with_destructor_bool] : &:r2134_3, r2134_4
12591
+ # 2134| m2134_6(unknown) = Chi : total:m2134_2, partial:m2134_5
12592
+ # 2134| v2134_7(void) = ReturnVoid :
12593
+ # 2134| v2134_8(void) = AliasedUse : ~m2134_6
12594
+ # 2134| v2134_9(void) = ExitFunction :
12595
+
12596
+ # 2136| void initialization_with_destructor(bool, char)
12597
+ # 2136| Block 0
12598
+ # 2136| v2136_1(void) = EnterFunction :
12599
+ # 2136| m2136_2(unknown) = AliasedDefinition :
12600
+ # 2136| m2136_3(unknown) = InitializeNonLocal :
12601
+ # 2136| m2136_4(unknown) = Chi : total:m2136_2, partial:m2136_3
12602
+ # 2136| r2136_5(glval<bool>) = VariableAddress[b] :
12603
+ # 2136| m2136_6(bool) = InitializeParameter[b] : &:r2136_5
12604
+ # 2136| r2136_7(glval<char>) = VariableAddress[c] :
12605
+ # 2136| m2136_8(char) = InitializeParameter[c] : &:r2136_7
12606
+ # 2137| r2137_1(glval<ClassWithDestructor>) = VariableAddress[x] :
12607
+ # 2137| m2137_2(ClassWithDestructor) = Uninitialized[x] : &:r2137_1
12608
+ # 2137| r2137_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
12609
+ # 2137| v2137_4(void) = Call[ClassWithDestructor] : func:r2137_3, this:r2137_1
12610
+ # 2137| m2137_5(unknown) = ^CallSideEffect : ~m2136_4
12611
+ # 2137| m2137_6(unknown) = Chi : total:m2136_4, partial:m2137_5
12612
+ # 2137| m2137_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2137_1
12613
+ # 2137| m2137_8(ClassWithDestructor) = Chi : total:m2137_2, partial:m2137_7
12614
+ # 2137| r2137_9(glval<bool>) = VariableAddress[b] :
12615
+ # 2137| r2137_10(bool) = Load[b] : &:r2137_9, m2136_6
12616
+ # 2137| v2137_11(void) = ConditionalBranch : r2137_10
12617
+ #-----| True -> Block 1
12618
+
12619
+ # 2138| Block 1
12620
+ # 2138| r2138_1(glval<ClassWithDestructor>) = VariableAddress[x] :
12621
+ # 2138| r2138_2(glval<unknown>) = FunctionAddress[set_x] :
12622
+ # 2138| r2138_3(char) = Constant[97] :
12623
+ # 2138| v2138_4(void) = Call[set_x] : func:r2138_2, this:r2138_1, 0:r2138_3
12624
+ # 2138| m2138_5(unknown) = ^CallSideEffect : ~m2137_6
12625
+ # 2138| m2138_6(unknown) = Chi : total:m2137_6, partial:m2138_5
12626
+ # 2138| v2138_7(void) = ^IndirectReadSideEffect[-1] : &:r2138_1, m2137_8
12627
+ # 2138| m2138_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2138_1
12628
+ # 2138| m2138_9(ClassWithDestructor) = Chi : total:m2137_8, partial:m2138_8
12629
+
12476
12630
perf-regression.cpp:
12477
12631
# 6| void Big::Big()
12478
12632
# 6| Block 0
0 commit comments