From 5653c3f9723ef773f4495a3bcba9e65b0456cbf6 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Tue, 6 Feb 2024 21:04:52 +0000 Subject: [PATCH] C++: Update IR test expectations for named destructors --- .../library-tests/ir/ir/aliased_ir.expected | 1310 +++++++++++++---- .../ir/ir/aliased_ssa_consistency.expected | 10 +- .../aliased_ssa_consistency_unsound.expected | 10 +- .../ir/ir/operand_locations.expected | 731 ++++++++- .../ir/ir/raw_consistency.expected | 6 + .../ir/ir/unaliased_ssa_consistency.expected | 10 +- ...unaliased_ssa_consistency_unsound.expected | 10 +- 7 files changed, 1747 insertions(+), 340 deletions(-) diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index 3949bb9f0f6..47074e1b904 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -3628,50 +3628,82 @@ ir.cpp: # 615| void DeclareObject() # 615| Block 0 -# 615| v615_1(void) = EnterFunction : -# 615| m615_2(unknown) = AliasedDefinition : -# 615| m615_3(unknown) = InitializeNonLocal : -# 615| m615_4(unknown) = Chi : total:m615_2, partial:m615_3 -# 616| r616_1(glval) = VariableAddress[s1] : -# 616| m616_2(String) = Uninitialized[s1] : &:r616_1 -# 616| r616_3(glval) = FunctionAddress[String] : -# 616| v616_4(void) = Call[String] : func:r616_3, this:r616_1 -# 616| m616_5(unknown) = ^CallSideEffect : ~m615_4 -# 616| m616_6(unknown) = Chi : total:m615_4, partial:m616_5 -# 616| m616_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r616_1 -# 616| m616_8(String) = Chi : total:m616_2, partial:m616_7 -# 617| r617_1(glval) = VariableAddress[s2] : -# 617| m617_2(String) = Uninitialized[s2] : &:r617_1 -# 617| r617_3(glval) = FunctionAddress[String] : -# 617| r617_4(glval) = StringConstant["hello"] : -# 617| r617_5(char *) = Convert : r617_4 -# 617| v617_6(void) = Call[String] : func:r617_3, this:r617_1, 0:r617_5 -# 617| m617_7(unknown) = ^CallSideEffect : ~m616_6 -# 617| m617_8(unknown) = Chi : total:m616_6, partial:m617_7 -# 617| v617_9(void) = ^BufferReadSideEffect[0] : &:r617_5, ~m615_3 -# 617| m617_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r617_1 -# 617| m617_11(String) = Chi : total:m617_2, partial:m617_10 -# 618| r618_1(glval) = VariableAddress[s3] : -# 618| r618_2(glval) = FunctionAddress[ReturnObject] : -# 618| r618_3(String) = Call[ReturnObject] : func:r618_2 -# 618| m618_4(unknown) = ^CallSideEffect : ~m617_8 -# 618| m618_5(unknown) = Chi : total:m617_8, partial:m618_4 -# 618| m618_6(String) = Store[s3] : &:r618_1, r618_3 -# 619| r619_1(glval) = VariableAddress[s4] : -# 619| m619_2(String) = Uninitialized[s4] : &:r619_1 -# 619| r619_3(glval) = FunctionAddress[String] : -# 619| r619_4(glval) = StringConstant["test"] : -# 619| r619_5(char *) = Convert : r619_4 -# 619| v619_6(void) = Call[String] : func:r619_3, this:r619_1, 0:r619_5 -# 619| m619_7(unknown) = ^CallSideEffect : ~m618_5 -# 619| m619_8(unknown) = Chi : total:m618_5, partial:m619_7 -# 619| v619_9(void) = ^BufferReadSideEffect[0] : &:r619_5, ~m615_3 -# 619| m619_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r619_1 -# 619| m619_11(String) = Chi : total:m619_2, partial:m619_10 -# 620| v620_1(void) = NoOp : -# 615| v615_5(void) = ReturnVoid : -# 615| v615_6(void) = AliasedUse : ~m619_8 -# 615| v615_7(void) = ExitFunction : +# 615| v615_1(void) = EnterFunction : +# 615| m615_2(unknown) = AliasedDefinition : +# 615| m615_3(unknown) = InitializeNonLocal : +# 615| m615_4(unknown) = Chi : total:m615_2, partial:m615_3 +# 616| r616_1(glval) = VariableAddress[s1] : +# 616| m616_2(String) = Uninitialized[s1] : &:r616_1 +# 616| r616_3(glval) = FunctionAddress[String] : +# 616| v616_4(void) = Call[String] : func:r616_3, this:r616_1 +# 616| m616_5(unknown) = ^CallSideEffect : ~m615_4 +# 616| m616_6(unknown) = Chi : total:m615_4, partial:m616_5 +# 616| m616_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r616_1 +# 616| m616_8(String) = Chi : total:m616_2, partial:m616_7 +# 617| r617_1(glval) = VariableAddress[s2] : +# 617| m617_2(String) = Uninitialized[s2] : &:r617_1 +# 617| r617_3(glval) = FunctionAddress[String] : +# 617| r617_4(glval) = StringConstant["hello"] : +# 617| r617_5(char *) = Convert : r617_4 +# 617| v617_6(void) = Call[String] : func:r617_3, this:r617_1, 0:r617_5 +# 617| m617_7(unknown) = ^CallSideEffect : ~m616_6 +# 617| m617_8(unknown) = Chi : total:m616_6, partial:m617_7 +# 617| v617_9(void) = ^BufferReadSideEffect[0] : &:r617_5, ~m615_3 +# 617| m617_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r617_1 +# 617| m617_11(String) = Chi : total:m617_2, partial:m617_10 +# 618| r618_1(glval) = VariableAddress[s3] : +# 618| r618_2(glval) = FunctionAddress[ReturnObject] : +# 618| r618_3(String) = Call[ReturnObject] : func:r618_2 +# 618| m618_4(unknown) = ^CallSideEffect : ~m617_8 +# 618| m618_5(unknown) = Chi : total:m617_8, partial:m618_4 +# 618| m618_6(String) = Store[s3] : &:r618_1, r618_3 +# 619| r619_1(glval) = VariableAddress[s4] : +# 619| m619_2(String) = Uninitialized[s4] : &:r619_1 +# 619| r619_3(glval) = FunctionAddress[String] : +# 619| r619_4(glval) = StringConstant["test"] : +# 619| r619_5(char *) = Convert : r619_4 +# 619| v619_6(void) = Call[String] : func:r619_3, this:r619_1, 0:r619_5 +# 619| m619_7(unknown) = ^CallSideEffect : ~m618_5 +# 619| m619_8(unknown) = Chi : total:m618_5, partial:m619_7 +# 619| v619_9(void) = ^BufferReadSideEffect[0] : &:r619_5, ~m615_3 +# 619| m619_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r619_1 +# 619| m619_11(String) = Chi : total:m619_2, partial:m619_10 +# 620| v620_1(void) = NoOp : +# 620| r620_2(glval) = VariableAddress[s4] : +# 620| r620_3(glval) = FunctionAddress[~String] : +# 620| v620_4(void) = Call[~String] : func:r620_3, this:r620_2 +# 620| m620_5(unknown) = ^CallSideEffect : ~m619_8 +# 620| m620_6(unknown) = Chi : total:m619_8, partial:m620_5 +# 620| v620_7(void) = ^IndirectReadSideEffect[-1] : &:r620_2, m619_11 +# 620| m620_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r620_2 +# 620| m620_9(String) = Chi : total:m619_11, partial:m620_8 +# 620| r620_10(glval) = VariableAddress[s3] : +# 620| r620_11(glval) = FunctionAddress[~String] : +# 620| v620_12(void) = Call[~String] : func:r620_11, this:r620_10 +# 620| m620_13(unknown) = ^CallSideEffect : ~m620_6 +# 620| m620_14(unknown) = Chi : total:m620_6, partial:m620_13 +# 620| v620_15(void) = ^IndirectReadSideEffect[-1] : &:r620_10, m618_6 +# 620| m620_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r620_10 +# 620| m620_17(String) = Chi : total:m618_6, partial:m620_16 +# 620| r620_18(glval) = VariableAddress[s2] : +# 620| r620_19(glval) = FunctionAddress[~String] : +# 620| v620_20(void) = Call[~String] : func:r620_19, this:r620_18 +# 620| m620_21(unknown) = ^CallSideEffect : ~m620_14 +# 620| m620_22(unknown) = Chi : total:m620_14, partial:m620_21 +# 620| v620_23(void) = ^IndirectReadSideEffect[-1] : &:r620_18, m617_11 +# 620| m620_24(String) = ^IndirectMayWriteSideEffect[-1] : &:r620_18 +# 620| m620_25(String) = Chi : total:m617_11, partial:m620_24 +# 620| r620_26(glval) = VariableAddress[s1] : +# 620| r620_27(glval) = FunctionAddress[~String] : +# 620| v620_28(void) = Call[~String] : func:r620_27, this:r620_26 +# 620| m620_29(unknown) = ^CallSideEffect : ~m620_22 +# 620| m620_30(unknown) = Chi : total:m620_22, partial:m620_29 +# 620| v620_31(void) = ^IndirectReadSideEffect[-1] : &:r620_26, m616_8 +# 620| m620_32(String) = ^IndirectMayWriteSideEffect[-1] : &:r620_26 +# 620| m620_33(String) = Chi : total:m616_8, partial:m620_32 +# 615| v615_5(void) = ReturnVoid : +# 615| v615_6(void) = AliasedUse : ~m620_30 +# 615| v615_7(void) = ExitFunction : # 622| void CallMethods(String&, String*, String) # 622| Block 0 @@ -5158,8 +5190,32 @@ ir.cpp: # 839| r839_4(glval) = VariableAddress[pb] : # 839| m839_5(Base *) = Store[pb] : &:r839_4, r839_3 # 840| v840_1(void) = NoOp : +# 840| r840_2(glval) = VariableAddress[d] : +# 840| r840_3(glval) = FunctionAddress[~Derived] : +# 840| v840_4(void) = Call[~Derived] : func:r840_3, this:r840_2 +# 840| m840_5(unknown) = ^CallSideEffect : ~m831_10 +# 840| m840_6(unknown) = Chi : total:m831_10, partial:m840_5 +# 840| v840_7(void) = ^IndirectReadSideEffect[-1] : &:r840_2, m831_14 +# 840| m840_8(Derived) = ^IndirectMayWriteSideEffect[-1] : &:r840_2 +# 840| m840_9(Derived) = Chi : total:m831_14, partial:m840_8 +# 840| r840_10(glval) = VariableAddress[m] : +# 840| r840_11(glval) = FunctionAddress[~Middle] : +# 840| v840_12(void) = Call[~Middle] : func:r840_11, this:r840_10 +# 840| m840_13(unknown) = ^CallSideEffect : ~m840_6 +# 840| m840_14(unknown) = Chi : total:m840_6, partial:m840_13 +# 840| v840_15(void) = ^IndirectReadSideEffect[-1] : &:r840_10, m817_13 +# 840| m840_16(Middle) = ^IndirectMayWriteSideEffect[-1] : &:r840_10 +# 840| m840_17(Middle) = Chi : total:m817_13, partial:m840_16 +# 840| r840_18(glval) = VariableAddress[b] : +# 840| r840_19(glval) = FunctionAddress[~Base] : +# 840| v840_20(void) = Call[~Base] : func:r840_19, this:r840_18 +# 840| m840_21(unknown) = ^CallSideEffect : ~m840_14 +# 840| m840_22(unknown) = Chi : total:m840_14, partial:m840_21 +# 840| v840_23(void) = ^IndirectReadSideEffect[-1] : &:r840_18, m824_24 +# 840| m840_24(Base) = ^IndirectMayWriteSideEffect[-1] : &:r840_18 +# 840| m840_25(Base) = Chi : total:m824_24, partial:m840_24 # 799| v799_5(void) = ReturnVoid : -# 799| v799_6(void) = AliasedUse : ~m831_10 +# 799| v799_6(void) = AliasedUse : ~m840_22 # 799| v799_7(void) = ExitFunction : # 842| void PolymorphicBase::PolymorphicBase() @@ -5224,68 +5280,84 @@ ir.cpp: # 849| void DynamicCast() # 849| Block 0 -# 849| v849_1(void) = EnterFunction : -# 849| m849_2(unknown) = AliasedDefinition : -# 849| m849_3(unknown) = InitializeNonLocal : -# 849| m849_4(unknown) = Chi : total:m849_2, partial:m849_3 -# 850| r850_1(glval) = VariableAddress[b] : -# 850| m850_2(PolymorphicBase) = Uninitialized[b] : &:r850_1 -# 850| r850_3(glval) = FunctionAddress[PolymorphicBase] : -# 850| v850_4(void) = Call[PolymorphicBase] : func:r850_3, this:r850_1 -# 850| m850_5(unknown) = ^CallSideEffect : ~m849_4 -# 850| m850_6(unknown) = Chi : total:m849_4, partial:m850_5 -# 850| m850_7(PolymorphicBase) = ^IndirectMayWriteSideEffect[-1] : &:r850_1 -# 850| m850_8(PolymorphicBase) = Chi : total:m850_2, partial:m850_7 -# 851| r851_1(glval) = VariableAddress[d] : -# 851| m851_2(PolymorphicDerived) = Uninitialized[d] : &:r851_1 -# 851| r851_3(glval) = FunctionAddress[PolymorphicDerived] : -# 851| v851_4(void) = Call[PolymorphicDerived] : func:r851_3, this:r851_1 -# 851| m851_5(unknown) = ^CallSideEffect : ~m850_6 -# 851| m851_6(unknown) = Chi : total:m850_6, partial:m851_5 -# 851| m851_7(PolymorphicDerived) = ^IndirectMayWriteSideEffect[-1] : &:r851_1 -# 851| m851_8(PolymorphicDerived) = Chi : total:m851_2, partial:m851_7 -# 853| r853_1(glval) = VariableAddress[pb] : -# 853| r853_2(glval) = VariableAddress[b] : -# 853| r853_3(PolymorphicBase *) = CopyValue : r853_2 -# 853| m853_4(PolymorphicBase *) = Store[pb] : &:r853_1, r853_3 -# 854| r854_1(glval) = VariableAddress[pd] : -# 854| r854_2(glval) = VariableAddress[d] : -# 854| r854_3(PolymorphicDerived *) = CopyValue : r854_2 -# 854| m854_4(PolymorphicDerived *) = Store[pd] : &:r854_1, r854_3 -# 857| r857_1(glval) = VariableAddress[pd] : -# 857| r857_2(PolymorphicDerived *) = Load[pd] : &:r857_1, m854_4 -# 857| r857_3(PolymorphicBase *) = CheckedConvertOrNull : r857_2 -# 857| r857_4(glval) = VariableAddress[pb] : -# 857| m857_5(PolymorphicBase *) = Store[pb] : &:r857_4, r857_3 -# 858| r858_1(glval) = VariableAddress[rb] : -# 858| r858_2(glval) = VariableAddress[d] : -# 858| r858_3(glval) = CheckedConvertOrThrow : r858_2 -# 858| r858_4(PolymorphicBase &) = CopyValue : r858_3 -# 858| m858_5(PolymorphicBase &) = Store[rb] : &:r858_1, r858_4 -# 860| r860_1(glval) = VariableAddress[pb] : -# 860| r860_2(PolymorphicBase *) = Load[pb] : &:r860_1, m857_5 -# 860| r860_3(PolymorphicDerived *) = CheckedConvertOrNull : r860_2 -# 860| r860_4(glval) = VariableAddress[pd] : -# 860| m860_5(PolymorphicDerived *) = Store[pd] : &:r860_4, r860_3 -# 861| r861_1(glval) = VariableAddress[rd] : -# 861| r861_2(glval) = VariableAddress[b] : -# 861| r861_3(glval) = CheckedConvertOrThrow : r861_2 -# 861| r861_4(PolymorphicDerived &) = CopyValue : r861_3 -# 861| m861_5(PolymorphicDerived &) = Store[rd] : &:r861_1, r861_4 -# 863| r863_1(glval) = VariableAddress[pv] : -# 863| r863_2(glval) = VariableAddress[pb] : -# 863| r863_3(PolymorphicBase *) = Load[pb] : &:r863_2, m857_5 -# 863| r863_4(void *) = CompleteObjectAddress : r863_3 -# 863| m863_5(void *) = Store[pv] : &:r863_1, r863_4 -# 864| r864_1(glval) = VariableAddress[pcv] : -# 864| r864_2(glval) = VariableAddress[pd] : -# 864| r864_3(PolymorphicDerived *) = Load[pd] : &:r864_2, m860_5 -# 864| r864_4(void *) = CompleteObjectAddress : r864_3 -# 864| m864_5(void *) = Store[pcv] : &:r864_1, r864_4 -# 865| v865_1(void) = NoOp : -# 849| v849_5(void) = ReturnVoid : -# 849| v849_6(void) = AliasedUse : ~m851_6 -# 849| v849_7(void) = ExitFunction : +# 849| v849_1(void) = EnterFunction : +# 849| m849_2(unknown) = AliasedDefinition : +# 849| m849_3(unknown) = InitializeNonLocal : +# 849| m849_4(unknown) = Chi : total:m849_2, partial:m849_3 +# 850| r850_1(glval) = VariableAddress[b] : +# 850| m850_2(PolymorphicBase) = Uninitialized[b] : &:r850_1 +# 850| r850_3(glval) = FunctionAddress[PolymorphicBase] : +# 850| v850_4(void) = Call[PolymorphicBase] : func:r850_3, this:r850_1 +# 850| m850_5(unknown) = ^CallSideEffect : ~m849_4 +# 850| m850_6(unknown) = Chi : total:m849_4, partial:m850_5 +# 850| m850_7(PolymorphicBase) = ^IndirectMayWriteSideEffect[-1] : &:r850_1 +# 850| m850_8(PolymorphicBase) = Chi : total:m850_2, partial:m850_7 +# 851| r851_1(glval) = VariableAddress[d] : +# 851| m851_2(PolymorphicDerived) = Uninitialized[d] : &:r851_1 +# 851| r851_3(glval) = FunctionAddress[PolymorphicDerived] : +# 851| v851_4(void) = Call[PolymorphicDerived] : func:r851_3, this:r851_1 +# 851| m851_5(unknown) = ^CallSideEffect : ~m850_6 +# 851| m851_6(unknown) = Chi : total:m850_6, partial:m851_5 +# 851| m851_7(PolymorphicDerived) = ^IndirectMayWriteSideEffect[-1] : &:r851_1 +# 851| m851_8(PolymorphicDerived) = Chi : total:m851_2, partial:m851_7 +# 853| r853_1(glval) = VariableAddress[pb] : +# 853| r853_2(glval) = VariableAddress[b] : +# 853| r853_3(PolymorphicBase *) = CopyValue : r853_2 +# 853| m853_4(PolymorphicBase *) = Store[pb] : &:r853_1, r853_3 +# 854| r854_1(glval) = VariableAddress[pd] : +# 854| r854_2(glval) = VariableAddress[d] : +# 854| r854_3(PolymorphicDerived *) = CopyValue : r854_2 +# 854| m854_4(PolymorphicDerived *) = Store[pd] : &:r854_1, r854_3 +# 857| r857_1(glval) = VariableAddress[pd] : +# 857| r857_2(PolymorphicDerived *) = Load[pd] : &:r857_1, m854_4 +# 857| r857_3(PolymorphicBase *) = CheckedConvertOrNull : r857_2 +# 857| r857_4(glval) = VariableAddress[pb] : +# 857| m857_5(PolymorphicBase *) = Store[pb] : &:r857_4, r857_3 +# 858| r858_1(glval) = VariableAddress[rb] : +# 858| r858_2(glval) = VariableAddress[d] : +# 858| r858_3(glval) = CheckedConvertOrThrow : r858_2 +# 858| r858_4(PolymorphicBase &) = CopyValue : r858_3 +# 858| m858_5(PolymorphicBase &) = Store[rb] : &:r858_1, r858_4 +# 860| r860_1(glval) = VariableAddress[pb] : +# 860| r860_2(PolymorphicBase *) = Load[pb] : &:r860_1, m857_5 +# 860| r860_3(PolymorphicDerived *) = CheckedConvertOrNull : r860_2 +# 860| r860_4(glval) = VariableAddress[pd] : +# 860| m860_5(PolymorphicDerived *) = Store[pd] : &:r860_4, r860_3 +# 861| r861_1(glval) = VariableAddress[rd] : +# 861| r861_2(glval) = VariableAddress[b] : +# 861| r861_3(glval) = CheckedConvertOrThrow : r861_2 +# 861| r861_4(PolymorphicDerived &) = CopyValue : r861_3 +# 861| m861_5(PolymorphicDerived &) = Store[rd] : &:r861_1, r861_4 +# 863| r863_1(glval) = VariableAddress[pv] : +# 863| r863_2(glval) = VariableAddress[pb] : +# 863| r863_3(PolymorphicBase *) = Load[pb] : &:r863_2, m857_5 +# 863| r863_4(void *) = CompleteObjectAddress : r863_3 +# 863| m863_5(void *) = Store[pv] : &:r863_1, r863_4 +# 864| r864_1(glval) = VariableAddress[pcv] : +# 864| r864_2(glval) = VariableAddress[pd] : +# 864| r864_3(PolymorphicDerived *) = Load[pd] : &:r864_2, m860_5 +# 864| r864_4(void *) = CompleteObjectAddress : r864_3 +# 864| m864_5(void *) = Store[pcv] : &:r864_1, r864_4 +# 865| v865_1(void) = NoOp : +# 865| r865_2(glval) = VariableAddress[d] : +# 865| r865_3(glval) = FunctionAddress[~PolymorphicDerived] : +# 865| v865_4(void) = Call[~PolymorphicDerived] : func:r865_3, this:r865_2 +# 865| m865_5(unknown) = ^CallSideEffect : ~m851_6 +# 865| m865_6(unknown) = Chi : total:m851_6, partial:m865_5 +# 865| v865_7(void) = ^IndirectReadSideEffect[-1] : &:r865_2, m851_8 +# 865| m865_8(PolymorphicDerived) = ^IndirectMayWriteSideEffect[-1] : &:r865_2 +# 865| m865_9(PolymorphicDerived) = Chi : total:m851_8, partial:m865_8 +# 865| r865_10(glval) = VariableAddress[b] : +# 865| r865_11(glval) = FunctionAddress[~PolymorphicBase] : +# 865| v865_12(void) = Call[~PolymorphicBase] : func:r865_11, this:r865_10 +# 865| m865_13(unknown) = ^CallSideEffect : ~m865_6 +# 865| m865_14(unknown) = Chi : total:m865_6, partial:m865_13 +# 865| v865_15(void) = ^IndirectReadSideEffect[-1] : &:r865_10, m850_8 +# 865| m865_16(PolymorphicBase) = ^IndirectMayWriteSideEffect[-1] : &:r865_10 +# 865| m865_17(PolymorphicBase) = Chi : total:m850_8, partial:m865_16 +# 849| v849_5(void) = ReturnVoid : +# 849| v849_6(void) = AliasedUse : ~m865_14 +# 849| v849_7(void) = ExitFunction : # 867| void String::String() # 867| Block 0 @@ -6187,184 +6259,200 @@ ir.cpp: # 1040| void Lambda(int, String const&) # 1040| Block 0 -# 1040| v1040_1(void) = EnterFunction : -# 1040| m1040_2(unknown) = AliasedDefinition : -# 1040| m1040_3(unknown) = InitializeNonLocal : -# 1040| m1040_4(unknown) = Chi : total:m1040_2, partial:m1040_3 -# 1040| r1040_5(glval) = VariableAddress[x] : -# 1040| m1040_6(int) = InitializeParameter[x] : &:r1040_5 -# 1040| r1040_7(glval) = VariableAddress[s] : -# 1040| m1040_8(String &) = InitializeParameter[s] : &:r1040_7 -# 1040| r1040_9(String &) = Load[s] : &:r1040_7, m1040_8 -# 1040| m1040_10(unknown) = InitializeIndirection[s] : &:r1040_9 -# 1041| r1041_1(glval) = VariableAddress[lambda_empty] : -# 1041| r1041_2(glval) = VariableAddress[#temp1041:23] : -# 1041| m1041_3(decltype([...](...){...})) = Uninitialized[#temp1041:23] : &:r1041_2 -# 1041| r1041_4(decltype([...](...){...})) = Load[#temp1041:23] : &:r1041_2, m1041_3 -# 1041| m1041_5(decltype([...](...){...})) = Store[lambda_empty] : &:r1041_1, r1041_4 -# 1042| r1042_1(char) = Constant[65] : -# 1043| r1043_1(glval) = VariableAddress[lambda_ref] : -# 1043| r1043_2(glval) = VariableAddress[#temp1043:20] : -# 1043| m1043_3(decltype([...](...){...})) = Uninitialized[#temp1043:20] : &:r1043_2 -# 1043| r1043_4(glval) = FieldAddress[s] : r1043_2 -# 1043| r1043_5(glval) = VariableAddress[s] : -# 1043| r1043_6(String &) = Load[s] : &:r1043_5, m1040_8 -# 1043| r1043_7(glval) = CopyValue : r1043_6 -# 1043| r1043_8(String &) = CopyValue : r1043_7 -# 1043| m1043_9(String &) = Store[?] : &:r1043_4, r1043_8 -# 1043| m1043_10(decltype([...](...){...})) = Chi : total:m1043_3, partial:m1043_9 -# 1043| r1043_11(glval) = FieldAddress[x] : r1043_2 -# 1043| r1043_12(glval) = VariableAddress[x] : -#-----| r0_1(int &) = CopyValue : r1043_12 -#-----| m0_2(int &) = Store[?] : &:r1043_11, r0_1 -#-----| m0_3(decltype([...](...){...})) = Chi : total:m1043_10, partial:m0_2 -# 1043| r1043_13(decltype([...](...){...})) = Load[#temp1043:20] : &:r1043_2, m0_3 -# 1043| m1043_14(decltype([...](...){...})) = Store[lambda_ref] : &:r1043_1, r1043_13 -# 1044| r1044_1(glval) = VariableAddress[lambda_ref] : -# 1044| r1044_2(glval) = Convert : r1044_1 -# 1044| r1044_3(glval) = FunctionAddress[operator()] : -# 1044| r1044_4(float) = Constant[1.0] : -# 1044| r1044_5(char) = Call[operator()] : func:r1044_3, this:r1044_2, 0:r1044_4 -# 1044| m1044_6(unknown) = ^CallSideEffect : ~m1040_4 -# 1044| m1044_7(unknown) = Chi : total:m1040_4, partial:m1044_6 -# 1044| v1044_8(void) = ^IndirectReadSideEffect[-1] : &:r1044_2, m1043_14 -# 1045| r1045_1(glval) = VariableAddress[lambda_val] : -# 1045| r1045_2(glval) = VariableAddress[#temp1045:20] : -# 1045| m1045_3(decltype([...](...){...})) = Uninitialized[#temp1045:20] : &:r1045_2 -# 1045| r1045_4(glval) = FieldAddress[s] : r1045_2 -# 1045| r1045_5(glval) = FunctionAddress[String] : -# 1045| v1045_6(void) = Call[String] : func:r1045_5, this:r1045_4 -# 1045| m1045_7(unknown) = ^CallSideEffect : ~m1044_7 -# 1045| m1045_8(unknown) = Chi : total:m1044_7, partial:m1045_7 -# 1045| m1045_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1045_4 -# 1045| m1045_10(decltype([...](...){...})) = Chi : total:m1045_3, partial:m1045_9 -# 1045| r1045_11(glval) = FieldAddress[x] : r1045_2 -# 1045| r1045_12(glval) = VariableAddress[x] : -# 1045| r1045_13(int) = Load[x] : &:r1045_12, m1040_6 -# 1045| m1045_14(int) = Store[?] : &:r1045_11, r1045_13 -# 1045| m1045_15(decltype([...](...){...})) = Chi : total:m1045_10, partial:m1045_14 -# 1045| r1045_16(decltype([...](...){...})) = Load[#temp1045:20] : &:r1045_2, m1045_15 -# 1045| m1045_17(decltype([...](...){...})) = Store[lambda_val] : &:r1045_1, r1045_16 -# 1046| r1046_1(glval) = VariableAddress[lambda_val] : -# 1046| r1046_2(glval) = Convert : r1046_1 -# 1046| r1046_3(glval) = FunctionAddress[operator()] : -# 1046| r1046_4(float) = Constant[2.0] : -# 1046| r1046_5(char) = Call[operator()] : func:r1046_3, this:r1046_2, 0:r1046_4 -# 1046| m1046_6(unknown) = ^CallSideEffect : ~m1045_8 -# 1046| m1046_7(unknown) = Chi : total:m1045_8, partial:m1046_6 -# 1046| v1046_8(void) = ^IndirectReadSideEffect[-1] : &:r1046_2, m1045_17 -# 1047| r1047_1(glval) = VariableAddress[lambda_ref_explicit] : -# 1047| r1047_2(glval) = VariableAddress[#temp1047:29] : -# 1047| m1047_3(decltype([...](...){...})) = Uninitialized[#temp1047:29] : &:r1047_2 -# 1047| r1047_4(glval) = FieldAddress[s] : r1047_2 -# 1047| r1047_5(glval) = VariableAddress[s] : -# 1047| r1047_6(String &) = Load[s] : &:r1047_5, m1040_8 -# 1047| r1047_7(glval) = CopyValue : r1047_6 -# 1047| r1047_8(String &) = CopyValue : r1047_7 -# 1047| m1047_9(String &) = Store[?] : &:r1047_4, r1047_8 -# 1047| r1047_10(decltype([...](...){...})) = Load[#temp1047:29] : &:r1047_2, ~m1047_9 -# 1047| m1047_11(decltype([...](...){...})) = Store[lambda_ref_explicit] : &:r1047_1, r1047_10 -# 1048| r1048_1(glval) = VariableAddress[lambda_ref_explicit] : -# 1048| r1048_2(glval) = Convert : r1048_1 -# 1048| r1048_3(glval) = FunctionAddress[operator()] : -# 1048| r1048_4(float) = Constant[3.0] : -# 1048| r1048_5(char) = Call[operator()] : func:r1048_3, this:r1048_2, 0:r1048_4 -# 1048| m1048_6(unknown) = ^CallSideEffect : ~m1046_7 -# 1048| m1048_7(unknown) = Chi : total:m1046_7, partial:m1048_6 -# 1048| v1048_8(void) = ^IndirectReadSideEffect[-1] : &:r1048_2, m1047_11 -# 1049| r1049_1(glval) = VariableAddress[lambda_val_explicit] : -# 1049| r1049_2(glval) = VariableAddress[#temp1049:29] : -# 1049| m1049_3(decltype([...](...){...})) = Uninitialized[#temp1049:29] : &:r1049_2 -# 1049| r1049_4(glval) = FieldAddress[s] : r1049_2 -# 1049| r1049_5(glval) = FunctionAddress[String] : -# 1049| v1049_6(void) = Call[String] : func:r1049_5, this:r1049_4 -# 1049| m1049_7(unknown) = ^CallSideEffect : ~m1048_7 -# 1049| m1049_8(unknown) = Chi : total:m1048_7, partial:m1049_7 -# 1049| m1049_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1049_4 -# 1049| m1049_10(decltype([...](...){...})) = Chi : total:m1049_3, partial:m1049_9 -# 1049| r1049_11(decltype([...](...){...})) = Load[#temp1049:29] : &:r1049_2, m1049_10 -# 1049| m1049_12(decltype([...](...){...})) = Store[lambda_val_explicit] : &:r1049_1, r1049_11 -# 1050| r1050_1(glval) = VariableAddress[lambda_val_explicit] : -# 1050| r1050_2(glval) = Convert : r1050_1 -# 1050| r1050_3(glval) = FunctionAddress[operator()] : -# 1050| r1050_4(float) = Constant[4.0] : -# 1050| r1050_5(char) = Call[operator()] : func:r1050_3, this:r1050_2, 0:r1050_4 -# 1050| m1050_6(unknown) = ^CallSideEffect : ~m1049_8 -# 1050| m1050_7(unknown) = Chi : total:m1049_8, partial:m1050_6 -# 1050| v1050_8(void) = ^IndirectReadSideEffect[-1] : &:r1050_2, m1049_12 -# 1051| r1051_1(glval) = VariableAddress[lambda_mixed_explicit] : -# 1051| r1051_2(glval) = VariableAddress[#temp1051:31] : -# 1051| m1051_3(decltype([...](...){...})) = Uninitialized[#temp1051:31] : &:r1051_2 -# 1051| r1051_4(glval) = FieldAddress[s] : r1051_2 -# 1051| r1051_5(glval) = VariableAddress[s] : -# 1051| r1051_6(String &) = Load[s] : &:r1051_5, m1040_8 -# 1051| r1051_7(glval) = CopyValue : r1051_6 -# 1051| r1051_8(String &) = CopyValue : r1051_7 -# 1051| m1051_9(String &) = Store[?] : &:r1051_4, r1051_8 -# 1051| m1051_10(decltype([...](...){...})) = Chi : total:m1051_3, partial:m1051_9 -# 1051| r1051_11(glval) = FieldAddress[x] : r1051_2 -# 1051| r1051_12(glval) = VariableAddress[x] : -# 1051| r1051_13(int) = Load[x] : &:r1051_12, m1040_6 -# 1051| m1051_14(int) = Store[?] : &:r1051_11, r1051_13 -# 1051| m1051_15(decltype([...](...){...})) = Chi : total:m1051_10, partial:m1051_14 -# 1051| r1051_16(decltype([...](...){...})) = Load[#temp1051:31] : &:r1051_2, m1051_15 -# 1051| m1051_17(decltype([...](...){...})) = Store[lambda_mixed_explicit] : &:r1051_1, r1051_16 -# 1052| r1052_1(glval) = VariableAddress[lambda_mixed_explicit] : -# 1052| r1052_2(glval) = Convert : r1052_1 -# 1052| r1052_3(glval) = FunctionAddress[operator()] : -# 1052| r1052_4(float) = Constant[5.0] : -# 1052| r1052_5(char) = Call[operator()] : func:r1052_3, this:r1052_2, 0:r1052_4 -# 1052| m1052_6(unknown) = ^CallSideEffect : ~m1050_7 -# 1052| m1052_7(unknown) = Chi : total:m1050_7, partial:m1052_6 -# 1052| v1052_8(void) = ^IndirectReadSideEffect[-1] : &:r1052_2, m1051_17 -# 1053| r1053_1(glval) = VariableAddress[r] : -# 1053| r1053_2(glval) = VariableAddress[x] : -# 1053| r1053_3(int) = Load[x] : &:r1053_2, m1040_6 -# 1053| r1053_4(int) = Constant[1] : -# 1053| r1053_5(int) = Sub : r1053_3, r1053_4 -# 1053| m1053_6(int) = Store[r] : &:r1053_1, r1053_5 -# 1054| r1054_1(glval) = VariableAddress[lambda_inits] : -# 1054| r1054_2(glval) = VariableAddress[#temp1054:22] : -# 1054| m1054_3(decltype([...](...){...})) = Uninitialized[#temp1054:22] : &:r1054_2 -# 1054| r1054_4(glval) = FieldAddress[s] : r1054_2 -# 1054| r1054_5(glval) = VariableAddress[s] : -# 1054| r1054_6(String &) = Load[s] : &:r1054_5, m1040_8 -# 1054| r1054_7(glval) = CopyValue : r1054_6 -# 1054| r1054_8(String &) = CopyValue : r1054_7 -# 1054| m1054_9(String &) = Store[?] : &:r1054_4, r1054_8 -# 1054| m1054_10(decltype([...](...){...})) = Chi : total:m1054_3, partial:m1054_9 -# 1054| r1054_11(glval) = FieldAddress[x] : r1054_2 -# 1054| r1054_12(glval) = VariableAddress[x] : -# 1054| r1054_13(int) = Load[x] : &:r1054_12, m1040_6 -# 1054| m1054_14(int) = Store[?] : &:r1054_11, r1054_13 -# 1054| m1054_15(decltype([...](...){...})) = Chi : total:m1054_10, partial:m1054_14 -# 1054| r1054_16(glval) = FieldAddress[i] : r1054_2 -# 1054| r1054_17(glval) = VariableAddress[x] : -# 1054| r1054_18(int) = Load[x] : &:r1054_17, m1040_6 -# 1054| r1054_19(int) = Constant[1] : -# 1054| r1054_20(int) = Add : r1054_18, r1054_19 -# 1054| m1054_21(int) = Store[?] : &:r1054_16, r1054_20 -# 1054| m1054_22(decltype([...](...){...})) = Chi : total:m1054_15, partial:m1054_21 -# 1054| r1054_23(glval) = FieldAddress[j] : r1054_2 -# 1054| r1054_24(glval) = VariableAddress[r] : -# 1054| r1054_25(int &) = CopyValue : r1054_24 -# 1054| m1054_26(int &) = Store[?] : &:r1054_23, r1054_25 -# 1054| m1054_27(decltype([...](...){...})) = Chi : total:m1054_22, partial:m1054_26 -# 1054| r1054_28(decltype([...](...){...})) = Load[#temp1054:22] : &:r1054_2, m1054_27 -# 1054| m1054_29(decltype([...](...){...})) = Store[lambda_inits] : &:r1054_1, r1054_28 -# 1055| r1055_1(glval) = VariableAddress[lambda_inits] : -# 1055| r1055_2(glval) = Convert : r1055_1 -# 1055| r1055_3(glval) = FunctionAddress[operator()] : -# 1055| r1055_4(float) = Constant[6.0] : -# 1055| r1055_5(char) = Call[operator()] : func:r1055_3, this:r1055_2, 0:r1055_4 -# 1055| m1055_6(unknown) = ^CallSideEffect : ~m1052_7 -# 1055| m1055_7(unknown) = Chi : total:m1052_7, partial:m1055_6 -# 1055| v1055_8(void) = ^IndirectReadSideEffect[-1] : &:r1055_2, m1054_29 -# 1056| v1056_1(void) = NoOp : -# 1040| v1040_11(void) = ReturnIndirection[s] : &:r1040_9, m1040_10 -# 1040| v1040_12(void) = ReturnVoid : -# 1040| v1040_13(void) = AliasedUse : ~m1055_7 -# 1040| v1040_14(void) = ExitFunction : +# 1040| v1040_1(void) = EnterFunction : +# 1040| m1040_2(unknown) = AliasedDefinition : +# 1040| m1040_3(unknown) = InitializeNonLocal : +# 1040| m1040_4(unknown) = Chi : total:m1040_2, partial:m1040_3 +# 1040| r1040_5(glval) = VariableAddress[x] : +# 1040| m1040_6(int) = InitializeParameter[x] : &:r1040_5 +# 1040| r1040_7(glval) = VariableAddress[s] : +# 1040| m1040_8(String &) = InitializeParameter[s] : &:r1040_7 +# 1040| r1040_9(String &) = Load[s] : &:r1040_7, m1040_8 +# 1040| m1040_10(unknown) = InitializeIndirection[s] : &:r1040_9 +# 1041| r1041_1(glval) = VariableAddress[lambda_empty] : +# 1041| r1041_2(glval) = VariableAddress[#temp1041:23] : +# 1041| m1041_3(decltype([...](...){...})) = Uninitialized[#temp1041:23] : &:r1041_2 +# 1041| r1041_4(decltype([...](...){...})) = Load[#temp1041:23] : &:r1041_2, m1041_3 +# 1041| m1041_5(decltype([...](...){...})) = Store[lambda_empty] : &:r1041_1, r1041_4 +# 1042| r1042_1(char) = Constant[65] : +# 1043| r1043_1(glval) = VariableAddress[lambda_ref] : +# 1043| r1043_2(glval) = VariableAddress[#temp1043:20] : +# 1043| m1043_3(decltype([...](...){...})) = Uninitialized[#temp1043:20] : &:r1043_2 +# 1043| r1043_4(glval) = FieldAddress[s] : r1043_2 +# 1043| r1043_5(glval) = VariableAddress[s] : +# 1043| r1043_6(String &) = Load[s] : &:r1043_5, m1040_8 +# 1043| r1043_7(glval) = CopyValue : r1043_6 +# 1043| r1043_8(String &) = CopyValue : r1043_7 +# 1043| m1043_9(String &) = Store[?] : &:r1043_4, r1043_8 +# 1043| m1043_10(decltype([...](...){...})) = Chi : total:m1043_3, partial:m1043_9 +# 1043| r1043_11(glval) = FieldAddress[x] : r1043_2 +# 1043| r1043_12(glval) = VariableAddress[x] : +#-----| r0_1(int &) = CopyValue : r1043_12 +#-----| m0_2(int &) = Store[?] : &:r1043_11, r0_1 +#-----| m0_3(decltype([...](...){...})) = Chi : total:m1043_10, partial:m0_2 +# 1043| r1043_13(decltype([...](...){...})) = Load[#temp1043:20] : &:r1043_2, m0_3 +# 1043| m1043_14(decltype([...](...){...})) = Store[lambda_ref] : &:r1043_1, r1043_13 +# 1044| r1044_1(glval) = VariableAddress[lambda_ref] : +# 1044| r1044_2(glval) = Convert : r1044_1 +# 1044| r1044_3(glval) = FunctionAddress[operator()] : +# 1044| r1044_4(float) = Constant[1.0] : +# 1044| r1044_5(char) = Call[operator()] : func:r1044_3, this:r1044_2, 0:r1044_4 +# 1044| m1044_6(unknown) = ^CallSideEffect : ~m1040_4 +# 1044| m1044_7(unknown) = Chi : total:m1040_4, partial:m1044_6 +# 1044| v1044_8(void) = ^IndirectReadSideEffect[-1] : &:r1044_2, m1043_14 +# 1045| r1045_1(glval) = VariableAddress[lambda_val] : +# 1045| r1045_2(glval) = VariableAddress[#temp1045:20] : +# 1045| m1045_3(decltype([...](...){...})) = Uninitialized[#temp1045:20] : &:r1045_2 +# 1045| r1045_4(glval) = FieldAddress[s] : r1045_2 +# 1045| r1045_5(glval) = FunctionAddress[String] : +# 1045| v1045_6(void) = Call[String] : func:r1045_5, this:r1045_4 +# 1045| m1045_7(unknown) = ^CallSideEffect : ~m1044_7 +# 1045| m1045_8(unknown) = Chi : total:m1044_7, partial:m1045_7 +# 1045| m1045_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1045_4 +# 1045| m1045_10(decltype([...](...){...})) = Chi : total:m1045_3, partial:m1045_9 +# 1045| r1045_11(glval) = FieldAddress[x] : r1045_2 +# 1045| r1045_12(glval) = VariableAddress[x] : +# 1045| r1045_13(int) = Load[x] : &:r1045_12, m1040_6 +# 1045| m1045_14(int) = Store[?] : &:r1045_11, r1045_13 +# 1045| m1045_15(decltype([...](...){...})) = Chi : total:m1045_10, partial:m1045_14 +# 1045| r1045_16(decltype([...](...){...})) = Load[#temp1045:20] : &:r1045_2, m1045_15 +# 1045| m1045_17(decltype([...](...){...})) = Store[lambda_val] : &:r1045_1, r1045_16 +# 1046| r1046_1(glval) = VariableAddress[lambda_val] : +# 1046| r1046_2(glval) = Convert : r1046_1 +# 1046| r1046_3(glval) = FunctionAddress[operator()] : +# 1046| r1046_4(float) = Constant[2.0] : +# 1046| r1046_5(char) = Call[operator()] : func:r1046_3, this:r1046_2, 0:r1046_4 +# 1046| m1046_6(unknown) = ^CallSideEffect : ~m1045_8 +# 1046| m1046_7(unknown) = Chi : total:m1045_8, partial:m1046_6 +# 1046| v1046_8(void) = ^IndirectReadSideEffect[-1] : &:r1046_2, m1045_17 +# 1047| r1047_1(glval) = VariableAddress[lambda_ref_explicit] : +# 1047| r1047_2(glval) = VariableAddress[#temp1047:29] : +# 1047| m1047_3(decltype([...](...){...})) = Uninitialized[#temp1047:29] : &:r1047_2 +# 1047| r1047_4(glval) = FieldAddress[s] : r1047_2 +# 1047| r1047_5(glval) = VariableAddress[s] : +# 1047| r1047_6(String &) = Load[s] : &:r1047_5, m1040_8 +# 1047| r1047_7(glval) = CopyValue : r1047_6 +# 1047| r1047_8(String &) = CopyValue : r1047_7 +# 1047| m1047_9(String &) = Store[?] : &:r1047_4, r1047_8 +# 1047| r1047_10(decltype([...](...){...})) = Load[#temp1047:29] : &:r1047_2, ~m1047_9 +# 1047| m1047_11(decltype([...](...){...})) = Store[lambda_ref_explicit] : &:r1047_1, r1047_10 +# 1048| r1048_1(glval) = VariableAddress[lambda_ref_explicit] : +# 1048| r1048_2(glval) = Convert : r1048_1 +# 1048| r1048_3(glval) = FunctionAddress[operator()] : +# 1048| r1048_4(float) = Constant[3.0] : +# 1048| r1048_5(char) = Call[operator()] : func:r1048_3, this:r1048_2, 0:r1048_4 +# 1048| m1048_6(unknown) = ^CallSideEffect : ~m1046_7 +# 1048| m1048_7(unknown) = Chi : total:m1046_7, partial:m1048_6 +# 1048| v1048_8(void) = ^IndirectReadSideEffect[-1] : &:r1048_2, m1047_11 +# 1049| r1049_1(glval) = VariableAddress[lambda_val_explicit] : +# 1049| r1049_2(glval) = VariableAddress[#temp1049:29] : +# 1049| m1049_3(decltype([...](...){...})) = Uninitialized[#temp1049:29] : &:r1049_2 +# 1049| r1049_4(glval) = FieldAddress[s] : r1049_2 +# 1049| r1049_5(glval) = FunctionAddress[String] : +# 1049| v1049_6(void) = Call[String] : func:r1049_5, this:r1049_4 +# 1049| m1049_7(unknown) = ^CallSideEffect : ~m1048_7 +# 1049| m1049_8(unknown) = Chi : total:m1048_7, partial:m1049_7 +# 1049| m1049_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1049_4 +# 1049| m1049_10(decltype([...](...){...})) = Chi : total:m1049_3, partial:m1049_9 +# 1049| r1049_11(decltype([...](...){...})) = Load[#temp1049:29] : &:r1049_2, m1049_10 +# 1049| m1049_12(decltype([...](...){...})) = Store[lambda_val_explicit] : &:r1049_1, r1049_11 +# 1050| r1050_1(glval) = VariableAddress[lambda_val_explicit] : +# 1050| r1050_2(glval) = Convert : r1050_1 +# 1050| r1050_3(glval) = FunctionAddress[operator()] : +# 1050| r1050_4(float) = Constant[4.0] : +# 1050| r1050_5(char) = Call[operator()] : func:r1050_3, this:r1050_2, 0:r1050_4 +# 1050| m1050_6(unknown) = ^CallSideEffect : ~m1049_8 +# 1050| m1050_7(unknown) = Chi : total:m1049_8, partial:m1050_6 +# 1050| v1050_8(void) = ^IndirectReadSideEffect[-1] : &:r1050_2, m1049_12 +# 1051| r1051_1(glval) = VariableAddress[lambda_mixed_explicit] : +# 1051| r1051_2(glval) = VariableAddress[#temp1051:31] : +# 1051| m1051_3(decltype([...](...){...})) = Uninitialized[#temp1051:31] : &:r1051_2 +# 1051| r1051_4(glval) = FieldAddress[s] : r1051_2 +# 1051| r1051_5(glval) = VariableAddress[s] : +# 1051| r1051_6(String &) = Load[s] : &:r1051_5, m1040_8 +# 1051| r1051_7(glval) = CopyValue : r1051_6 +# 1051| r1051_8(String &) = CopyValue : r1051_7 +# 1051| m1051_9(String &) = Store[?] : &:r1051_4, r1051_8 +# 1051| m1051_10(decltype([...](...){...})) = Chi : total:m1051_3, partial:m1051_9 +# 1051| r1051_11(glval) = FieldAddress[x] : r1051_2 +# 1051| r1051_12(glval) = VariableAddress[x] : +# 1051| r1051_13(int) = Load[x] : &:r1051_12, m1040_6 +# 1051| m1051_14(int) = Store[?] : &:r1051_11, r1051_13 +# 1051| m1051_15(decltype([...](...){...})) = Chi : total:m1051_10, partial:m1051_14 +# 1051| r1051_16(decltype([...](...){...})) = Load[#temp1051:31] : &:r1051_2, m1051_15 +# 1051| m1051_17(decltype([...](...){...})) = Store[lambda_mixed_explicit] : &:r1051_1, r1051_16 +# 1052| r1052_1(glval) = VariableAddress[lambda_mixed_explicit] : +# 1052| r1052_2(glval) = Convert : r1052_1 +# 1052| r1052_3(glval) = FunctionAddress[operator()] : +# 1052| r1052_4(float) = Constant[5.0] : +# 1052| r1052_5(char) = Call[operator()] : func:r1052_3, this:r1052_2, 0:r1052_4 +# 1052| m1052_6(unknown) = ^CallSideEffect : ~m1050_7 +# 1052| m1052_7(unknown) = Chi : total:m1050_7, partial:m1052_6 +# 1052| v1052_8(void) = ^IndirectReadSideEffect[-1] : &:r1052_2, m1051_17 +# 1053| r1053_1(glval) = VariableAddress[r] : +# 1053| r1053_2(glval) = VariableAddress[x] : +# 1053| r1053_3(int) = Load[x] : &:r1053_2, m1040_6 +# 1053| r1053_4(int) = Constant[1] : +# 1053| r1053_5(int) = Sub : r1053_3, r1053_4 +# 1053| m1053_6(int) = Store[r] : &:r1053_1, r1053_5 +# 1054| r1054_1(glval) = VariableAddress[lambda_inits] : +# 1054| r1054_2(glval) = VariableAddress[#temp1054:22] : +# 1054| m1054_3(decltype([...](...){...})) = Uninitialized[#temp1054:22] : &:r1054_2 +# 1054| r1054_4(glval) = FieldAddress[s] : r1054_2 +# 1054| r1054_5(glval) = VariableAddress[s] : +# 1054| r1054_6(String &) = Load[s] : &:r1054_5, m1040_8 +# 1054| r1054_7(glval) = CopyValue : r1054_6 +# 1054| r1054_8(String &) = CopyValue : r1054_7 +# 1054| m1054_9(String &) = Store[?] : &:r1054_4, r1054_8 +# 1054| m1054_10(decltype([...](...){...})) = Chi : total:m1054_3, partial:m1054_9 +# 1054| r1054_11(glval) = FieldAddress[x] : r1054_2 +# 1054| r1054_12(glval) = VariableAddress[x] : +# 1054| r1054_13(int) = Load[x] : &:r1054_12, m1040_6 +# 1054| m1054_14(int) = Store[?] : &:r1054_11, r1054_13 +# 1054| m1054_15(decltype([...](...){...})) = Chi : total:m1054_10, partial:m1054_14 +# 1054| r1054_16(glval) = FieldAddress[i] : r1054_2 +# 1054| r1054_17(glval) = VariableAddress[x] : +# 1054| r1054_18(int) = Load[x] : &:r1054_17, m1040_6 +# 1054| r1054_19(int) = Constant[1] : +# 1054| r1054_20(int) = Add : r1054_18, r1054_19 +# 1054| m1054_21(int) = Store[?] : &:r1054_16, r1054_20 +# 1054| m1054_22(decltype([...](...){...})) = Chi : total:m1054_15, partial:m1054_21 +# 1054| r1054_23(glval) = FieldAddress[j] : r1054_2 +# 1054| r1054_24(glval) = VariableAddress[r] : +# 1054| r1054_25(int &) = CopyValue : r1054_24 +# 1054| m1054_26(int &) = Store[?] : &:r1054_23, r1054_25 +# 1054| m1054_27(decltype([...](...){...})) = Chi : total:m1054_22, partial:m1054_26 +# 1054| r1054_28(decltype([...](...){...})) = Load[#temp1054:22] : &:r1054_2, m1054_27 +# 1054| m1054_29(decltype([...](...){...})) = Store[lambda_inits] : &:r1054_1, r1054_28 +# 1055| r1055_1(glval) = VariableAddress[lambda_inits] : +# 1055| r1055_2(glval) = Convert : r1055_1 +# 1055| r1055_3(glval) = FunctionAddress[operator()] : +# 1055| r1055_4(float) = Constant[6.0] : +# 1055| r1055_5(char) = Call[operator()] : func:r1055_3, this:r1055_2, 0:r1055_4 +# 1055| m1055_6(unknown) = ^CallSideEffect : ~m1052_7 +# 1055| m1055_7(unknown) = Chi : total:m1052_7, partial:m1055_6 +# 1055| v1055_8(void) = ^IndirectReadSideEffect[-1] : &:r1055_2, m1054_29 +# 1056| v1056_1(void) = NoOp : +# 1056| r1056_2(glval) = VariableAddress[lambda_val_explicit] : +# 1056| r1056_3(glval) = FunctionAddress[~] : +# 1056| v1056_4(void) = Call[~] : func:r1056_3, this:r1056_2 +# 1056| m1056_5(unknown) = ^CallSideEffect : ~m1055_7 +# 1056| m1056_6(unknown) = Chi : total:m1055_7, partial:m1056_5 +# 1056| v1056_7(void) = ^IndirectReadSideEffect[-1] : &:r1056_2, m1049_12 +# 1056| m1056_8(decltype([...](...){...})) = ^IndirectMayWriteSideEffect[-1] : &:r1056_2 +# 1056| m1056_9(decltype([...](...){...})) = Chi : total:m1049_12, partial:m1056_8 +# 1056| r1056_10(glval) = VariableAddress[lambda_val] : +# 1056| r1056_11(glval) = FunctionAddress[~] : +# 1056| v1056_12(void) = Call[~] : func:r1056_11, this:r1056_10 +# 1056| m1056_13(unknown) = ^CallSideEffect : ~m1056_6 +# 1056| m1056_14(unknown) = Chi : total:m1056_6, partial:m1056_13 +# 1056| v1056_15(void) = ^IndirectReadSideEffect[-1] : &:r1056_10, m1045_17 +# 1056| m1056_16(decltype([...](...){...})) = ^IndirectMayWriteSideEffect[-1] : &:r1056_10 +# 1056| m1056_17(decltype([...](...){...})) = Chi : total:m1045_17, partial:m1056_16 +# 1040| v1040_11(void) = ReturnIndirection[s] : &:r1040_9, m1040_10 +# 1040| v1040_12(void) = ReturnVoid : +# 1040| v1040_13(void) = AliasedUse : ~m1056_14 +# 1040| v1040_14(void) = ExitFunction : # 1041| void (void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)::(unnamed constructor)((void Lambda(int, String const&))::(lambda [] type at line 1041, col. 23)&&) # 1041| Block 0 @@ -7517,12 +7605,36 @@ ir.cpp: #-----| Goto -> Block 6 # 1244| Block 6 -# 1244| m1244_1(unknown) = Phi : from 4:~m1243_1, from 5:~m1243_17 -# 1244| v1244_2(void) = NoOp : -# 1240| v1240_9(void) = ReturnIndirection[dynamic] : &:r1240_7, m1240_8 -# 1240| v1240_10(void) = ReturnVoid : -# 1240| v1240_11(void) = AliasedUse : ~m1244_1 -# 1240| v1240_12(void) = ExitFunction : +# 1244| m1244_1(unknown) = Phi : from 4:~m1243_1, from 5:~m1243_17 +# 1244| v1244_2(void) = NoOp : +# 1244| r1244_3(glval) = VariableAddress[c] : +# 1244| r1244_4(glval) = FunctionAddress[~String] : +# 1244| v1244_5(void) = Call[~String] : func:r1244_4, this:r1244_3 +# 1244| m1244_6(unknown) = ^CallSideEffect : ~m1244_1 +# 1244| m1244_7(unknown) = Chi : total:m1244_1, partial:m1244_6 +# 1244| v1244_8(void) = ^IndirectReadSideEffect[-1] : &:r1244_3, ~m1244_7 +# 1244| m1244_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r1244_3 +# 1244| m1244_10(unknown) = Chi : total:m1244_7, partial:m1244_9 +# 1244| r1244_11(glval) = VariableAddress[b] : +# 1244| r1244_12(glval) = FunctionAddress[~String] : +# 1244| v1244_13(void) = Call[~String] : func:r1244_12, this:r1244_11 +# 1244| m1244_14(unknown) = ^CallSideEffect : ~m1244_10 +# 1244| m1244_15(unknown) = Chi : total:m1244_10, partial:m1244_14 +# 1244| v1244_16(void) = ^IndirectReadSideEffect[-1] : &:r1244_11, ~m1244_15 +# 1244| m1244_17(String) = ^IndirectMayWriteSideEffect[-1] : &:r1244_11 +# 1244| m1244_18(unknown) = Chi : total:m1244_15, partial:m1244_17 +# 1244| r1244_19(glval) = VariableAddress[a] : +# 1244| r1244_20(glval) = FunctionAddress[~String] : +# 1244| v1244_21(void) = Call[~String] : func:r1244_20, this:r1244_19 +# 1244| m1244_22(unknown) = ^CallSideEffect : ~m1244_18 +# 1244| m1244_23(unknown) = Chi : total:m1244_18, partial:m1244_22 +# 1244| v1244_24(void) = ^IndirectReadSideEffect[-1] : &:r1244_19, ~m1244_23 +# 1244| m1244_25(String) = ^IndirectMayWriteSideEffect[-1] : &:r1244_19 +# 1244| m1244_26(unknown) = Chi : total:m1244_23, partial:m1244_25 +# 1240| v1240_9(void) = ReturnIndirection[dynamic] : &:r1240_7, m1240_8 +# 1240| v1240_10(void) = ReturnVoid : +# 1240| v1240_11(void) = AliasedUse : ~m1244_26 +# 1240| v1240_12(void) = ExitFunction : # 1251| void test_strings(char*, char*) # 1251| Block 0 @@ -7717,9 +7829,17 @@ ir.cpp: # 1286| m1286_7(unknown) = ^CallSideEffect : ~m1286_4 # 1286| m1286_8(unknown) = Chi : total:m1286_4, partial:m1286_7 # 1287| v1287_1(void) = NoOp : +# 1287| r1287_2(glval) = VariableAddress[c] : +# 1287| r1287_3(glval) = FunctionAddress[~C] : +# 1287| v1287_4(void) = Call[~C] : func:r1287_3, this:r1287_2 +# 1287| m1287_5(unknown) = ^CallSideEffect : ~m1286_8 +# 1287| m1287_6(unknown) = Chi : total:m1286_8, partial:m1287_5 +# 1287| v1287_7(void) = ^IndirectReadSideEffect[-1] : &:r1287_2, m1271_8 +# 1287| m1287_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1287_2 +# 1287| m1287_9(C) = Chi : total:m1271_8, partial:m1287_8 # 1270| v1270_11(void) = ReturnIndirection[a_arg] : &:r1270_9, m1281_12 # 1270| v1270_12(void) = ReturnVoid : -# 1270| v1270_13(void) = AliasedUse : ~m1286_8 +# 1270| v1270_13(void) = AliasedUse : ~m1287_6 # 1270| v1270_14(void) = ExitFunction : # 1289| int missingReturnValue(bool, int) @@ -8279,8 +8399,16 @@ ir.cpp: # 1376| m1376_5(unknown) = Chi : total:m1374_11, partial:m1376_4 # 1376| m1376_6(String) = Store[#temp1376:5] : &:r1376_1, r1376_3 # 1377| v1377_1(void) = NoOp : +# 1377| r1377_2(glval) = VariableAddress[s] : +# 1377| r1377_3(glval) = FunctionAddress[~String] : +# 1377| v1377_4(void) = Call[~String] : func:r1377_3, this:r1377_2 +# 1377| m1377_5(unknown) = ^CallSideEffect : ~m1376_5 +# 1377| m1377_6(unknown) = Chi : total:m1376_5, partial:m1377_5 +# 1377| v1377_7(void) = ^IndirectReadSideEffect[-1] : &:r1377_2, m1366_6 +# 1377| m1377_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r1377_2 +# 1377| m1377_9(String) = Chi : total:m1366_6, partial:m1377_8 # 1365| v1365_5(void) = ReturnVoid : -# 1365| v1365_6(void) = AliasedUse : ~m1376_5 +# 1365| v1365_6(void) = AliasedUse : ~m1377_6 # 1365| v1365_7(void) = ExitFunction : # 1379| void temporary_destructor_only() @@ -8354,8 +8482,24 @@ ir.cpp: # 1388| m1388_5(unknown) = Chi : total:m1386_10, partial:m1388_4 # 1388| m1388_6(destructor_only) = Store[#temp1388:5] : &:r1388_1, r1388_3 # 1389| v1389_1(void) = NoOp : +# 1389| r1389_2(glval) = VariableAddress[d2] : +# 1389| r1389_3(glval) = FunctionAddress[~destructor_only] : +# 1389| v1389_4(void) = Call[~destructor_only] : func:r1389_3, this:r1389_2 +# 1389| m1389_5(unknown) = ^CallSideEffect : ~m1388_5 +# 1389| m1389_6(unknown) = Chi : total:m1388_5, partial:m1389_5 +# 1389| v1389_7(void) = ^IndirectReadSideEffect[-1] : &:r1389_2, m1382_2 +# 1389| m1389_8(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1389_2 +# 1389| m1389_9(destructor_only) = Chi : total:m1382_2, partial:m1389_8 +# 1389| r1389_10(glval) = VariableAddress[d] : +# 1389| r1389_11(glval) = FunctionAddress[~destructor_only] : +# 1389| v1389_12(void) = Call[~destructor_only] : func:r1389_11, this:r1389_10 +# 1389| m1389_13(unknown) = ^CallSideEffect : ~m1389_6 +# 1389| m1389_14(unknown) = Chi : total:m1389_6, partial:m1389_13 +# 1389| v1389_15(void) = ^IndirectReadSideEffect[-1] : &:r1389_10, m1380_6 +# 1389| m1389_16(destructor_only) = ^IndirectMayWriteSideEffect[-1] : &:r1389_10 +# 1389| m1389_17(destructor_only) = Chi : total:m1380_6, partial:m1389_16 # 1379| v1379_5(void) = ReturnVoid : -# 1379| v1379_6(void) = AliasedUse : ~m1388_5 +# 1379| v1379_6(void) = AliasedUse : ~m1389_14 # 1379| v1379_7(void) = ExitFunction : # 1391| void temporary_copy_constructor() @@ -11110,8 +11254,16 @@ ir.cpp: # 1925| r1925_6(glval) = VariableAddress[z] : # 1925| m1925_7(int) = Store[z] : &:r1925_6, r1925_3 # 1926| v1926_1(void) = NoOp : +# 1926| r1926_2(glval) = VariableAddress[c] : +# 1926| r1926_3(glval) = FunctionAddress[~C] : +# 1926| v1926_4(void) = Call[~C] : func:r1926_3, this:r1926_2 +# 1926| m1926_5(unknown) = ^CallSideEffect : ~m1925_5 +# 1926| m1926_6(unknown) = Chi : total:m1925_5, partial:m1926_5 +# 1926| v1926_7(void) = ^IndirectReadSideEffect[-1] : &:r1926_2, m1919_8 +# 1926| m1926_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1926_2 +# 1926| m1926_9(C) = Chi : total:m1919_8, partial:m1926_8 # 1918| v1918_5(void) = ReturnVoid : -# 1918| v1918_6(void) = AliasedUse : ~m1925_5 +# 1918| v1918_6(void) = AliasedUse : ~m1926_6 # 1918| v1918_7(void) = ExitFunction : # 1928| void test_double_assign() @@ -11371,8 +11523,16 @@ ir.cpp: # 1993| r1993_3(glval<..(*)(..)>) = VariableAddress[pfn] : # 1993| m1993_4(..(*)(..)) = Store[pfn] : &:r1993_3, r1993_2 # 1994| v1994_1(void) = NoOp : +# 1994| r1994_2(glval) = VariableAddress[c] : +# 1994| r1994_3(glval) = FunctionAddress[~C] : +# 1994| v1994_4(void) = Call[~C] : func:r1994_3, this:r1994_2 +# 1994| m1994_5(unknown) = ^CallSideEffect : ~m1991_6 +# 1994| m1994_6(unknown) = Chi : total:m1991_6, partial:m1994_5 +# 1994| v1994_7(void) = ^IndirectReadSideEffect[-1] : &:r1994_2, m1991_8 +# 1994| m1994_8(C) = ^IndirectMayWriteSideEffect[-1] : &:r1994_2 +# 1994| m1994_9(C) = Chi : total:m1991_8, partial:m1994_8 # 1990| v1990_5(void) = ReturnVoid : -# 1990| v1990_6(void) = AliasedUse : ~m1991_6 +# 1990| v1990_6(void) = AliasedUse : ~m1994_6 # 1990| v1990_7(void) = ExitFunction : # 1996| void TernaryTestInt(bool, int, int, int) @@ -12441,6 +12601,490 @@ ir.cpp: # 2109| v2109_12(void) = AliasedUse : m2109_3 # 2109| v2109_13(void) = ExitFunction : +# 2115| void TryCatchDestructors(bool) +# 2115| Block 0 +# 2115| v2115_1(void) = EnterFunction : +# 2115| m2115_2(unknown) = AliasedDefinition : +# 2115| m2115_3(unknown) = InitializeNonLocal : +# 2115| m2115_4(unknown) = Chi : total:m2115_2, partial:m2115_3 +# 2115| r2115_5(glval) = VariableAddress[b] : +# 2115| m2115_6(bool) = InitializeParameter[b] : &:r2115_5 +# 2117| r2117_1(glval) = VariableAddress[s] : +# 2117| m2117_2(String) = Uninitialized[s] : &:r2117_1 +# 2117| r2117_3(glval) = FunctionAddress[String] : +# 2117| v2117_4(void) = Call[String] : func:r2117_3, this:r2117_1 +# 2117| m2117_5(unknown) = ^CallSideEffect : ~m2115_4 +# 2117| m2117_6(unknown) = Chi : total:m2115_4, partial:m2117_5 +# 2117| m2117_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2117_1 +# 2117| m2117_8(String) = Chi : total:m2117_2, partial:m2117_7 +# 2118| r2118_1(glval) = VariableAddress[b] : +# 2118| r2118_2(bool) = Load[b] : &:r2118_1, m2115_6 +# 2118| v2118_3(void) = ConditionalBranch : r2118_2 +#-----| False -> Block 4 +#-----| True -> Block 3 + +# 2115| Block 1 +# 2115| m2115_7(unknown) = Phi : from 2:~m2115_10, from 10:~m2131_1 +# 2115| v2115_8(void) = AliasedUse : ~m2115_7 +# 2115| v2115_9(void) = ExitFunction : + +# 2115| Block 2 +# 2115| m2115_10(unknown) = Phi : from 6:~m2124_8, from 9:~m2117_6 +# 2115| v2115_11(void) = Unwind : +#-----| Goto -> Block 1 + +# 2119| Block 3 +# 2119| r2119_1(glval) = VariableAddress[#throw2119:7] : +# 2119| r2119_2(glval) = StringConstant["string literal"] : +# 2119| r2119_3(char *) = Convert : r2119_2 +# 2119| m2119_4(char *) = Store[#throw2119:7] : &:r2119_1, r2119_3 +# 2119| v2119_5(void) = ThrowValue : &:r2119_1, m2119_4 +#-----| Exception -> Block 5 + +# 2121| Block 4 +# 2121| r2121_1(glval) = VariableAddress[s2] : +# 2121| m2121_2(String) = Uninitialized[s2] : &:r2121_1 +# 2121| r2121_3(glval) = FunctionAddress[String] : +# 2121| v2121_4(void) = Call[String] : func:r2121_3, this:r2121_1 +# 2121| m2121_5(unknown) = ^CallSideEffect : ~m2117_6 +# 2121| m2121_6(unknown) = Chi : total:m2117_6, partial:m2121_5 +# 2121| m2121_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2121_1 +# 2121| m2121_8(String) = Chi : total:m2121_2, partial:m2121_7 +# 2122| r2122_1(glval) = VariableAddress[s2] : +# 2122| r2122_2(glval) = FunctionAddress[~String] : +# 2122| v2122_3(void) = Call[~String] : func:r2122_2, this:r2122_1 +# 2122| m2122_4(unknown) = ^CallSideEffect : ~m2121_6 +# 2122| m2122_5(unknown) = Chi : total:m2121_6, partial:m2122_4 +# 2122| v2122_6(void) = ^IndirectReadSideEffect[-1] : &:r2122_1, m2121_8 +# 2122| m2122_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2122_1 +# 2122| m2122_8(String) = Chi : total:m2121_8, partial:m2122_7 +# 2122| r2122_9(glval) = VariableAddress[s] : +# 2122| r2122_10(glval) = FunctionAddress[~String] : +# 2122| v2122_11(void) = Call[~String] : func:r2122_10, this:r2122_9 +# 2122| m2122_12(unknown) = ^CallSideEffect : ~m2122_5 +# 2122| m2122_13(unknown) = Chi : total:m2122_5, partial:m2122_12 +# 2122| v2122_14(void) = ^IndirectReadSideEffect[-1] : &:r2122_9, m2117_8 +# 2122| m2122_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2122_9 +# 2122| m2122_16(String) = Chi : total:m2117_8, partial:m2122_15 +#-----| Goto -> Block 10 + +# 2123| Block 5 +# 2123| v2123_1(void) = CatchByType[const char *] : +#-----| Exception -> Block 7 +#-----| Goto -> Block 6 + +# 2123| Block 6 +# 2123| r2123_2(glval) = VariableAddress[s] : +# 2123| m2123_3(char *) = InitializeParameter[s] : &:r2123_2 +# 2123| r2123_4(char *) = Load[s] : &:r2123_2, m2123_3 +# 2123| m2123_5(unknown) = InitializeIndirection[s] : &:r2123_4 +# 2124| r2124_1(glval) = VariableAddress[#throw2124:5] : +# 2124| m2124_2(String) = Uninitialized[#throw2124:5] : &:r2124_1 +# 2124| r2124_3(glval) = FunctionAddress[String] : +# 2124| r2124_4(glval) = VariableAddress[s] : +# 2124| r2124_5(char *) = Load[s] : &:r2124_4, m2123_3 +# 2124| v2124_6(void) = Call[String] : func:r2124_3, this:r2124_1, 0:r2124_5 +# 2124| m2124_7(unknown) = ^CallSideEffect : ~m2117_6 +# 2124| m2124_8(unknown) = Chi : total:m2117_6, partial:m2124_7 +# 2124| v2124_9(void) = ^BufferReadSideEffect[0] : &:r2124_5, ~m2123_5 +# 2124| m2124_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2124_1 +# 2124| m2124_11(String) = Chi : total:m2124_2, partial:m2124_10 +# 2124| v2124_12(void) = ThrowValue : &:r2124_1, m2124_11 +#-----| Exception -> Block 2 + +# 2126| Block 7 +# 2126| v2126_1(void) = CatchByType[const String &] : +#-----| Exception -> Block 9 +#-----| Goto -> Block 8 + +# 2126| Block 8 +# 2126| r2126_2(glval) = VariableAddress[e] : +# 2126| m2126_3(String &) = InitializeParameter[e] : &:r2126_2 +# 2126| r2126_4(String &) = Load[e] : &:r2126_2, m2126_3 +# 2126| m2126_5(unknown) = InitializeIndirection[e] : &:r2126_4 +# 2126| v2126_6(void) = NoOp : +#-----| Goto -> Block 10 + +# 2128| Block 9 +# 2128| v2128_1(void) = CatchAny : +# 2129| v2129_1(void) = ReThrow : +#-----| Exception -> Block 2 + +# 2131| Block 10 +# 2131| m2131_1(unknown) = Phi : from 4:~m2122_13, from 8:~m2117_6 +# 2131| v2131_2(void) = NoOp : +# 2115| v2115_12(void) = ReturnVoid : +#-----| Goto -> Block 1 + +# 2133| void IfDestructors(bool) +# 2133| Block 0 +# 2133| v2133_1(void) = EnterFunction : +# 2133| m2133_2(unknown) = AliasedDefinition : +# 2133| m2133_3(unknown) = InitializeNonLocal : +# 2133| m2133_4(unknown) = Chi : total:m2133_2, partial:m2133_3 +# 2133| r2133_5(glval) = VariableAddress[b] : +# 2133| m2133_6(bool) = InitializeParameter[b] : &:r2133_5 +# 2134| r2134_1(glval) = VariableAddress[s1] : +# 2134| m2134_2(String) = Uninitialized[s1] : &:r2134_1 +# 2134| r2134_3(glval) = FunctionAddress[String] : +# 2134| v2134_4(void) = Call[String] : func:r2134_3, this:r2134_1 +# 2134| m2134_5(unknown) = ^CallSideEffect : ~m2133_4 +# 2134| m2134_6(unknown) = Chi : total:m2133_4, partial:m2134_5 +# 2134| m2134_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2134_1 +# 2134| m2134_8(String) = Chi : total:m2134_2, partial:m2134_7 +# 2135| r2135_1(glval) = VariableAddress[b] : +# 2135| r2135_2(bool) = Load[b] : &:r2135_1, m2133_6 +# 2135| v2135_3(void) = ConditionalBranch : r2135_2 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2136| Block 1 +# 2136| r2136_1(glval) = VariableAddress[s2] : +# 2136| m2136_2(String) = Uninitialized[s2] : &:r2136_1 +# 2136| r2136_3(glval) = FunctionAddress[String] : +# 2136| v2136_4(void) = Call[String] : func:r2136_3, this:r2136_1 +# 2136| m2136_5(unknown) = ^CallSideEffect : ~m2134_6 +# 2136| m2136_6(unknown) = Chi : total:m2134_6, partial:m2136_5 +# 2136| m2136_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2136_1 +# 2136| m2136_8(String) = Chi : total:m2136_2, partial:m2136_7 +# 2137| r2137_1(glval) = VariableAddress[s2] : +# 2137| r2137_2(glval) = FunctionAddress[~String] : +# 2137| v2137_3(void) = Call[~String] : func:r2137_2, this:r2137_1 +# 2137| m2137_4(unknown) = ^CallSideEffect : ~m2136_6 +# 2137| m2137_5(unknown) = Chi : total:m2136_6, partial:m2137_4 +# 2137| v2137_6(void) = ^IndirectReadSideEffect[-1] : &:r2137_1, m2136_8 +# 2137| m2137_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2137_1 +# 2137| m2137_8(String) = Chi : total:m2136_8, partial:m2137_7 +#-----| Goto -> Block 3 + +# 2138| Block 2 +# 2138| r2138_1(glval) = VariableAddress[s3] : +# 2138| m2138_2(String) = Uninitialized[s3] : &:r2138_1 +# 2138| r2138_3(glval) = FunctionAddress[String] : +# 2138| v2138_4(void) = Call[String] : func:r2138_3, this:r2138_1 +# 2138| m2138_5(unknown) = ^CallSideEffect : ~m2134_6 +# 2138| m2138_6(unknown) = Chi : total:m2134_6, partial:m2138_5 +# 2138| m2138_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2138_1 +# 2138| m2138_8(String) = Chi : total:m2138_2, partial:m2138_7 +# 2139| r2139_1(glval) = VariableAddress[s3] : +# 2139| r2139_2(glval) = FunctionAddress[~String] : +# 2139| v2139_3(void) = Call[~String] : func:r2139_2, this:r2139_1 +# 2139| m2139_4(unknown) = ^CallSideEffect : ~m2138_6 +# 2139| m2139_5(unknown) = Chi : total:m2138_6, partial:m2139_4 +# 2139| v2139_6(void) = ^IndirectReadSideEffect[-1] : &:r2139_1, m2138_8 +# 2139| m2139_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2139_1 +# 2139| m2139_8(String) = Chi : total:m2138_8, partial:m2139_7 +#-----| Goto -> Block 3 + +# 2140| Block 3 +# 2140| m2140_1(unknown) = Phi : from 1:~m2137_5, from 2:~m2139_5 +# 2140| r2140_2(glval) = VariableAddress[s4] : +# 2140| m2140_3(String) = Uninitialized[s4] : &:r2140_2 +# 2140| r2140_4(glval) = FunctionAddress[String] : +# 2140| v2140_5(void) = Call[String] : func:r2140_4, this:r2140_2 +# 2140| m2140_6(unknown) = ^CallSideEffect : ~m2140_1 +# 2140| m2140_7(unknown) = Chi : total:m2140_1, partial:m2140_6 +# 2140| m2140_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2140_2 +# 2140| m2140_9(String) = Chi : total:m2140_3, partial:m2140_8 +# 2141| v2141_1(void) = NoOp : +# 2141| r2141_2(glval) = VariableAddress[s4] : +# 2141| r2141_3(glval) = FunctionAddress[~String] : +# 2141| v2141_4(void) = Call[~String] : func:r2141_3, this:r2141_2 +# 2141| m2141_5(unknown) = ^CallSideEffect : ~m2140_7 +# 2141| m2141_6(unknown) = Chi : total:m2140_7, partial:m2141_5 +# 2141| v2141_7(void) = ^IndirectReadSideEffect[-1] : &:r2141_2, m2140_9 +# 2141| m2141_8(String) = ^IndirectMayWriteSideEffect[-1] : &:r2141_2 +# 2141| m2141_9(String) = Chi : total:m2140_9, partial:m2141_8 +# 2141| r2141_10(glval) = VariableAddress[s1] : +# 2141| r2141_11(glval) = FunctionAddress[~String] : +# 2141| v2141_12(void) = Call[~String] : func:r2141_11, this:r2141_10 +# 2141| m2141_13(unknown) = ^CallSideEffect : ~m2141_6 +# 2141| m2141_14(unknown) = Chi : total:m2141_6, partial:m2141_13 +# 2141| v2141_15(void) = ^IndirectReadSideEffect[-1] : &:r2141_10, m2134_8 +# 2141| m2141_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r2141_10 +# 2141| m2141_17(String) = Chi : total:m2134_8, partial:m2141_16 +# 2133| v2133_7(void) = ReturnVoid : +# 2133| v2133_8(void) = AliasedUse : ~m2141_14 +# 2133| v2133_9(void) = ExitFunction : + +# 2143| void ForDestructors() +# 2143| Block 0 +# 2143| v2143_1(void) = EnterFunction : +# 2143| m2143_2(unknown) = AliasedDefinition : +# 2143| m2143_3(unknown) = InitializeNonLocal : +# 2143| m2143_4(unknown) = Chi : total:m2143_2, partial:m2143_3 +# 2144| r2144_1(glval) = VariableAddress[c] : +# 2144| r2144_2(char) = Constant[97] : +# 2144| m2144_3(char) = Store[c] : &:r2144_1, r2144_2 +# 2145| r2145_1(glval) = VariableAddress[s] : +# 2145| m2145_2(String) = Uninitialized[s] : &:r2145_1 +# 2145| r2145_3(glval) = FunctionAddress[String] : +# 2145| r2145_4(glval) = StringConstant["hello"] : +# 2145| r2145_5(char *) = Convert : r2145_4 +# 2145| v2145_6(void) = Call[String] : func:r2145_3, this:r2145_1, 0:r2145_5 +# 2145| m2145_7(unknown) = ^CallSideEffect : ~m2143_4 +# 2145| m2145_8(unknown) = Chi : total:m2143_4, partial:m2145_7 +# 2145| v2145_9(void) = ^BufferReadSideEffect[0] : &:r2145_5, ~m2143_3 +# 2145| m2145_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2145_1 +# 2145| m2145_11(String) = Chi : total:m2145_2, partial:m2145_10 +#-----| Goto -> Block 1 + +# 2145| Block 1 +# 2145| m2145_12(String) = Phi : from 0:m2145_11, from 2:m2145_28 +# 2145| m2145_13(unknown) = Phi : from 0:~m2145_8, from 2:~m2145_25 +# 2145| m2145_14(char) = Phi : from 0:m2144_3, from 2:m2145_30 +# 2145| r2145_15(glval) = VariableAddress[c] : +# 2145| r2145_16(char) = Load[c] : &:r2145_15, m2145_14 +# 2145| r2145_17(int) = Convert : r2145_16 +# 2145| r2145_18(int) = Constant[0] : +# 2145| r2145_19(bool) = CompareNE : r2145_17, r2145_18 +# 2145| v2145_20(void) = ConditionalBranch : r2145_19 +#-----| False -> Block 3 +#-----| True -> Block 2 + +# 2146| Block 2 +# 2146| r2146_1(glval) = VariableAddress[s2] : +# 2146| m2146_2(String) = Uninitialized[s2] : &:r2146_1 +# 2146| r2146_3(glval) = FunctionAddress[String] : +# 2146| v2146_4(void) = Call[String] : func:r2146_3, this:r2146_1 +# 2146| m2146_5(unknown) = ^CallSideEffect : ~m2145_13 +# 2146| m2146_6(unknown) = Chi : total:m2145_13, partial:m2146_5 +# 2146| m2146_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2146_1 +# 2146| m2146_8(String) = Chi : total:m2146_2, partial:m2146_7 +# 2147| r2147_1(glval) = VariableAddress[s2] : +# 2147| r2147_2(glval) = FunctionAddress[~String] : +# 2147| v2147_3(void) = Call[~String] : func:r2147_2, this:r2147_1 +# 2147| m2147_4(unknown) = ^CallSideEffect : ~m2146_6 +# 2147| m2147_5(unknown) = Chi : total:m2146_6, partial:m2147_4 +# 2147| v2147_6(void) = ^IndirectReadSideEffect[-1] : &:r2147_1, m2146_8 +# 2147| m2147_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2147_1 +# 2147| m2147_8(String) = Chi : total:m2146_8, partial:m2147_7 +# 2145| r2145_21(glval) = VariableAddress[s] : +# 2145| r2145_22(glval) = FunctionAddress[pop_back] : +# 2145| r2145_23(char) = Call[pop_back] : func:r2145_22, this:r2145_21 +# 2145| m2145_24(unknown) = ^CallSideEffect : ~m2147_5 +# 2145| m2145_25(unknown) = Chi : total:m2147_5, partial:m2145_24 +# 2145| v2145_26(void) = ^IndirectReadSideEffect[-1] : &:r2145_21, m2145_12 +# 2145| m2145_27(String) = ^IndirectMayWriteSideEffect[-1] : &:r2145_21 +# 2145| m2145_28(String) = Chi : total:m2145_12, partial:m2145_27 +# 2145| r2145_29(glval) = VariableAddress[c] : +# 2145| m2145_30(char) = Store[c] : &:r2145_29, r2145_23 +#-----| Goto (back edge) -> Block 1 + +# 2145| Block 3 +# 2145| r2145_31(glval) = VariableAddress[s] : +# 2145| r2145_32(glval) = FunctionAddress[~String] : +# 2145| v2145_33(void) = Call[~String] : func:r2145_32, this:r2145_31 +# 2145| m2145_34(unknown) = ^CallSideEffect : ~m2145_13 +# 2145| m2145_35(unknown) = Chi : total:m2145_13, partial:m2145_34 +# 2145| v2145_36(void) = ^IndirectReadSideEffect[-1] : &:r2145_31, m2145_12 +# 2145| m2145_37(String) = ^IndirectMayWriteSideEffect[-1] : &:r2145_31 +# 2145| m2145_38(String) = Chi : total:m2145_12, partial:m2145_37 +# 2149| r2149_1(glval &&>) = VariableAddress[(__range)] : +# 2149| r2149_2(glval>) = VariableAddress[#temp2149:20] : +# 2149| m2149_3(vector) = Uninitialized[#temp2149:20] : &:r2149_2 +# 2149| r2149_4(glval) = FunctionAddress[vector] : +# 2149| r2149_5(glval) = VariableAddress[#temp2149:35] : +# 2149| m2149_6(String) = Uninitialized[#temp2149:35] : &:r2149_5 +# 2149| r2149_7(glval) = FunctionAddress[String] : +# 2149| r2149_8(glval) = StringConstant["hello"] : +# 2149| r2149_9(char *) = Convert : r2149_8 +# 2149| v2149_10(void) = Call[String] : func:r2149_7, this:r2149_5, 0:r2149_9 +# 2149| m2149_11(unknown) = ^CallSideEffect : ~m2145_35 +# 2149| m2149_12(unknown) = Chi : total:m2145_35, partial:m2149_11 +# 2149| v2149_13(void) = ^BufferReadSideEffect[0] : &:r2149_9, ~m2143_3 +# 2149| m2149_14(String) = ^IndirectMayWriteSideEffect[-1] : &:r2149_5 +# 2149| m2149_15(String) = Chi : total:m2149_6, partial:m2149_14 +# 2149| r2149_16(String) = Load[#temp2149:35] : &:r2149_5, m2149_15 +# 2149| v2149_17(void) = Call[vector] : func:r2149_4, this:r2149_2, 0:r2149_16 +# 2149| m2149_18(unknown) = ^CallSideEffect : ~m2149_12 +# 2149| m2149_19(unknown) = Chi : total:m2149_12, partial:m2149_18 +# 2149| m2149_20(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2149_2 +# 2149| m2149_21(vector) = Chi : total:m2149_3, partial:m2149_20 +# 2149| r2149_22(vector &) = CopyValue : r2149_2 +# 2149| m2149_23(vector &&) = Store[(__range)] : &:r2149_1, r2149_22 +# 2149| r2149_24(glval) = VariableAddress[(__begin)] : +# 2149| r2149_25(glval &&>) = VariableAddress[(__range)] : +# 2149| r2149_26(vector &&) = Load[(__range)] : &:r2149_25, m2149_23 +#-----| r0_1(glval>) = CopyValue : r2149_26 +#-----| r0_2(glval>) = Convert : r0_1 +# 2149| r2149_27(glval) = FunctionAddress[begin] : +# 2149| r2149_28(iterator) = Call[begin] : func:r2149_27, this:r0_2 +# 2149| m2149_29(unknown) = ^CallSideEffect : ~m2149_19 +# 2149| m2149_30(unknown) = Chi : total:m2149_19, partial:m2149_29 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2149_21 +# 2149| m2149_31(iterator) = Store[(__begin)] : &:r2149_24, r2149_28 +# 2149| r2149_32(glval) = VariableAddress[(__end)] : +# 2149| r2149_33(glval &&>) = VariableAddress[(__range)] : +# 2149| r2149_34(vector &&) = Load[(__range)] : &:r2149_33, m2149_23 +#-----| r0_4(glval>) = CopyValue : r2149_34 +#-----| r0_5(glval>) = Convert : r0_4 +# 2149| r2149_35(glval) = FunctionAddress[end] : +# 2149| r2149_36(iterator) = Call[end] : func:r2149_35, this:r0_5 +# 2149| m2149_37(unknown) = ^CallSideEffect : ~m2149_30 +# 2149| m2149_38(unknown) = Chi : total:m2149_30, partial:m2149_37 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2149_21 +# 2149| m2149_39(iterator) = Store[(__end)] : &:r2149_32, r2149_36 +#-----| Goto -> Block 4 + +# 2149| Block 4 +# 2149| m2149_40(iterator) = Phi : from 3:m2149_31, from 5:m2149_74 +# 2149| m2149_41(unknown) = Phi : from 3:~m2149_38, from 5:~m2149_71 +# 2149| r2149_42(glval) = VariableAddress[(__begin)] : +#-----| r0_7(glval) = Convert : r2149_42 +# 2149| r2149_43(glval) = FunctionAddress[operator!=] : +# 2149| r2149_44(glval) = VariableAddress[(__end)] : +# 2149| r2149_45(iterator) = Load[(__end)] : &:r2149_44, m2149_39 +# 2149| r2149_46(bool) = Call[operator!=] : func:r2149_43, this:r0_7, 0:r2149_45 +# 2149| m2149_47(unknown) = ^CallSideEffect : ~m2149_41 +# 2149| m2149_48(unknown) = Chi : total:m2149_41, partial:m2149_47 +#-----| v0_8(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2149_40 +# 2149| v2149_49(void) = ConditionalBranch : r2149_46 +#-----| False -> Block 6 +#-----| True -> Block 5 + +# 2149| Block 5 +# 2149| r2149_50(glval) = VariableAddress[s] : +# 2149| m2149_51(String) = Uninitialized[s] : &:r2149_50 +# 2149| r2149_52(glval) = FunctionAddress[String] : +# 2149| r2149_53(glval) = VariableAddress[(__begin)] : +#-----| r0_9(glval) = Convert : r2149_53 +# 2149| r2149_54(glval) = FunctionAddress[operator*] : +# 2149| r2149_55(String &) = Call[operator*] : func:r2149_54, this:r0_9 +# 2149| m2149_56(unknown) = ^CallSideEffect : ~m2149_48 +# 2149| m2149_57(unknown) = Chi : total:m2149_48, partial:m2149_56 +#-----| v0_10(void) = ^IndirectReadSideEffect[-1] : &:r0_9, m2149_40 +# 2149| r2149_58(glval) = CopyValue : r2149_55 +# 2149| r2149_59(glval) = Convert : r2149_58 +# 2149| r2149_60(String &) = CopyValue : r2149_59 +# 2149| v2149_61(void) = Call[String] : func:r2149_52, this:r2149_50, 0:r2149_60 +# 2149| m2149_62(unknown) = ^CallSideEffect : ~m2149_57 +# 2149| m2149_63(unknown) = Chi : total:m2149_57, partial:m2149_62 +# 2149| v2149_64(void) = ^BufferReadSideEffect[0] : &:r2149_60, ~m2149_63 +# 2149| m2149_65(String) = ^IndirectMayWriteSideEffect[-1] : &:r2149_50 +# 2149| m2149_66(String) = Chi : total:m2149_51, partial:m2149_65 +# 2150| r2150_1(glval) = VariableAddress[s2] : +# 2150| m2150_2(String) = Uninitialized[s2] : &:r2150_1 +# 2150| r2150_3(glval) = FunctionAddress[String] : +# 2150| v2150_4(void) = Call[String] : func:r2150_3, this:r2150_1 +# 2150| m2150_5(unknown) = ^CallSideEffect : ~m2149_63 +# 2150| m2150_6(unknown) = Chi : total:m2149_63, partial:m2150_5 +# 2150| m2150_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2150_1 +# 2150| m2150_8(String) = Chi : total:m2150_2, partial:m2150_7 +# 2151| r2151_1(glval) = VariableAddress[s2] : +# 2151| r2151_2(glval) = FunctionAddress[~String] : +# 2151| v2151_3(void) = Call[~String] : func:r2151_2, this:r2151_1 +# 2151| m2151_4(unknown) = ^CallSideEffect : ~m2150_6 +# 2151| m2151_5(unknown) = Chi : total:m2150_6, partial:m2151_4 +# 2151| v2151_6(void) = ^IndirectReadSideEffect[-1] : &:r2151_1, m2150_8 +# 2151| m2151_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2151_1 +# 2151| m2151_8(String) = Chi : total:m2150_8, partial:m2151_7 +# 2149| r2149_67(glval) = VariableAddress[(__begin)] : +# 2149| r2149_68(glval) = FunctionAddress[operator++] : +# 2149| r2149_69(iterator &) = Call[operator++] : func:r2149_68, this:r2149_67 +# 2149| m2149_70(unknown) = ^CallSideEffect : ~m2151_5 +# 2149| m2149_71(unknown) = Chi : total:m2151_5, partial:m2149_70 +# 2149| v2149_72(void) = ^IndirectReadSideEffect[-1] : &:r2149_67, m2149_40 +# 2149| m2149_73(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2149_67 +# 2149| m2149_74(iterator) = Chi : total:m2149_40, partial:m2149_73 +# 2149| r2149_75(glval) = CopyValue : r2149_69 +#-----| Goto (back edge) -> Block 4 + +# 2152| Block 6 +# 2152| v2152_1(void) = NoOp : +# 2143| v2143_5(void) = ReturnVoid : +# 2143| v2143_6(void) = AliasedUse : ~m2149_48 +# 2143| v2143_7(void) = ExitFunction : + +# 2154| void IfDestructors2(bool) +# 2154| Block 0 +# 2154| v2154_1(void) = EnterFunction : +# 2154| m2154_2(unknown) = AliasedDefinition : +# 2154| m2154_3(unknown) = InitializeNonLocal : +# 2154| m2154_4(unknown) = Chi : total:m2154_2, partial:m2154_3 +# 2154| r2154_5(glval) = VariableAddress[b] : +# 2154| m2154_6(bool) = InitializeParameter[b] : &:r2154_5 +# 2155| r2155_1(glval) = VariableAddress[s] : +# 2155| m2155_2(String) = Uninitialized[s] : &:r2155_1 +# 2155| r2155_3(glval) = FunctionAddress[String] : +# 2155| r2155_4(glval) = StringConstant["hello"] : +# 2155| r2155_5(char *) = Convert : r2155_4 +# 2155| v2155_6(void) = Call[String] : func:r2155_3, this:r2155_1, 0:r2155_5 +# 2155| m2155_7(unknown) = ^CallSideEffect : ~m2154_4 +# 2155| m2155_8(unknown) = Chi : total:m2154_4, partial:m2155_7 +# 2155| v2155_9(void) = ^BufferReadSideEffect[0] : &:r2155_5, ~m2154_3 +# 2155| m2155_10(String) = ^IndirectMayWriteSideEffect[-1] : &:r2155_1 +# 2155| m2155_11(String) = Chi : total:m2155_2, partial:m2155_10 +# 2155| r2155_12(glval) = VariableAddress[b] : +# 2155| r2155_13(bool) = Load[b] : &:r2155_12, m2154_6 +# 2155| v2155_14(void) = ConditionalBranch : r2155_13 +#-----| False -> Block 2 +#-----| True -> Block 1 + +# 2156| Block 1 +# 2156| r2156_1(glval) = VariableAddress[x] : +# 2156| r2156_2(int) = Constant[0] : +# 2156| m2156_3(int) = Store[x] : &:r2156_1, r2156_2 +#-----| Goto -> Block 3 + +# 2158| Block 2 +# 2158| r2158_1(glval) = VariableAddress[y] : +# 2158| r2158_2(int) = Constant[0] : +# 2158| m2158_3(int) = Store[y] : &:r2158_1, r2158_2 +#-----| Goto -> Block 3 + +# 2159| Block 3 +# 2159| r2159_1(glval) = VariableAddress[s] : +# 2159| r2159_2(glval) = FunctionAddress[~String] : +# 2159| v2159_3(void) = Call[~String] : func:r2159_2, this:r2159_1 +# 2159| m2159_4(unknown) = ^CallSideEffect : ~m2155_8 +# 2159| m2159_5(unknown) = Chi : total:m2155_8, partial:m2159_4 +# 2159| v2159_6(void) = ^IndirectReadSideEffect[-1] : &:r2159_1, m2155_11 +# 2159| m2159_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2159_1 +# 2159| m2159_8(String) = Chi : total:m2155_11, partial:m2159_7 +# 2160| v2160_1(void) = NoOp : +# 2154| v2154_7(void) = ReturnVoid : +# 2154| v2154_8(void) = AliasedUse : ~m2159_5 +# 2154| v2154_9(void) = ExitFunction : + +# 2169| void IfDestructors3(bool) +# 2169| Block 0 +# 2169| v2169_1(void) = EnterFunction : +# 2169| m2169_2(unknown) = AliasedDefinition : +# 2169| m2169_3(unknown) = InitializeNonLocal : +# 2169| m2169_4(unknown) = Chi : total:m2169_2, partial:m2169_3 +# 2169| r2169_5(glval) = VariableAddress[b] : +# 2169| m2169_6(bool) = InitializeParameter[b] : &:r2169_5 +# 2170| r2170_1(glval) = VariableAddress[B] : +# 2170| m2170_2(Bool) = Uninitialized[B] : &:r2170_1 +# 2170| r2170_3(glval) = FunctionAddress[Bool] : +# 2170| r2170_4(glval) = VariableAddress[b] : +# 2170| r2170_5(bool) = Load[b] : &:r2170_4, m2169_6 +# 2170| v2170_6(void) = Call[Bool] : func:r2170_3, this:r2170_1, 0:r2170_5 +# 2170| m2170_7(unknown) = ^CallSideEffect : ~m2169_4 +# 2170| m2170_8(unknown) = Chi : total:m2169_4, partial:m2170_7 +# 2170| m2170_9(Bool) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1 +# 2170| m2170_10(Bool) = Chi : total:m2170_2, partial:m2170_9 + +# 2185| void IfInitiaiizationConstructor(bool) +# 2185| Block 0 +# 2185| v2185_1(void) = EnterFunction : +# 2185| m2185_2(unknown) = AliasedDefinition : +# 2185| m2185_3(unknown) = InitializeNonLocal : +# 2185| m2185_4(unknown) = Chi : total:m2185_2, partial:m2185_3 +# 2185| r2185_5(glval) = VariableAddress[b] : +# 2185| m2185_6(bool) = InitializeParameter[b] : &:r2185_5 +# 2186| r2186_1(glval) = VariableAddress[B] : +# 2186| m2186_2(Bool2) = Uninitialized[B] : &:r2186_1 +# 2186| r2186_3(glval) = FunctionAddress[Bool2] : +# 2186| r2186_4(glval) = VariableAddress[b] : +# 2186| r2186_5(bool) = Load[b] : &:r2186_4, m2185_6 +# 2186| v2186_6(void) = Call[Bool2] : func:r2186_3, this:r2186_1, 0:r2186_5 +# 2186| m2186_7(unknown) = ^CallSideEffect : ~m2185_4 +# 2186| m2186_8(unknown) = Chi : total:m2185_4, partial:m2186_7 +# 2186| m2186_9(Bool2) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1 +# 2186| m2186_10(Bool2) = Chi : total:m2186_2, partial:m2186_9 + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 @@ -12525,13 +13169,21 @@ smart_ptr.cpp: # 12| v12_10(void) = Call[unique_ptr_arg] : func:r12_1, 0:r12_9 # 12| m12_11(unknown) = ^CallSideEffect : ~m11_8 # 12| m12_12(unknown) = Chi : total:m11_8, partial:m12_11 -# 12| v12_13(void) = ^BufferReadSideEffect[0] : &:r12_9, ~m10_8 +# 12| v12_13(void) = ^BufferReadSideEffect[0] : &:r12_9, ~m12_12 # 12| m12_14(unknown) = ^BufferMayWriteSideEffect[0] : &:r12_9 -# 12| m12_15(unknown) = Chi : total:m10_8, partial:m12_14 +# 12| m12_15(unknown) = Chi : total:m12_12, partial:m12_14 # 13| v13_1(void) = NoOp : -# 10| v10_9(void) = ReturnIndirection[p] : &:r10_7, m12_15 +# 13| r13_2(glval>>) = VariableAddress[up] : +# 13| r13_3(glval) = FunctionAddress[~unique_ptr] : +# 13| v13_4(void) = Call[~unique_ptr] : func:r13_3, this:r13_2 +# 13| m13_5(unknown) = ^CallSideEffect : ~m12_15 +# 13| m13_6(unknown) = Chi : total:m12_15, partial:m13_5 +# 13| v13_7(void) = ^IndirectReadSideEffect[-1] : &:r13_2, m11_9 +# 13| m13_8(unique_ptr>) = ^IndirectMayWriteSideEffect[-1] : &:r13_2 +# 13| m13_9(unique_ptr>) = Chi : total:m11_9, partial:m13_8 +# 10| v10_9(void) = ReturnIndirection[p] : &:r10_7, m10_8 # 10| v10_10(void) = ReturnVoid : -# 10| v10_11(void) = AliasedUse : ~m12_12 +# 10| v10_11(void) = AliasedUse : ~m13_6 # 10| v10_12(void) = ExitFunction : # 17| void call_shared_ptr_arg(float*) @@ -12569,13 +13221,21 @@ smart_ptr.cpp: # 19| v19_14(void) = Call[shared_ptr_arg] : func:r19_1, 0:r19_13 # 19| m19_15(unknown) = ^CallSideEffect : ~m19_10 # 19| m19_16(unknown) = Chi : total:m19_10, partial:m19_15 -# 19| v19_17(void) = ^BufferReadSideEffect[0] : &:r19_13, ~m17_8 +# 19| v19_17(void) = ^BufferReadSideEffect[0] : &:r19_13, ~m19_16 # 19| m19_18(unknown) = ^BufferMayWriteSideEffect[0] : &:r19_13 -# 19| m19_19(unknown) = Chi : total:m17_8, partial:m19_18 +# 19| m19_19(unknown) = Chi : total:m19_16, partial:m19_18 # 20| v20_1(void) = NoOp : -# 17| v17_9(void) = ReturnIndirection[p] : &:r17_7, m19_19 +# 20| r20_2(glval>) = VariableAddress[sp] : +# 20| r20_3(glval) = FunctionAddress[~shared_ptr] : +# 20| v20_4(void) = Call[~shared_ptr] : func:r20_3, this:r20_2 +# 20| m20_5(unknown) = ^CallSideEffect : ~m19_19 +# 20| m20_6(unknown) = Chi : total:m19_19, partial:m20_5 +# 20| v20_7(void) = ^IndirectReadSideEffect[-1] : &:r20_2, m18_9 +# 20| m20_8(shared_ptr) = ^IndirectMayWriteSideEffect[-1] : &:r20_2 +# 20| m20_9(shared_ptr) = Chi : total:m18_9, partial:m20_8 +# 17| v17_9(void) = ReturnIndirection[p] : &:r17_7, m17_8 # 17| v17_10(void) = ReturnVoid : -# 17| v17_11(void) = AliasedUse : ~m19_16 +# 17| v17_11(void) = AliasedUse : ~m20_6 # 17| v17_12(void) = ExitFunction : # 28| void call_shared_ptr_consts() @@ -12686,8 +13346,48 @@ smart_ptr.cpp: # 47| m47_16(unknown) = Chi : total:m47_10, partial:m47_15 # 47| v47_17(void) = ^BufferReadSideEffect[0] : &:r47_13, ~m47_16 # 48| v48_1(void) = NoOp : +# 48| r48_2(glval>>) = VariableAddress[sp_const_sp_const_int] : +# 48| r48_3(glval) = FunctionAddress[~shared_ptr] : +# 48| v48_4(void) = Call[~shared_ptr] : func:r48_3, this:r48_2 +# 48| m48_5(unknown) = ^CallSideEffect : ~m47_16 +# 48| m48_6(unknown) = Chi : total:m47_16, partial:m48_5 +# 48| v48_7(void) = ^IndirectReadSideEffect[-1] : &:r48_2, m45_2 +# 48| m48_8(shared_ptr>) = ^IndirectMayWriteSideEffect[-1] : &:r48_2 +# 48| m48_9(shared_ptr>) = Chi : total:m45_2, partial:m48_8 +# 48| r48_10(glval>>) = VariableAddress[sp_const_sp_int] : +# 48| r48_11(glval) = FunctionAddress[~shared_ptr] : +# 48| v48_12(void) = Call[~shared_ptr] : func:r48_11, this:r48_10 +# 48| m48_13(unknown) = ^CallSideEffect : ~m48_6 +# 48| m48_14(unknown) = Chi : total:m48_6, partial:m48_13 +# 48| v48_15(void) = ^IndirectReadSideEffect[-1] : &:r48_10, m41_2 +# 48| m48_16(shared_ptr>) = ^IndirectMayWriteSideEffect[-1] : &:r48_10 +# 48| m48_17(shared_ptr>) = Chi : total:m41_2, partial:m48_16 +# 48| r48_18(glval>>) = VariableAddress[sp_sp_const_int] : +# 48| r48_19(glval) = FunctionAddress[~shared_ptr] : +# 48| v48_20(void) = Call[~shared_ptr] : func:r48_19, this:r48_18 +# 48| m48_21(unknown) = ^CallSideEffect : ~m48_14 +# 48| m48_22(unknown) = Chi : total:m48_14, partial:m48_21 +# 48| v48_23(void) = ^IndirectReadSideEffect[-1] : &:r48_18, m37_2 +# 48| m48_24(shared_ptr>) = ^IndirectMayWriteSideEffect[-1] : &:r48_18 +# 48| m48_25(shared_ptr>) = Chi : total:m37_2, partial:m48_24 +# 48| r48_26(glval>) = VariableAddress[sp_const_int_pointer] : +# 48| r48_27(glval) = FunctionAddress[~shared_ptr] : +# 48| v48_28(void) = Call[~shared_ptr] : func:r48_27, this:r48_26 +# 48| m48_29(unknown) = ^CallSideEffect : ~m48_22 +# 48| m48_30(unknown) = Chi : total:m48_22, partial:m48_29 +# 48| v48_31(void) = ^IndirectReadSideEffect[-1] : &:r48_26, m33_2 +# 48| m48_32(shared_ptr) = ^IndirectMayWriteSideEffect[-1] : &:r48_26 +# 48| m48_33(shared_ptr) = Chi : total:m33_2, partial:m48_32 +# 48| r48_34(glval>) = VariableAddress[sp_const_int] : +# 48| r48_35(glval) = FunctionAddress[~shared_ptr] : +# 48| v48_36(void) = Call[~shared_ptr] : func:r48_35, this:r48_34 +# 48| m48_37(unknown) = ^CallSideEffect : ~m48_30 +# 48| m48_38(unknown) = Chi : total:m48_30, partial:m48_37 +# 48| v48_39(void) = ^IndirectReadSideEffect[-1] : &:r48_34, m29_2 +# 48| m48_40(shared_ptr) = ^IndirectMayWriteSideEffect[-1] : &:r48_34 +# 48| m48_41(shared_ptr) = Chi : total:m29_2, partial:m48_40 # 28| v28_5(void) = ReturnVoid : -# 28| v28_6(void) = AliasedUse : ~m47_16 +# 28| v28_6(void) = AliasedUse : ~m48_38 # 28| v28_7(void) = ExitFunction : struct_init.cpp: diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected index 79887fffc1f..e60d57f0ed6 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected @@ -6,13 +6,19 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor +| ir.cpp:2170:16:2170:23 | Chi: call to Bool | Instruction 'Chi: call to Bool' has no successors in function '$@'. | ir.cpp:2169:6:2169:19 | void IfDestructors3(bool) | void IfDestructors3(bool) | +| ir.cpp:2186:17:2186:25 | Chi: call to Bool2 | Instruction 'Chi: call to Bool2' has no successors in function '$@'. | ir.cpp:2185:6:2185:32 | void IfInitiaiizationConstructor(bool) | void IfInitiaiizationConstructor(bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions instructionWithoutUniqueBlock +missingCanonicalLanguageType +multipleCanonicalLanguageTypes containsLoopOfForwardEdges +missingIRType +multipleIRTypes lostReachability backEdgeCountMismatch useNotDominatedByDefinition @@ -24,8 +30,4 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -missingCanonicalLanguageType -multipleCanonicalLanguageTypes -missingIRType -multipleIRTypes missingCppType diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected index 79887fffc1f..e60d57f0ed6 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected @@ -6,13 +6,19 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor +| ir.cpp:2170:16:2170:23 | Chi: call to Bool | Instruction 'Chi: call to Bool' has no successors in function '$@'. | ir.cpp:2169:6:2169:19 | void IfDestructors3(bool) | void IfDestructors3(bool) | +| ir.cpp:2186:17:2186:25 | Chi: call to Bool2 | Instruction 'Chi: call to Bool2' has no successors in function '$@'. | ir.cpp:2185:6:2185:32 | void IfInitiaiizationConstructor(bool) | void IfInitiaiizationConstructor(bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions instructionWithoutUniqueBlock +missingCanonicalLanguageType +multipleCanonicalLanguageTypes containsLoopOfForwardEdges +missingIRType +multipleIRTypes lostReachability backEdgeCountMismatch useNotDominatedByDefinition @@ -24,8 +30,4 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -missingCanonicalLanguageType -multipleCanonicalLanguageTypes -missingIRType -multipleIRTypes missingCppType diff --git a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected index 1a3da84e78f..e22621042e7 100644 --- a/cpp/ql/test/library-tests/ir/ir/operand_locations.expected +++ b/cpp/ql/test/library-tests/ir/ir/operand_locations.expected @@ -689,6 +689,7 @@ | file://:0:0:0:0 | Address | &:r0_1 | | file://:0:0:0:0 | Address | &:r0_1 | | file://:0:0:0:0 | Address | &:r0_2 | +| file://:0:0:0:0 | Address | &:r0_2 | | file://:0:0:0:0 | Address | &:r0_3 | | file://:0:0:0:0 | Address | &:r0_3 | | file://:0:0:0:0 | Address | &:r0_3 | @@ -732,12 +733,14 @@ | file://:0:0:0:0 | Address | &:r0_5 | | file://:0:0:0:0 | Address | &:r0_5 | | file://:0:0:0:0 | Address | &:r0_5 | +| file://:0:0:0:0 | Address | &:r0_5 | | file://:0:0:0:0 | Address | &:r0_6 | | file://:0:0:0:0 | Address | &:r0_6 | | file://:0:0:0:0 | Address | &:r0_7 | | file://:0:0:0:0 | Address | &:r0_7 | | file://:0:0:0:0 | Address | &:r0_7 | | file://:0:0:0:0 | Address | &:r0_7 | +| file://:0:0:0:0 | Address | &:r0_7 | | file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_8 | @@ -747,6 +750,7 @@ | file://:0:0:0:0 | Address | &:r0_8 | | file://:0:0:0:0 | Address | &:r0_9 | | file://:0:0:0:0 | Address | &:r0_9 | +| file://:0:0:0:0 | Address | &:r0_9 | | file://:0:0:0:0 | Address | &:r0_10 | | file://:0:0:0:0 | Address | &:r0_10 | | file://:0:0:0:0 | Address | &:r0_10 | @@ -864,6 +868,10 @@ | file://:0:0:0:0 | SideEffect | m1078_23 | | file://:0:0:0:0 | SideEffect | m1084_23 | | file://:0:0:0:0 | SideEffect | m1084_23 | +| file://:0:0:0:0 | SideEffect | m2149_21 | +| file://:0:0:0:0 | SideEffect | m2149_21 | +| file://:0:0:0:0 | SideEffect | m2149_40 | +| file://:0:0:0:0 | SideEffect | m2149_40 | | file://:0:0:0:0 | SideEffect | ~m0_4 | | file://:0:0:0:0 | SideEffect | ~m0_4 | | file://:0:0:0:0 | SideEffect | ~m0_4 | @@ -909,8 +917,10 @@ | file://:0:0:0:0 | StoreValue | r0_22 | | file://:0:0:0:0 | Unary | r0_1 | | file://:0:0:0:0 | Unary | r0_1 | +| file://:0:0:0:0 | Unary | r0_1 | | file://:0:0:0:0 | Unary | r0_2 | | file://:0:0:0:0 | Unary | r0_3 | +| file://:0:0:0:0 | Unary | r0_4 | | file://:0:0:0:0 | Unary | r0_5 | | file://:0:0:0:0 | Unary | r0_5 | | file://:0:0:0:0 | Unary | r0_6 | @@ -2960,7 +2970,7 @@ | ir.cpp:594:15:594:27 | Unary | r594_1 | | ir.cpp:615:6:615:18 | ChiPartial | partial:m615_3 | | ir.cpp:615:6:615:18 | ChiTotal | total:m615_2 | -| ir.cpp:615:6:615:18 | SideEffect | ~m619_8 | +| ir.cpp:615:6:615:18 | SideEffect | ~m620_30 | | ir.cpp:616:12:616:13 | Address | &:r616_1 | | ir.cpp:616:12:616:13 | Address | &:r616_1 | | ir.cpp:616:12:616:13 | Arg(this) | this:r616_1 | @@ -3002,6 +3012,46 @@ | ir.cpp:619:24:619:29 | Arg(0) | 0:r619_5 | | ir.cpp:619:24:619:29 | SideEffect | ~m615_3 | | ir.cpp:619:24:619:29 | Unary | r619_4 | +| ir.cpp:620:1:620:1 | Address | &:r620_2 | +| ir.cpp:620:1:620:1 | Address | &:r620_2 | +| ir.cpp:620:1:620:1 | Address | &:r620_10 | +| ir.cpp:620:1:620:1 | Address | &:r620_10 | +| ir.cpp:620:1:620:1 | Address | &:r620_18 | +| ir.cpp:620:1:620:1 | Address | &:r620_18 | +| ir.cpp:620:1:620:1 | Address | &:r620_26 | +| ir.cpp:620:1:620:1 | Address | &:r620_26 | +| ir.cpp:620:1:620:1 | Arg(this) | this:r620_2 | +| ir.cpp:620:1:620:1 | Arg(this) | this:r620_10 | +| ir.cpp:620:1:620:1 | Arg(this) | this:r620_18 | +| ir.cpp:620:1:620:1 | Arg(this) | this:r620_26 | +| ir.cpp:620:1:620:1 | CallTarget | func:r620_3 | +| ir.cpp:620:1:620:1 | CallTarget | func:r620_11 | +| ir.cpp:620:1:620:1 | CallTarget | func:r620_19 | +| ir.cpp:620:1:620:1 | CallTarget | func:r620_27 | +| ir.cpp:620:1:620:1 | ChiPartial | partial:m620_5 | +| ir.cpp:620:1:620:1 | ChiPartial | partial:m620_8 | +| ir.cpp:620:1:620:1 | ChiPartial | partial:m620_13 | +| ir.cpp:620:1:620:1 | ChiPartial | partial:m620_16 | +| ir.cpp:620:1:620:1 | ChiPartial | partial:m620_21 | +| ir.cpp:620:1:620:1 | ChiPartial | partial:m620_24 | +| ir.cpp:620:1:620:1 | ChiPartial | partial:m620_29 | +| ir.cpp:620:1:620:1 | ChiPartial | partial:m620_32 | +| ir.cpp:620:1:620:1 | ChiTotal | total:m616_8 | +| ir.cpp:620:1:620:1 | ChiTotal | total:m617_11 | +| ir.cpp:620:1:620:1 | ChiTotal | total:m618_6 | +| ir.cpp:620:1:620:1 | ChiTotal | total:m619_8 | +| ir.cpp:620:1:620:1 | ChiTotal | total:m619_11 | +| ir.cpp:620:1:620:1 | ChiTotal | total:m620_6 | +| ir.cpp:620:1:620:1 | ChiTotal | total:m620_14 | +| ir.cpp:620:1:620:1 | ChiTotal | total:m620_22 | +| ir.cpp:620:1:620:1 | SideEffect | m616_8 | +| ir.cpp:620:1:620:1 | SideEffect | m617_11 | +| ir.cpp:620:1:620:1 | SideEffect | m618_6 | +| ir.cpp:620:1:620:1 | SideEffect | m619_11 | +| ir.cpp:620:1:620:1 | SideEffect | ~m619_8 | +| ir.cpp:620:1:620:1 | SideEffect | ~m620_6 | +| ir.cpp:620:1:620:1 | SideEffect | ~m620_14 | +| ir.cpp:620:1:620:1 | SideEffect | ~m620_22 | | ir.cpp:622:6:622:16 | ChiPartial | partial:m622_3 | | ir.cpp:622:6:622:16 | ChiTotal | total:m622_2 | | ir.cpp:622:6:622:16 | SideEffect | ~m625_6 | @@ -3916,7 +3966,7 @@ | ir.cpp:796:3:796:3 | SideEffect | ~m796_16 | | ir.cpp:799:6:799:25 | ChiPartial | partial:m799_3 | | ir.cpp:799:6:799:25 | ChiTotal | total:m799_2 | -| ir.cpp:799:6:799:25 | SideEffect | ~m831_10 | +| ir.cpp:799:6:799:25 | SideEffect | ~m840_22 | | ir.cpp:800:8:800:8 | Address | &:r800_1 | | ir.cpp:800:8:800:8 | Address | &:r800_1 | | ir.cpp:800:8:800:8 | Arg(this) | this:r800_1 | @@ -4267,6 +4317,36 @@ | ir.cpp:839:8:839:10 | Load | m837_3 | | ir.cpp:839:8:839:10 | StoreValue | r839_3 | | ir.cpp:839:8:839:10 | Unary | r839_2 | +| ir.cpp:840:1:840:1 | Address | &:r840_2 | +| ir.cpp:840:1:840:1 | Address | &:r840_2 | +| ir.cpp:840:1:840:1 | Address | &:r840_10 | +| ir.cpp:840:1:840:1 | Address | &:r840_10 | +| ir.cpp:840:1:840:1 | Address | &:r840_18 | +| ir.cpp:840:1:840:1 | Address | &:r840_18 | +| ir.cpp:840:1:840:1 | Arg(this) | this:r840_2 | +| ir.cpp:840:1:840:1 | Arg(this) | this:r840_10 | +| ir.cpp:840:1:840:1 | Arg(this) | this:r840_18 | +| ir.cpp:840:1:840:1 | CallTarget | func:r840_3 | +| ir.cpp:840:1:840:1 | CallTarget | func:r840_11 | +| ir.cpp:840:1:840:1 | CallTarget | func:r840_19 | +| ir.cpp:840:1:840:1 | ChiPartial | partial:m840_5 | +| ir.cpp:840:1:840:1 | ChiPartial | partial:m840_8 | +| ir.cpp:840:1:840:1 | ChiPartial | partial:m840_13 | +| ir.cpp:840:1:840:1 | ChiPartial | partial:m840_16 | +| ir.cpp:840:1:840:1 | ChiPartial | partial:m840_21 | +| ir.cpp:840:1:840:1 | ChiPartial | partial:m840_24 | +| ir.cpp:840:1:840:1 | ChiTotal | total:m817_13 | +| ir.cpp:840:1:840:1 | ChiTotal | total:m824_24 | +| ir.cpp:840:1:840:1 | ChiTotal | total:m831_10 | +| ir.cpp:840:1:840:1 | ChiTotal | total:m831_14 | +| ir.cpp:840:1:840:1 | ChiTotal | total:m840_6 | +| ir.cpp:840:1:840:1 | ChiTotal | total:m840_14 | +| ir.cpp:840:1:840:1 | SideEffect | m817_13 | +| ir.cpp:840:1:840:1 | SideEffect | m824_24 | +| ir.cpp:840:1:840:1 | SideEffect | m831_14 | +| ir.cpp:840:1:840:1 | SideEffect | ~m831_10 | +| ir.cpp:840:1:840:1 | SideEffect | ~m840_6 | +| ir.cpp:840:1:840:1 | SideEffect | ~m840_14 | | ir.cpp:842:8:842:8 | Address | &:r842_5 | | ir.cpp:842:8:842:8 | Address | &:r842_5 | | ir.cpp:842:8:842:8 | Address | &:r842_7 | @@ -4311,7 +4391,7 @@ | ir.cpp:846:8:846:8 | Unary | m846_6 | | ir.cpp:849:6:849:16 | ChiPartial | partial:m849_3 | | ir.cpp:849:6:849:16 | ChiTotal | total:m849_2 | -| ir.cpp:849:6:849:16 | SideEffect | ~m851_6 | +| ir.cpp:849:6:849:16 | SideEffect | ~m865_14 | | ir.cpp:850:19:850:19 | Address | &:r850_1 | | ir.cpp:850:19:850:19 | Address | &:r850_1 | | ir.cpp:850:19:850:19 | Arg(this) | this:r850_1 | @@ -4364,6 +4444,26 @@ | ir.cpp:864:47:864:48 | Address | &:r864_2 | | ir.cpp:864:47:864:48 | Load | m860_5 | | ir.cpp:864:47:864:48 | Unary | r864_3 | +| ir.cpp:865:1:865:1 | Address | &:r865_2 | +| ir.cpp:865:1:865:1 | Address | &:r865_2 | +| ir.cpp:865:1:865:1 | Address | &:r865_10 | +| ir.cpp:865:1:865:1 | Address | &:r865_10 | +| ir.cpp:865:1:865:1 | Arg(this) | this:r865_2 | +| ir.cpp:865:1:865:1 | Arg(this) | this:r865_10 | +| ir.cpp:865:1:865:1 | CallTarget | func:r865_3 | +| ir.cpp:865:1:865:1 | CallTarget | func:r865_11 | +| ir.cpp:865:1:865:1 | ChiPartial | partial:m865_5 | +| ir.cpp:865:1:865:1 | ChiPartial | partial:m865_8 | +| ir.cpp:865:1:865:1 | ChiPartial | partial:m865_13 | +| ir.cpp:865:1:865:1 | ChiPartial | partial:m865_16 | +| ir.cpp:865:1:865:1 | ChiTotal | total:m850_8 | +| ir.cpp:865:1:865:1 | ChiTotal | total:m851_6 | +| ir.cpp:865:1:865:1 | ChiTotal | total:m851_8 | +| ir.cpp:865:1:865:1 | ChiTotal | total:m865_6 | +| ir.cpp:865:1:865:1 | SideEffect | m850_8 | +| ir.cpp:865:1:865:1 | SideEffect | m851_8 | +| ir.cpp:865:1:865:1 | SideEffect | ~m851_6 | +| ir.cpp:865:1:865:1 | SideEffect | ~m865_6 | | ir.cpp:867:1:867:14 | Address | &:m867_6 | | ir.cpp:867:1:867:14 | Address | &:r867_5 | | ir.cpp:867:1:867:14 | Address | &:r867_5 | @@ -5047,7 +5147,7 @@ | ir.cpp:1038:14:1038:14 | StoreValue | r1038_10 | | ir.cpp:1040:6:1040:11 | ChiPartial | partial:m1040_3 | | ir.cpp:1040:6:1040:11 | ChiTotal | total:m1040_2 | -| ir.cpp:1040:6:1040:11 | SideEffect | ~m1055_7 | +| ir.cpp:1040:6:1040:11 | SideEffect | ~m1056_14 | | ir.cpp:1040:17:1040:17 | Address | &:r1040_5 | | ir.cpp:1040:34:1040:34 | Address | &:r1040_7 | | ir.cpp:1040:34:1040:34 | Address | &:r1040_7 | @@ -5525,6 +5625,26 @@ | ir.cpp:1055:15:1055:15 | ChiTotal | total:m1052_7 | | ir.cpp:1055:15:1055:15 | SideEffect | ~m1052_7 | | ir.cpp:1055:16:1055:16 | Arg(0) | 0:r1055_4 | +| ir.cpp:1056:1:1056:1 | Address | &:r1056_2 | +| ir.cpp:1056:1:1056:1 | Address | &:r1056_2 | +| ir.cpp:1056:1:1056:1 | Address | &:r1056_10 | +| ir.cpp:1056:1:1056:1 | Address | &:r1056_10 | +| ir.cpp:1056:1:1056:1 | Arg(this) | this:r1056_2 | +| ir.cpp:1056:1:1056:1 | Arg(this) | this:r1056_10 | +| ir.cpp:1056:1:1056:1 | CallTarget | func:r1056_3 | +| ir.cpp:1056:1:1056:1 | CallTarget | func:r1056_11 | +| ir.cpp:1056:1:1056:1 | ChiPartial | partial:m1056_5 | +| ir.cpp:1056:1:1056:1 | ChiPartial | partial:m1056_8 | +| ir.cpp:1056:1:1056:1 | ChiPartial | partial:m1056_13 | +| ir.cpp:1056:1:1056:1 | ChiPartial | partial:m1056_16 | +| ir.cpp:1056:1:1056:1 | ChiTotal | total:m1045_17 | +| ir.cpp:1056:1:1056:1 | ChiTotal | total:m1049_12 | +| ir.cpp:1056:1:1056:1 | ChiTotal | total:m1055_7 | +| ir.cpp:1056:1:1056:1 | ChiTotal | total:m1056_6 | +| ir.cpp:1056:1:1056:1 | SideEffect | m1045_17 | +| ir.cpp:1056:1:1056:1 | SideEffect | m1049_12 | +| ir.cpp:1056:1:1056:1 | SideEffect | ~m1055_7 | +| ir.cpp:1056:1:1056:1 | SideEffect | ~m1056_6 | | ir.cpp:1077:6:1077:18 | ChiPartial | partial:m1077_3 | | ir.cpp:1077:6:1077:18 | ChiTotal | total:m1077_2 | | ir.cpp:1077:6:1077:18 | SideEffect | ~m1088_1 | @@ -6030,7 +6150,7 @@ | ir.cpp:1237:24:1237:24 | Right | r1237_13 | | ir.cpp:1240:6:1240:31 | ChiPartial | partial:m1240_3 | | ir.cpp:1240:6:1240:31 | ChiTotal | total:m1240_2 | -| ir.cpp:1240:6:1240:31 | SideEffect | ~m1244_1 | +| ir.cpp:1240:6:1240:31 | SideEffect | ~m1244_26 | | ir.cpp:1240:45:1240:51 | Address | &:r1240_5 | | ir.cpp:1240:45:1240:51 | Address | &:r1240_5 | | ir.cpp:1240:45:1240:51 | Address | &:r1240_7 | @@ -6089,8 +6209,38 @@ | ir.cpp:1243:21:1243:27 | Arg(0) | 0:r1243_8 | | ir.cpp:1243:21:1243:27 | Load | m1240_6 | | ir.cpp:1243:21:1243:27 | SideEffect | ~m1240_8 | +| ir.cpp:1244:1:1244:1 | Address | &:r1244_3 | +| ir.cpp:1244:1:1244:1 | Address | &:r1244_3 | +| ir.cpp:1244:1:1244:1 | Address | &:r1244_11 | +| ir.cpp:1244:1:1244:1 | Address | &:r1244_11 | +| ir.cpp:1244:1:1244:1 | Address | &:r1244_19 | +| ir.cpp:1244:1:1244:1 | Address | &:r1244_19 | +| ir.cpp:1244:1:1244:1 | Arg(this) | this:r1244_3 | +| ir.cpp:1244:1:1244:1 | Arg(this) | this:r1244_11 | +| ir.cpp:1244:1:1244:1 | Arg(this) | this:r1244_19 | +| ir.cpp:1244:1:1244:1 | CallTarget | func:r1244_4 | +| ir.cpp:1244:1:1244:1 | CallTarget | func:r1244_12 | +| ir.cpp:1244:1:1244:1 | CallTarget | func:r1244_20 | +| ir.cpp:1244:1:1244:1 | ChiPartial | partial:m1244_6 | +| ir.cpp:1244:1:1244:1 | ChiPartial | partial:m1244_9 | +| ir.cpp:1244:1:1244:1 | ChiPartial | partial:m1244_14 | +| ir.cpp:1244:1:1244:1 | ChiPartial | partial:m1244_17 | +| ir.cpp:1244:1:1244:1 | ChiPartial | partial:m1244_22 | +| ir.cpp:1244:1:1244:1 | ChiPartial | partial:m1244_25 | +| ir.cpp:1244:1:1244:1 | ChiTotal | total:m1244_1 | +| ir.cpp:1244:1:1244:1 | ChiTotal | total:m1244_7 | +| ir.cpp:1244:1:1244:1 | ChiTotal | total:m1244_10 | +| ir.cpp:1244:1:1244:1 | ChiTotal | total:m1244_15 | +| ir.cpp:1244:1:1244:1 | ChiTotal | total:m1244_18 | +| ir.cpp:1244:1:1244:1 | ChiTotal | total:m1244_23 | | ir.cpp:1244:1:1244:1 | Phi | from 4:~m1243_1 | | ir.cpp:1244:1:1244:1 | Phi | from 5:~m1243_17 | +| ir.cpp:1244:1:1244:1 | SideEffect | ~m1244_1 | +| ir.cpp:1244:1:1244:1 | SideEffect | ~m1244_7 | +| ir.cpp:1244:1:1244:1 | SideEffect | ~m1244_10 | +| ir.cpp:1244:1:1244:1 | SideEffect | ~m1244_15 | +| ir.cpp:1244:1:1244:1 | SideEffect | ~m1244_18 | +| ir.cpp:1244:1:1244:1 | SideEffect | ~m1244_23 | | ir.cpp:1251:6:1251:17 | ChiPartial | partial:m1251_3 | | ir.cpp:1251:6:1251:17 | ChiTotal | total:m1251_2 | | ir.cpp:1251:6:1251:17 | SideEffect | m1251_3 | @@ -6166,7 +6316,7 @@ | ir.cpp:1262:21:1262:21 | StoreValue | r1262_2 | | ir.cpp:1270:6:1270:33 | ChiPartial | partial:m1270_3 | | ir.cpp:1270:6:1270:33 | ChiTotal | total:m1270_2 | -| ir.cpp:1270:6:1270:33 | SideEffect | ~m1286_8 | +| ir.cpp:1270:6:1270:33 | SideEffect | ~m1287_6 | | ir.cpp:1270:39:1270:45 | Address | &:r1270_5 | | ir.cpp:1270:51:1270:55 | Address | &:r1270_7 | | ir.cpp:1270:51:1270:55 | Address | &:r1270_7 | @@ -6286,6 +6436,16 @@ | ir.cpp:1286:25:1286:49 | ChiPartial | partial:m1286_7 | | ir.cpp:1286:25:1286:49 | ChiTotal | total:m1286_4 | | ir.cpp:1286:25:1286:49 | SideEffect | ~m1286_4 | +| ir.cpp:1287:1:1287:1 | Address | &:r1287_2 | +| ir.cpp:1287:1:1287:1 | Address | &:r1287_2 | +| ir.cpp:1287:1:1287:1 | Arg(this) | this:r1287_2 | +| ir.cpp:1287:1:1287:1 | CallTarget | func:r1287_3 | +| ir.cpp:1287:1:1287:1 | ChiPartial | partial:m1287_5 | +| ir.cpp:1287:1:1287:1 | ChiPartial | partial:m1287_8 | +| ir.cpp:1287:1:1287:1 | ChiTotal | total:m1271_8 | +| ir.cpp:1287:1:1287:1 | ChiTotal | total:m1286_8 | +| ir.cpp:1287:1:1287:1 | SideEffect | m1271_8 | +| ir.cpp:1287:1:1287:1 | SideEffect | ~m1286_8 | | ir.cpp:1289:5:1289:22 | Address | &:r1289_10 | | ir.cpp:1289:5:1289:22 | ChiPartial | partial:m1289_3 | | ir.cpp:1289:5:1289:22 | ChiTotal | total:m1289_2 | @@ -6564,7 +6724,7 @@ | ir.cpp:1327:5:1327:15 | StoreValue | r1327_2 | | ir.cpp:1365:6:1365:21 | ChiPartial | partial:m1365_3 | | ir.cpp:1365:6:1365:21 | ChiTotal | total:m1365_2 | -| ir.cpp:1365:6:1365:21 | SideEffect | ~m1376_5 | +| ir.cpp:1365:6:1365:21 | SideEffect | ~m1377_6 | | ir.cpp:1366:12:1366:12 | Address | &:r1366_1 | | ir.cpp:1366:16:1366:34 | CallTarget | func:r1366_2 | | ir.cpp:1366:16:1366:34 | ChiPartial | partial:m1366_4 | @@ -6689,9 +6849,19 @@ | ir.cpp:1376:5:1376:28 | SideEffect | ~m1374_11 | | ir.cpp:1376:5:1376:28 | StoreValue | r1376_3 | | ir.cpp:1376:5:1376:30 | Address | &:r1376_1 | +| ir.cpp:1377:1:1377:1 | Address | &:r1377_2 | +| ir.cpp:1377:1:1377:1 | Address | &:r1377_2 | +| ir.cpp:1377:1:1377:1 | Arg(this) | this:r1377_2 | +| ir.cpp:1377:1:1377:1 | CallTarget | func:r1377_3 | +| ir.cpp:1377:1:1377:1 | ChiPartial | partial:m1377_5 | +| ir.cpp:1377:1:1377:1 | ChiPartial | partial:m1377_8 | +| ir.cpp:1377:1:1377:1 | ChiTotal | total:m1366_6 | +| ir.cpp:1377:1:1377:1 | ChiTotal | total:m1376_5 | +| ir.cpp:1377:1:1377:1 | SideEffect | m1366_6 | +| ir.cpp:1377:1:1377:1 | SideEffect | ~m1376_5 | | ir.cpp:1379:6:1379:30 | ChiPartial | partial:m1379_3 | | ir.cpp:1379:6:1379:30 | ChiTotal | total:m1379_2 | -| ir.cpp:1379:6:1379:30 | SideEffect | ~m1388_5 | +| ir.cpp:1379:6:1379:30 | SideEffect | ~m1389_14 | | ir.cpp:1380:21:1380:21 | Address | &:r1380_1 | | ir.cpp:1380:25:1380:52 | CallTarget | func:r1380_2 | | ir.cpp:1380:25:1380:52 | ChiPartial | partial:m1380_4 | @@ -6763,6 +6933,26 @@ | ir.cpp:1388:5:1388:37 | SideEffect | ~m1386_10 | | ir.cpp:1388:5:1388:37 | StoreValue | r1388_3 | | ir.cpp:1388:5:1388:39 | Address | &:r1388_1 | +| ir.cpp:1389:1:1389:1 | Address | &:r1389_2 | +| ir.cpp:1389:1:1389:1 | Address | &:r1389_2 | +| ir.cpp:1389:1:1389:1 | Address | &:r1389_10 | +| ir.cpp:1389:1:1389:1 | Address | &:r1389_10 | +| ir.cpp:1389:1:1389:1 | Arg(this) | this:r1389_2 | +| ir.cpp:1389:1:1389:1 | Arg(this) | this:r1389_10 | +| ir.cpp:1389:1:1389:1 | CallTarget | func:r1389_3 | +| ir.cpp:1389:1:1389:1 | CallTarget | func:r1389_11 | +| ir.cpp:1389:1:1389:1 | ChiPartial | partial:m1389_5 | +| ir.cpp:1389:1:1389:1 | ChiPartial | partial:m1389_8 | +| ir.cpp:1389:1:1389:1 | ChiPartial | partial:m1389_13 | +| ir.cpp:1389:1:1389:1 | ChiPartial | partial:m1389_16 | +| ir.cpp:1389:1:1389:1 | ChiTotal | total:m1380_6 | +| ir.cpp:1389:1:1389:1 | ChiTotal | total:m1382_2 | +| ir.cpp:1389:1:1389:1 | ChiTotal | total:m1388_5 | +| ir.cpp:1389:1:1389:1 | ChiTotal | total:m1389_6 | +| ir.cpp:1389:1:1389:1 | SideEffect | m1380_6 | +| ir.cpp:1389:1:1389:1 | SideEffect | m1382_2 | +| ir.cpp:1389:1:1389:1 | SideEffect | ~m1388_5 | +| ir.cpp:1389:1:1389:1 | SideEffect | ~m1389_6 | | ir.cpp:1391:6:1391:31 | ChiPartial | partial:m1391_3 | | ir.cpp:1391:6:1391:31 | ChiTotal | total:m1391_2 | | ir.cpp:1391:6:1391:31 | SideEffect | ~m1401_6 | @@ -9065,7 +9255,7 @@ | ir.cpp:1915:12:1915:12 | StoreValue | r1915_3 | | ir.cpp:1918:6:1918:43 | ChiPartial | partial:m1918_3 | | ir.cpp:1918:6:1918:43 | ChiTotal | total:m1918_2 | -| ir.cpp:1918:6:1918:43 | SideEffect | ~m1925_5 | +| ir.cpp:1918:6:1918:43 | SideEffect | ~m1926_6 | | ir.cpp:1919:7:1919:7 | Address | &:r1919_1 | | ir.cpp:1919:7:1919:7 | Address | &:r1919_1 | | ir.cpp:1919:7:1919:7 | Arg(this) | this:r1919_1 | @@ -9099,6 +9289,16 @@ | ir.cpp:1925:9:1925:23 | SideEffect | ~m1923_5 | | ir.cpp:1925:9:1925:23 | StoreValue | r1925_3 | | ir.cpp:1925:25:1925:26 | Arg(0) | 0:r1925_2 | +| ir.cpp:1926:1:1926:1 | Address | &:r1926_2 | +| ir.cpp:1926:1:1926:1 | Address | &:r1926_2 | +| ir.cpp:1926:1:1926:1 | Arg(this) | this:r1926_2 | +| ir.cpp:1926:1:1926:1 | CallTarget | func:r1926_3 | +| ir.cpp:1926:1:1926:1 | ChiPartial | partial:m1926_5 | +| ir.cpp:1926:1:1926:1 | ChiPartial | partial:m1926_8 | +| ir.cpp:1926:1:1926:1 | ChiTotal | total:m1919_8 | +| ir.cpp:1926:1:1926:1 | ChiTotal | total:m1925_5 | +| ir.cpp:1926:1:1926:1 | SideEffect | m1919_8 | +| ir.cpp:1926:1:1926:1 | SideEffect | ~m1925_5 | | ir.cpp:1928:6:1928:23 | ChiPartial | partial:m1928_3 | | ir.cpp:1928:6:1928:23 | ChiTotal | total:m1928_2 | | ir.cpp:1928:6:1928:23 | SideEffect | m1928_3 | @@ -9255,7 +9455,7 @@ | ir.cpp:1987:5:1987:21 | Address | &:r1987_1 | | ir.cpp:1990:6:1990:21 | ChiPartial | partial:m1990_3 | | ir.cpp:1990:6:1990:21 | ChiTotal | total:m1990_2 | -| ir.cpp:1990:6:1990:21 | SideEffect | ~m1991_6 | +| ir.cpp:1990:6:1990:21 | SideEffect | ~m1994_6 | | ir.cpp:1991:7:1991:7 | Address | &:r1991_1 | | ir.cpp:1991:7:1991:7 | Address | &:r1991_1 | | ir.cpp:1991:7:1991:7 | Arg(this) | this:r1991_1 | @@ -9269,6 +9469,16 @@ | ir.cpp:1992:23:1992:45 | StoreValue | r1992_2 | | ir.cpp:1993:5:1993:7 | Address | &:r1993_3 | | ir.cpp:1993:13:1993:32 | StoreValue | r1993_2 | +| ir.cpp:1994:1:1994:1 | Address | &:r1994_2 | +| ir.cpp:1994:1:1994:1 | Address | &:r1994_2 | +| ir.cpp:1994:1:1994:1 | Arg(this) | this:r1994_2 | +| ir.cpp:1994:1:1994:1 | CallTarget | func:r1994_3 | +| ir.cpp:1994:1:1994:1 | ChiPartial | partial:m1994_5 | +| ir.cpp:1994:1:1994:1 | ChiPartial | partial:m1994_8 | +| ir.cpp:1994:1:1994:1 | ChiTotal | total:m1991_6 | +| ir.cpp:1994:1:1994:1 | ChiTotal | total:m1991_8 | +| ir.cpp:1994:1:1994:1 | SideEffect | m1991_8 | +| ir.cpp:1994:1:1994:1 | SideEffect | ~m1991_6 | | ir.cpp:1996:6:1996:19 | ChiPartial | partial:m1996_3 | | ir.cpp:1996:6:1996:19 | ChiTotal | total:m1996_2 | | ir.cpp:1996:6:1996:19 | SideEffect | ~m2000_9 | @@ -10070,6 +10280,419 @@ | ir.cpp:2112:10:2112:12 | Address | &:r2112_2 | | ir.cpp:2112:10:2112:12 | Load | m2111_11 | | ir.cpp:2112:10:2112:12 | StoreValue | r2112_3 | +| ir.cpp:2115:6:2115:24 | ChiPartial | partial:m2115_3 | +| ir.cpp:2115:6:2115:24 | ChiTotal | total:m2115_2 | +| ir.cpp:2115:6:2115:24 | Phi | from 2:~m2115_10 | +| ir.cpp:2115:6:2115:24 | Phi | from 6:~m2124_8 | +| ir.cpp:2115:6:2115:24 | Phi | from 9:~m2117_6 | +| ir.cpp:2115:6:2115:24 | Phi | from 10:~m2131_1 | +| ir.cpp:2115:6:2115:24 | SideEffect | ~m2115_7 | +| ir.cpp:2115:31:2115:31 | Address | &:r2115_5 | +| ir.cpp:2117:12:2117:12 | Address | &:r2117_1 | +| ir.cpp:2117:12:2117:12 | Address | &:r2117_1 | +| ir.cpp:2117:12:2117:12 | Arg(this) | this:r2117_1 | +| ir.cpp:2117:12:2117:12 | CallTarget | func:r2117_3 | +| ir.cpp:2117:12:2117:12 | ChiPartial | partial:m2117_5 | +| ir.cpp:2117:12:2117:12 | ChiPartial | partial:m2117_7 | +| ir.cpp:2117:12:2117:12 | ChiTotal | total:m2115_4 | +| ir.cpp:2117:12:2117:12 | ChiTotal | total:m2117_2 | +| ir.cpp:2117:12:2117:12 | SideEffect | ~m2115_4 | +| ir.cpp:2118:9:2118:9 | Address | &:r2118_1 | +| ir.cpp:2118:9:2118:9 | Condition | r2118_2 | +| ir.cpp:2118:9:2118:9 | Load | m2115_6 | +| ir.cpp:2119:7:2119:28 | Address | &:r2119_1 | +| ir.cpp:2119:7:2119:28 | Address | &:r2119_1 | +| ir.cpp:2119:7:2119:28 | Load | m2119_4 | +| ir.cpp:2119:13:2119:28 | StoreValue | r2119_3 | +| ir.cpp:2119:13:2119:28 | Unary | r2119_2 | +| ir.cpp:2121:12:2121:13 | Address | &:r2121_1 | +| ir.cpp:2121:12:2121:13 | Address | &:r2121_1 | +| ir.cpp:2121:12:2121:13 | Arg(this) | this:r2121_1 | +| ir.cpp:2121:12:2121:13 | CallTarget | func:r2121_3 | +| ir.cpp:2121:12:2121:13 | ChiPartial | partial:m2121_5 | +| ir.cpp:2121:12:2121:13 | ChiPartial | partial:m2121_7 | +| ir.cpp:2121:12:2121:13 | ChiTotal | total:m2117_6 | +| ir.cpp:2121:12:2121:13 | ChiTotal | total:m2121_2 | +| ir.cpp:2121:12:2121:13 | SideEffect | ~m2117_6 | +| ir.cpp:2122:3:2122:3 | Address | &:r2122_1 | +| ir.cpp:2122:3:2122:3 | Address | &:r2122_1 | +| ir.cpp:2122:3:2122:3 | Address | &:r2122_9 | +| ir.cpp:2122:3:2122:3 | Address | &:r2122_9 | +| ir.cpp:2122:3:2122:3 | Arg(this) | this:r2122_1 | +| ir.cpp:2122:3:2122:3 | Arg(this) | this:r2122_9 | +| ir.cpp:2122:3:2122:3 | CallTarget | func:r2122_2 | +| ir.cpp:2122:3:2122:3 | CallTarget | func:r2122_10 | +| ir.cpp:2122:3:2122:3 | ChiPartial | partial:m2122_4 | +| ir.cpp:2122:3:2122:3 | ChiPartial | partial:m2122_7 | +| ir.cpp:2122:3:2122:3 | ChiPartial | partial:m2122_12 | +| ir.cpp:2122:3:2122:3 | ChiPartial | partial:m2122_15 | +| ir.cpp:2122:3:2122:3 | ChiTotal | total:m2117_8 | +| ir.cpp:2122:3:2122:3 | ChiTotal | total:m2121_6 | +| ir.cpp:2122:3:2122:3 | ChiTotal | total:m2121_8 | +| ir.cpp:2122:3:2122:3 | ChiTotal | total:m2122_5 | +| ir.cpp:2122:3:2122:3 | SideEffect | m2117_8 | +| ir.cpp:2122:3:2122:3 | SideEffect | m2121_8 | +| ir.cpp:2122:3:2122:3 | SideEffect | ~m2121_6 | +| ir.cpp:2122:3:2122:3 | SideEffect | ~m2122_5 | +| ir.cpp:2123:22:2123:22 | Address | &:r2123_2 | +| ir.cpp:2123:22:2123:22 | Address | &:r2123_2 | +| ir.cpp:2123:22:2123:22 | Address | &:r2123_4 | +| ir.cpp:2123:22:2123:22 | Load | m2123_3 | +| ir.cpp:2124:5:2124:19 | Address | &:r2124_1 | +| ir.cpp:2124:5:2124:19 | Address | &:r2124_1 | +| ir.cpp:2124:5:2124:19 | Address | &:r2124_1 | +| ir.cpp:2124:5:2124:19 | Arg(this) | this:r2124_1 | +| ir.cpp:2124:5:2124:19 | CallTarget | func:r2124_3 | +| ir.cpp:2124:5:2124:19 | ChiPartial | partial:m2124_7 | +| ir.cpp:2124:5:2124:19 | ChiPartial | partial:m2124_10 | +| ir.cpp:2124:5:2124:19 | ChiTotal | total:m2117_6 | +| ir.cpp:2124:5:2124:19 | ChiTotal | total:m2124_2 | +| ir.cpp:2124:5:2124:19 | Load | m2124_11 | +| ir.cpp:2124:5:2124:19 | SideEffect | ~m2117_6 | +| ir.cpp:2124:18:2124:18 | Address | &:r2124_4 | +| ir.cpp:2124:18:2124:18 | Address | &:r2124_5 | +| ir.cpp:2124:18:2124:18 | Arg(0) | 0:r2124_5 | +| ir.cpp:2124:18:2124:18 | Load | m2123_3 | +| ir.cpp:2124:18:2124:18 | SideEffect | ~m2123_5 | +| ir.cpp:2126:24:2126:24 | Address | &:r2126_2 | +| ir.cpp:2126:24:2126:24 | Address | &:r2126_2 | +| ir.cpp:2126:24:2126:24 | Address | &:r2126_4 | +| ir.cpp:2126:24:2126:24 | Load | m2126_3 | +| ir.cpp:2131:1:2131:1 | Phi | from 4:~m2122_13 | +| ir.cpp:2131:1:2131:1 | Phi | from 8:~m2117_6 | +| ir.cpp:2133:6:2133:18 | ChiPartial | partial:m2133_3 | +| ir.cpp:2133:6:2133:18 | ChiTotal | total:m2133_2 | +| ir.cpp:2133:6:2133:18 | SideEffect | ~m2141_14 | +| ir.cpp:2133:25:2133:25 | Address | &:r2133_5 | +| ir.cpp:2134:12:2134:13 | Address | &:r2134_1 | +| ir.cpp:2134:12:2134:13 | Address | &:r2134_1 | +| ir.cpp:2134:12:2134:13 | Arg(this) | this:r2134_1 | +| ir.cpp:2134:12:2134:13 | CallTarget | func:r2134_3 | +| ir.cpp:2134:12:2134:13 | ChiPartial | partial:m2134_5 | +| ir.cpp:2134:12:2134:13 | ChiPartial | partial:m2134_7 | +| ir.cpp:2134:12:2134:13 | ChiTotal | total:m2133_4 | +| ir.cpp:2134:12:2134:13 | ChiTotal | total:m2134_2 | +| ir.cpp:2134:12:2134:13 | SideEffect | ~m2133_4 | +| ir.cpp:2135:8:2135:8 | Address | &:r2135_1 | +| ir.cpp:2135:8:2135:8 | Condition | r2135_2 | +| ir.cpp:2135:8:2135:8 | Load | m2133_6 | +| ir.cpp:2136:16:2136:17 | Address | &:r2136_1 | +| ir.cpp:2136:16:2136:17 | Address | &:r2136_1 | +| ir.cpp:2136:16:2136:17 | Arg(this) | this:r2136_1 | +| ir.cpp:2136:16:2136:17 | CallTarget | func:r2136_3 | +| ir.cpp:2136:16:2136:17 | ChiPartial | partial:m2136_5 | +| ir.cpp:2136:16:2136:17 | ChiPartial | partial:m2136_7 | +| ir.cpp:2136:16:2136:17 | ChiTotal | total:m2134_6 | +| ir.cpp:2136:16:2136:17 | ChiTotal | total:m2136_2 | +| ir.cpp:2136:16:2136:17 | SideEffect | ~m2134_6 | +| ir.cpp:2137:5:2137:5 | Address | &:r2137_1 | +| ir.cpp:2137:5:2137:5 | Address | &:r2137_1 | +| ir.cpp:2137:5:2137:5 | Arg(this) | this:r2137_1 | +| ir.cpp:2137:5:2137:5 | CallTarget | func:r2137_2 | +| ir.cpp:2137:5:2137:5 | ChiPartial | partial:m2137_4 | +| ir.cpp:2137:5:2137:5 | ChiPartial | partial:m2137_7 | +| ir.cpp:2137:5:2137:5 | ChiTotal | total:m2136_6 | +| ir.cpp:2137:5:2137:5 | ChiTotal | total:m2136_8 | +| ir.cpp:2137:5:2137:5 | SideEffect | m2136_8 | +| ir.cpp:2137:5:2137:5 | SideEffect | ~m2136_6 | +| ir.cpp:2138:16:2138:17 | Address | &:r2138_1 | +| ir.cpp:2138:16:2138:17 | Address | &:r2138_1 | +| ir.cpp:2138:16:2138:17 | Arg(this) | this:r2138_1 | +| ir.cpp:2138:16:2138:17 | CallTarget | func:r2138_3 | +| ir.cpp:2138:16:2138:17 | ChiPartial | partial:m2138_5 | +| ir.cpp:2138:16:2138:17 | ChiPartial | partial:m2138_7 | +| ir.cpp:2138:16:2138:17 | ChiTotal | total:m2134_6 | +| ir.cpp:2138:16:2138:17 | ChiTotal | total:m2138_2 | +| ir.cpp:2138:16:2138:17 | SideEffect | ~m2134_6 | +| ir.cpp:2139:5:2139:5 | Address | &:r2139_1 | +| ir.cpp:2139:5:2139:5 | Address | &:r2139_1 | +| ir.cpp:2139:5:2139:5 | Arg(this) | this:r2139_1 | +| ir.cpp:2139:5:2139:5 | CallTarget | func:r2139_2 | +| ir.cpp:2139:5:2139:5 | ChiPartial | partial:m2139_4 | +| ir.cpp:2139:5:2139:5 | ChiPartial | partial:m2139_7 | +| ir.cpp:2139:5:2139:5 | ChiTotal | total:m2138_6 | +| ir.cpp:2139:5:2139:5 | ChiTotal | total:m2138_8 | +| ir.cpp:2139:5:2139:5 | SideEffect | m2138_8 | +| ir.cpp:2139:5:2139:5 | SideEffect | ~m2138_6 | +| ir.cpp:2140:12:2140:13 | Address | &:r2140_2 | +| ir.cpp:2140:12:2140:13 | Address | &:r2140_2 | +| ir.cpp:2140:12:2140:13 | Arg(this) | this:r2140_2 | +| ir.cpp:2140:12:2140:13 | CallTarget | func:r2140_4 | +| ir.cpp:2140:12:2140:13 | ChiPartial | partial:m2140_6 | +| ir.cpp:2140:12:2140:13 | ChiPartial | partial:m2140_8 | +| ir.cpp:2140:12:2140:13 | ChiTotal | total:m2140_1 | +| ir.cpp:2140:12:2140:13 | ChiTotal | total:m2140_3 | +| ir.cpp:2140:12:2140:13 | Phi | from 1:~m2137_5 | +| ir.cpp:2140:12:2140:13 | Phi | from 2:~m2139_5 | +| ir.cpp:2140:12:2140:13 | SideEffect | ~m2140_1 | +| ir.cpp:2141:1:2141:1 | Address | &:r2141_2 | +| ir.cpp:2141:1:2141:1 | Address | &:r2141_2 | +| ir.cpp:2141:1:2141:1 | Address | &:r2141_10 | +| ir.cpp:2141:1:2141:1 | Address | &:r2141_10 | +| ir.cpp:2141:1:2141:1 | Arg(this) | this:r2141_2 | +| ir.cpp:2141:1:2141:1 | Arg(this) | this:r2141_10 | +| ir.cpp:2141:1:2141:1 | CallTarget | func:r2141_3 | +| ir.cpp:2141:1:2141:1 | CallTarget | func:r2141_11 | +| ir.cpp:2141:1:2141:1 | ChiPartial | partial:m2141_5 | +| ir.cpp:2141:1:2141:1 | ChiPartial | partial:m2141_8 | +| ir.cpp:2141:1:2141:1 | ChiPartial | partial:m2141_13 | +| ir.cpp:2141:1:2141:1 | ChiPartial | partial:m2141_16 | +| ir.cpp:2141:1:2141:1 | ChiTotal | total:m2134_8 | +| ir.cpp:2141:1:2141:1 | ChiTotal | total:m2140_7 | +| ir.cpp:2141:1:2141:1 | ChiTotal | total:m2140_9 | +| ir.cpp:2141:1:2141:1 | ChiTotal | total:m2141_6 | +| ir.cpp:2141:1:2141:1 | SideEffect | m2134_8 | +| ir.cpp:2141:1:2141:1 | SideEffect | m2140_9 | +| ir.cpp:2141:1:2141:1 | SideEffect | ~m2140_7 | +| ir.cpp:2141:1:2141:1 | SideEffect | ~m2141_6 | +| ir.cpp:2143:6:2143:19 | ChiPartial | partial:m2143_3 | +| ir.cpp:2143:6:2143:19 | ChiTotal | total:m2143_2 | +| ir.cpp:2143:6:2143:19 | SideEffect | ~m2149_48 | +| ir.cpp:2144:10:2144:10 | Address | &:r2144_1 | +| ir.cpp:2144:13:2144:16 | StoreValue | r2144_2 | +| ir.cpp:2145:16:2145:16 | Address | &:r2145_1 | +| ir.cpp:2145:16:2145:16 | Address | &:r2145_1 | +| ir.cpp:2145:16:2145:16 | Address | &:r2145_31 | +| ir.cpp:2145:16:2145:16 | Address | &:r2145_31 | +| ir.cpp:2145:16:2145:16 | Arg(this) | this:r2145_1 | +| ir.cpp:2145:16:2145:16 | Arg(this) | this:r2145_31 | +| ir.cpp:2145:16:2145:16 | CallTarget | func:r2145_32 | +| ir.cpp:2145:16:2145:16 | ChiPartial | partial:m2145_34 | +| ir.cpp:2145:16:2145:16 | ChiPartial | partial:m2145_37 | +| ir.cpp:2145:16:2145:16 | ChiTotal | total:m2145_12 | +| ir.cpp:2145:16:2145:16 | ChiTotal | total:m2145_13 | +| ir.cpp:2145:16:2145:16 | SideEffect | m2145_12 | +| ir.cpp:2145:16:2145:16 | SideEffect | ~m2145_13 | +| ir.cpp:2145:18:2145:24 | Address | &:r2145_5 | +| ir.cpp:2145:18:2145:24 | Arg(0) | 0:r2145_5 | +| ir.cpp:2145:18:2145:24 | SideEffect | ~m2143_3 | +| ir.cpp:2145:18:2145:24 | Unary | r2145_4 | +| ir.cpp:2145:18:2145:25 | CallTarget | func:r2145_3 | +| ir.cpp:2145:18:2145:25 | ChiPartial | partial:m2145_7 | +| ir.cpp:2145:18:2145:25 | ChiPartial | partial:m2145_10 | +| ir.cpp:2145:18:2145:25 | ChiTotal | total:m2143_4 | +| ir.cpp:2145:18:2145:25 | ChiTotal | total:m2145_2 | +| ir.cpp:2145:18:2145:25 | SideEffect | ~m2143_4 | +| ir.cpp:2145:28:2145:28 | Address | &:r2145_15 | +| ir.cpp:2145:28:2145:28 | Left | r2145_17 | +| ir.cpp:2145:28:2145:28 | Load | m2145_14 | +| ir.cpp:2145:28:2145:28 | Phi | from 0:m2144_3 | +| ir.cpp:2145:28:2145:28 | Phi | from 0:m2145_11 | +| ir.cpp:2145:28:2145:28 | Phi | from 0:~m2145_8 | +| ir.cpp:2145:28:2145:28 | Phi | from 2:m2145_28 | +| ir.cpp:2145:28:2145:28 | Phi | from 2:m2145_30 | +| ir.cpp:2145:28:2145:28 | Phi | from 2:~m2145_25 | +| ir.cpp:2145:28:2145:28 | Unary | r2145_16 | +| ir.cpp:2145:28:2145:33 | Condition | r2145_19 | +| ir.cpp:2145:33:2145:33 | Right | r2145_18 | +| ir.cpp:2145:36:2145:36 | Address | &:r2145_29 | +| ir.cpp:2145:40:2145:40 | Address | &:r2145_21 | +| ir.cpp:2145:40:2145:40 | Address | &:r2145_21 | +| ir.cpp:2145:40:2145:40 | Arg(this) | this:r2145_21 | +| ir.cpp:2145:40:2145:40 | ChiPartial | partial:m2145_27 | +| ir.cpp:2145:40:2145:40 | ChiTotal | total:m2145_12 | +| ir.cpp:2145:40:2145:40 | SideEffect | m2145_12 | +| ir.cpp:2145:42:2145:49 | CallTarget | func:r2145_22 | +| ir.cpp:2145:42:2145:49 | ChiPartial | partial:m2145_24 | +| ir.cpp:2145:42:2145:49 | ChiTotal | total:m2147_5 | +| ir.cpp:2145:42:2145:49 | SideEffect | ~m2147_5 | +| ir.cpp:2145:42:2145:49 | StoreValue | r2145_23 | +| ir.cpp:2146:16:2146:17 | Address | &:r2146_1 | +| ir.cpp:2146:16:2146:17 | Address | &:r2146_1 | +| ir.cpp:2146:16:2146:17 | Arg(this) | this:r2146_1 | +| ir.cpp:2146:16:2146:17 | CallTarget | func:r2146_3 | +| ir.cpp:2146:16:2146:17 | ChiPartial | partial:m2146_5 | +| ir.cpp:2146:16:2146:17 | ChiPartial | partial:m2146_7 | +| ir.cpp:2146:16:2146:17 | ChiTotal | total:m2145_13 | +| ir.cpp:2146:16:2146:17 | ChiTotal | total:m2146_2 | +| ir.cpp:2146:16:2146:17 | SideEffect | ~m2145_13 | +| ir.cpp:2147:5:2147:5 | Address | &:r2147_1 | +| ir.cpp:2147:5:2147:5 | Address | &:r2147_1 | +| ir.cpp:2147:5:2147:5 | Arg(this) | this:r2147_1 | +| ir.cpp:2147:5:2147:5 | CallTarget | func:r2147_2 | +| ir.cpp:2147:5:2147:5 | ChiPartial | partial:m2147_4 | +| ir.cpp:2147:5:2147:5 | ChiPartial | partial:m2147_7 | +| ir.cpp:2147:5:2147:5 | ChiTotal | total:m2146_6 | +| ir.cpp:2147:5:2147:5 | ChiTotal | total:m2146_8 | +| ir.cpp:2147:5:2147:5 | SideEffect | m2146_8 | +| ir.cpp:2147:5:2147:5 | SideEffect | ~m2146_6 | +| ir.cpp:2149:5:2151:5 | Address | &:r2149_1 | +| ir.cpp:2149:5:2151:5 | Address | &:r2149_24 | +| ir.cpp:2149:5:2151:5 | Address | &:r2149_32 | +| ir.cpp:2149:5:2151:5 | Address | &:r2149_50 | +| ir.cpp:2149:5:2151:5 | Address | &:r2149_50 | +| ir.cpp:2149:5:2151:5 | Arg(this) | this:r2149_50 | +| ir.cpp:2149:16:2149:16 | CallTarget | func:r2149_52 | +| ir.cpp:2149:16:2149:16 | ChiPartial | partial:m2149_62 | +| ir.cpp:2149:16:2149:16 | ChiPartial | partial:m2149_65 | +| ir.cpp:2149:16:2149:16 | ChiTotal | total:m2149_51 | +| ir.cpp:2149:16:2149:16 | ChiTotal | total:m2149_57 | +| ir.cpp:2149:16:2149:16 | SideEffect | ~m2149_57 | +| ir.cpp:2149:20:2149:20 | Address | &:r2149_25 | +| ir.cpp:2149:20:2149:20 | Address | &:r2149_33 | +| ir.cpp:2149:20:2149:20 | Address | &:r2149_44 | +| ir.cpp:2149:20:2149:20 | Address | &:r2149_67 | +| ir.cpp:2149:20:2149:20 | Address | &:r2149_67 | +| ir.cpp:2149:20:2149:20 | Arg(0) | 0:r2149_45 | +| ir.cpp:2149:20:2149:20 | Arg(this) | this:r0_2 | +| ir.cpp:2149:20:2149:20 | Arg(this) | this:r0_5 | +| ir.cpp:2149:20:2149:20 | Arg(this) | this:r0_7 | +| ir.cpp:2149:20:2149:20 | Arg(this) | this:r0_9 | +| ir.cpp:2149:20:2149:20 | Arg(this) | this:r2149_67 | +| ir.cpp:2149:20:2149:20 | CallTarget | func:r2149_27 | +| ir.cpp:2149:20:2149:20 | CallTarget | func:r2149_35 | +| ir.cpp:2149:20:2149:20 | CallTarget | func:r2149_43 | +| ir.cpp:2149:20:2149:20 | CallTarget | func:r2149_54 | +| ir.cpp:2149:20:2149:20 | CallTarget | func:r2149_68 | +| ir.cpp:2149:20:2149:20 | ChiPartial | partial:m2149_29 | +| ir.cpp:2149:20:2149:20 | ChiPartial | partial:m2149_37 | +| ir.cpp:2149:20:2149:20 | ChiPartial | partial:m2149_47 | +| ir.cpp:2149:20:2149:20 | ChiPartial | partial:m2149_56 | +| ir.cpp:2149:20:2149:20 | ChiPartial | partial:m2149_70 | +| ir.cpp:2149:20:2149:20 | ChiPartial | partial:m2149_73 | +| ir.cpp:2149:20:2149:20 | ChiTotal | total:m2149_19 | +| ir.cpp:2149:20:2149:20 | ChiTotal | total:m2149_30 | +| ir.cpp:2149:20:2149:20 | ChiTotal | total:m2149_40 | +| ir.cpp:2149:20:2149:20 | ChiTotal | total:m2149_41 | +| ir.cpp:2149:20:2149:20 | ChiTotal | total:m2149_48 | +| ir.cpp:2149:20:2149:20 | ChiTotal | total:m2151_5 | +| ir.cpp:2149:20:2149:20 | Condition | r2149_46 | +| ir.cpp:2149:20:2149:20 | Load | m2149_23 | +| ir.cpp:2149:20:2149:20 | Load | m2149_23 | +| ir.cpp:2149:20:2149:20 | Load | m2149_39 | +| ir.cpp:2149:20:2149:20 | Phi | from 3:m2149_31 | +| ir.cpp:2149:20:2149:20 | Phi | from 3:~m2149_38 | +| ir.cpp:2149:20:2149:20 | Phi | from 5:m2149_74 | +| ir.cpp:2149:20:2149:20 | Phi | from 5:~m2149_71 | +| ir.cpp:2149:20:2149:20 | SideEffect | m2149_40 | +| ir.cpp:2149:20:2149:20 | SideEffect | ~m2149_19 | +| ir.cpp:2149:20:2149:20 | SideEffect | ~m2149_30 | +| ir.cpp:2149:20:2149:20 | SideEffect | ~m2149_41 | +| ir.cpp:2149:20:2149:20 | SideEffect | ~m2149_48 | +| ir.cpp:2149:20:2149:20 | SideEffect | ~m2151_5 | +| ir.cpp:2149:20:2149:20 | StoreValue | r2149_28 | +| ir.cpp:2149:20:2149:20 | StoreValue | r2149_36 | +| ir.cpp:2149:20:2149:20 | Unary | r2149_26 | +| ir.cpp:2149:20:2149:20 | Unary | r2149_34 | +| ir.cpp:2149:20:2149:20 | Unary | r2149_42 | +| ir.cpp:2149:20:2149:20 | Unary | r2149_53 | +| ir.cpp:2149:20:2149:20 | Unary | r2149_55 | +| ir.cpp:2149:20:2149:20 | Unary | r2149_69 | +| ir.cpp:2149:20:2149:50 | Address | &:r2149_2 | +| ir.cpp:2149:20:2149:50 | Address | &:r2149_2 | +| ir.cpp:2149:20:2149:50 | Arg(this) | this:r2149_2 | +| ir.cpp:2149:20:2149:50 | CallTarget | func:r2149_4 | +| ir.cpp:2149:20:2149:50 | ChiPartial | partial:m2149_18 | +| ir.cpp:2149:20:2149:50 | ChiPartial | partial:m2149_20 | +| ir.cpp:2149:20:2149:50 | ChiTotal | total:m2149_3 | +| ir.cpp:2149:20:2149:50 | ChiTotal | total:m2149_12 | +| ir.cpp:2149:20:2149:50 | SideEffect | ~m2149_12 | +| ir.cpp:2149:20:2149:50 | StoreValue | r2149_22 | +| ir.cpp:2149:20:2149:50 | Unary | r2149_2 | +| ir.cpp:2149:20:2149:51 | Address | &:r2149_60 | +| ir.cpp:2149:20:2149:51 | Arg(0) | 0:r2149_60 | +| ir.cpp:2149:20:2149:51 | SideEffect | ~m2149_63 | +| ir.cpp:2149:20:2149:51 | Unary | r2149_58 | +| ir.cpp:2149:20:2149:51 | Unary | r2149_59 | +| ir.cpp:2149:35:2149:49 | Address | &:r2149_5 | +| ir.cpp:2149:35:2149:49 | Address | &:r2149_5 | +| ir.cpp:2149:35:2149:49 | Address | &:r2149_5 | +| ir.cpp:2149:35:2149:49 | Arg(0) | 0:r2149_16 | +| ir.cpp:2149:35:2149:49 | Arg(this) | this:r2149_5 | +| ir.cpp:2149:35:2149:49 | CallTarget | func:r2149_7 | +| ir.cpp:2149:35:2149:49 | ChiPartial | partial:m2149_11 | +| ir.cpp:2149:35:2149:49 | ChiPartial | partial:m2149_14 | +| ir.cpp:2149:35:2149:49 | ChiTotal | total:m2145_35 | +| ir.cpp:2149:35:2149:49 | ChiTotal | total:m2149_6 | +| ir.cpp:2149:35:2149:49 | Load | m2149_15 | +| ir.cpp:2149:35:2149:49 | SideEffect | ~m2145_35 | +| ir.cpp:2149:42:2149:48 | Address | &:r2149_9 | +| ir.cpp:2149:42:2149:48 | Arg(0) | 0:r2149_9 | +| ir.cpp:2149:42:2149:48 | SideEffect | ~m2143_3 | +| ir.cpp:2149:42:2149:48 | Unary | r2149_8 | +| ir.cpp:2150:16:2150:17 | Address | &:r2150_1 | +| ir.cpp:2150:16:2150:17 | Address | &:r2150_1 | +| ir.cpp:2150:16:2150:17 | Arg(this) | this:r2150_1 | +| ir.cpp:2150:16:2150:17 | CallTarget | func:r2150_3 | +| ir.cpp:2150:16:2150:17 | ChiPartial | partial:m2150_5 | +| ir.cpp:2150:16:2150:17 | ChiPartial | partial:m2150_7 | +| ir.cpp:2150:16:2150:17 | ChiTotal | total:m2149_63 | +| ir.cpp:2150:16:2150:17 | ChiTotal | total:m2150_2 | +| ir.cpp:2150:16:2150:17 | SideEffect | ~m2149_63 | +| ir.cpp:2151:5:2151:5 | Address | &:r2151_1 | +| ir.cpp:2151:5:2151:5 | Address | &:r2151_1 | +| ir.cpp:2151:5:2151:5 | Arg(this) | this:r2151_1 | +| ir.cpp:2151:5:2151:5 | CallTarget | func:r2151_2 | +| ir.cpp:2151:5:2151:5 | ChiPartial | partial:m2151_4 | +| ir.cpp:2151:5:2151:5 | ChiPartial | partial:m2151_7 | +| ir.cpp:2151:5:2151:5 | ChiTotal | total:m2150_6 | +| ir.cpp:2151:5:2151:5 | ChiTotal | total:m2150_8 | +| ir.cpp:2151:5:2151:5 | SideEffect | m2150_8 | +| ir.cpp:2151:5:2151:5 | SideEffect | ~m2150_6 | +| ir.cpp:2154:6:2154:19 | ChiPartial | partial:m2154_3 | +| ir.cpp:2154:6:2154:19 | ChiTotal | total:m2154_2 | +| ir.cpp:2154:6:2154:19 | SideEffect | ~m2159_5 | +| ir.cpp:2154:26:2154:26 | Address | &:r2154_5 | +| ir.cpp:2155:15:2155:15 | Address | &:r2155_1 | +| ir.cpp:2155:15:2155:15 | Address | &:r2155_1 | +| ir.cpp:2155:15:2155:15 | Arg(this) | this:r2155_1 | +| ir.cpp:2155:18:2155:33 | CallTarget | func:r2155_3 | +| ir.cpp:2155:18:2155:33 | ChiPartial | partial:m2155_7 | +| ir.cpp:2155:18:2155:33 | ChiPartial | partial:m2155_10 | +| ir.cpp:2155:18:2155:33 | ChiTotal | total:m2154_4 | +| ir.cpp:2155:18:2155:33 | ChiTotal | total:m2155_2 | +| ir.cpp:2155:18:2155:33 | SideEffect | ~m2154_4 | +| ir.cpp:2155:26:2155:32 | Address | &:r2155_5 | +| ir.cpp:2155:26:2155:32 | Arg(0) | 0:r2155_5 | +| ir.cpp:2155:26:2155:32 | SideEffect | ~m2154_3 | +| ir.cpp:2155:26:2155:32 | Unary | r2155_4 | +| ir.cpp:2155:36:2155:36 | Address | &:r2155_12 | +| ir.cpp:2155:36:2155:36 | Condition | r2155_13 | +| ir.cpp:2155:36:2155:36 | Load | m2154_6 | +| ir.cpp:2156:13:2156:13 | Address | &:r2156_1 | +| ir.cpp:2156:16:2156:17 | StoreValue | r2156_2 | +| ir.cpp:2158:13:2158:13 | Address | &:r2158_1 | +| ir.cpp:2158:16:2158:17 | StoreValue | r2158_2 | +| ir.cpp:2159:5:2159:5 | Address | &:r2159_1 | +| ir.cpp:2159:5:2159:5 | Address | &:r2159_1 | +| ir.cpp:2159:5:2159:5 | Arg(this) | this:r2159_1 | +| ir.cpp:2159:5:2159:5 | CallTarget | func:r2159_2 | +| ir.cpp:2159:5:2159:5 | ChiPartial | partial:m2159_4 | +| ir.cpp:2159:5:2159:5 | ChiPartial | partial:m2159_7 | +| ir.cpp:2159:5:2159:5 | ChiTotal | total:m2155_8 | +| ir.cpp:2159:5:2159:5 | ChiTotal | total:m2155_11 | +| ir.cpp:2159:5:2159:5 | SideEffect | m2155_11 | +| ir.cpp:2159:5:2159:5 | SideEffect | ~m2155_8 | +| ir.cpp:2169:6:2169:19 | ChiPartial | partial:m2169_3 | +| ir.cpp:2169:6:2169:19 | ChiTotal | total:m2169_2 | +| ir.cpp:2169:26:2169:26 | Address | &:r2169_5 | +| ir.cpp:2170:8:2170:23 | Address | &:r2170_1 | +| ir.cpp:2170:8:2170:23 | Address | &:r2170_1 | +| ir.cpp:2170:8:2170:23 | Arg(this) | this:r2170_1 | +| ir.cpp:2170:16:2170:23 | CallTarget | func:r2170_3 | +| ir.cpp:2170:16:2170:23 | ChiPartial | partial:m2170_7 | +| ir.cpp:2170:16:2170:23 | ChiPartial | partial:m2170_9 | +| ir.cpp:2170:16:2170:23 | ChiTotal | total:m2169_4 | +| ir.cpp:2170:16:2170:23 | ChiTotal | total:m2170_2 | +| ir.cpp:2170:16:2170:23 | SideEffect | ~m2169_4 | +| ir.cpp:2170:22:2170:22 | Address | &:r2170_4 | +| ir.cpp:2170:22:2170:22 | Arg(0) | 0:r2170_5 | +| ir.cpp:2170:22:2170:22 | Load | m2169_6 | +| ir.cpp:2185:6:2185:32 | ChiPartial | partial:m2185_3 | +| ir.cpp:2185:6:2185:32 | ChiTotal | total:m2185_2 | +| ir.cpp:2185:39:2185:39 | Address | &:r2185_5 | +| ir.cpp:2186:8:2186:25 | Address | &:r2186_1 | +| ir.cpp:2186:8:2186:25 | Address | &:r2186_1 | +| ir.cpp:2186:8:2186:25 | Arg(this) | this:r2186_1 | +| ir.cpp:2186:17:2186:25 | CallTarget | func:r2186_3 | +| ir.cpp:2186:17:2186:25 | ChiPartial | partial:m2186_7 | +| ir.cpp:2186:17:2186:25 | ChiPartial | partial:m2186_9 | +| ir.cpp:2186:17:2186:25 | ChiTotal | total:m2185_4 | +| ir.cpp:2186:17:2186:25 | ChiTotal | total:m2186_2 | +| ir.cpp:2186:17:2186:25 | SideEffect | ~m2185_4 | +| ir.cpp:2186:24:2186:24 | Address | &:r2186_4 | +| ir.cpp:2186:24:2186:24 | Arg(0) | 0:r2186_5 | +| ir.cpp:2186:24:2186:24 | Load | m2185_6 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | @@ -10112,13 +10735,13 @@ | perf-regression.cpp:12:10:12:10 | StoreValue | r12_2 | | smart_ptr.cpp:10:6:10:24 | ChiPartial | partial:m10_3 | | smart_ptr.cpp:10:6:10:24 | ChiTotal | total:m10_2 | -| smart_ptr.cpp:10:6:10:24 | SideEffect | ~m12_12 | +| smart_ptr.cpp:10:6:10:24 | SideEffect | ~m13_6 | | smart_ptr.cpp:10:31:10:31 | Address | &:r10_5 | | smart_ptr.cpp:10:31:10:31 | Address | &:r10_5 | | smart_ptr.cpp:10:31:10:31 | Address | &:r10_7 | | smart_ptr.cpp:10:31:10:31 | Address | &:r10_7 | | smart_ptr.cpp:10:31:10:31 | Load | m10_6 | -| smart_ptr.cpp:10:31:10:31 | SideEffect | m12_15 | +| smart_ptr.cpp:10:31:10:31 | SideEffect | m10_8 | | smart_ptr.cpp:11:21:11:22 | Address | &:r11_1 | | smart_ptr.cpp:11:21:11:22 | Address | &:r11_1 | | smart_ptr.cpp:11:21:11:22 | Arg(this) | this:r11_1 | @@ -10141,22 +10764,32 @@ | smart_ptr.cpp:12:20:12:27 | Address | &:r12_9 | | smart_ptr.cpp:12:20:12:27 | Arg(0) | 0:r12_9 | | smart_ptr.cpp:12:20:12:27 | ChiPartial | partial:m12_14 | -| smart_ptr.cpp:12:20:12:27 | ChiTotal | total:m10_8 | +| smart_ptr.cpp:12:20:12:27 | ChiTotal | total:m12_12 | | smart_ptr.cpp:12:20:12:27 | Load | m12_8 | -| smart_ptr.cpp:12:20:12:27 | SideEffect | ~m10_8 | +| smart_ptr.cpp:12:20:12:27 | SideEffect | ~m12_12 | | smart_ptr.cpp:12:24:12:28 | Load | m11_9 | | smart_ptr.cpp:12:24:12:28 | StoreValue | r12_7 | | smart_ptr.cpp:12:25:12:26 | Arg(0) | 0:r12_5 | | smart_ptr.cpp:12:25:12:26 | Unary | r12_4 | +| smart_ptr.cpp:13:1:13:1 | Address | &:r13_2 | +| smart_ptr.cpp:13:1:13:1 | Address | &:r13_2 | +| smart_ptr.cpp:13:1:13:1 | Arg(this) | this:r13_2 | +| smart_ptr.cpp:13:1:13:1 | CallTarget | func:r13_3 | +| smart_ptr.cpp:13:1:13:1 | ChiPartial | partial:m13_5 | +| smart_ptr.cpp:13:1:13:1 | ChiPartial | partial:m13_8 | +| smart_ptr.cpp:13:1:13:1 | ChiTotal | total:m11_9 | +| smart_ptr.cpp:13:1:13:1 | ChiTotal | total:m12_15 | +| smart_ptr.cpp:13:1:13:1 | SideEffect | m11_9 | +| smart_ptr.cpp:13:1:13:1 | SideEffect | ~m12_15 | | smart_ptr.cpp:17:6:17:24 | ChiPartial | partial:m17_3 | | smart_ptr.cpp:17:6:17:24 | ChiTotal | total:m17_2 | -| smart_ptr.cpp:17:6:17:24 | SideEffect | ~m19_16 | +| smart_ptr.cpp:17:6:17:24 | SideEffect | ~m20_6 | | smart_ptr.cpp:17:33:17:33 | Address | &:r17_5 | | smart_ptr.cpp:17:33:17:33 | Address | &:r17_5 | | smart_ptr.cpp:17:33:17:33 | Address | &:r17_7 | | smart_ptr.cpp:17:33:17:33 | Address | &:r17_7 | | smart_ptr.cpp:17:33:17:33 | Load | m17_6 | -| smart_ptr.cpp:17:33:17:33 | SideEffect | m19_19 | +| smart_ptr.cpp:17:33:17:33 | SideEffect | m17_8 | | smart_ptr.cpp:18:23:18:24 | Address | &:r18_1 | | smart_ptr.cpp:18:23:18:24 | Address | &:r18_1 | | smart_ptr.cpp:18:23:18:24 | Arg(this) | this:r18_1 | @@ -10183,17 +10816,27 @@ | smart_ptr.cpp:19:20:19:21 | CallTarget | func:r19_4 | | smart_ptr.cpp:19:20:19:21 | ChiPartial | partial:m19_9 | | smart_ptr.cpp:19:20:19:21 | ChiPartial | partial:m19_18 | -| smart_ptr.cpp:19:20:19:21 | ChiTotal | total:m17_8 | | smart_ptr.cpp:19:20:19:21 | ChiTotal | total:m18_8 | +| smart_ptr.cpp:19:20:19:21 | ChiTotal | total:m19_16 | | smart_ptr.cpp:19:20:19:21 | Load | m19_12 | | smart_ptr.cpp:19:20:19:21 | SideEffect | m18_9 | -| smart_ptr.cpp:19:20:19:21 | SideEffect | ~m17_8 | | smart_ptr.cpp:19:20:19:21 | SideEffect | ~m18_8 | +| smart_ptr.cpp:19:20:19:21 | SideEffect | ~m19_16 | | smart_ptr.cpp:19:20:19:21 | Unary | r19_5 | | smart_ptr.cpp:19:20:19:21 | Unary | r19_6 | +| smart_ptr.cpp:20:1:20:1 | Address | &:r20_2 | +| smart_ptr.cpp:20:1:20:1 | Address | &:r20_2 | +| smart_ptr.cpp:20:1:20:1 | Arg(this) | this:r20_2 | +| smart_ptr.cpp:20:1:20:1 | CallTarget | func:r20_3 | +| smart_ptr.cpp:20:1:20:1 | ChiPartial | partial:m20_5 | +| smart_ptr.cpp:20:1:20:1 | ChiPartial | partial:m20_8 | +| smart_ptr.cpp:20:1:20:1 | ChiTotal | total:m18_9 | +| smart_ptr.cpp:20:1:20:1 | ChiTotal | total:m19_19 | +| smart_ptr.cpp:20:1:20:1 | SideEffect | m18_9 | +| smart_ptr.cpp:20:1:20:1 | SideEffect | ~m19_19 | | smart_ptr.cpp:28:6:28:27 | ChiPartial | partial:m28_3 | | smart_ptr.cpp:28:6:28:27 | ChiTotal | total:m28_2 | -| smart_ptr.cpp:28:6:28:27 | SideEffect | ~m47_16 | +| smart_ptr.cpp:28:6:28:27 | SideEffect | ~m48_38 | | smart_ptr.cpp:29:27:29:38 | Address | &:r29_1 | | smart_ptr.cpp:31:5:31:24 | CallTarget | func:r31_1 | | smart_ptr.cpp:31:5:31:24 | ChiPartial | partial:m31_15 | @@ -10313,6 +10956,56 @@ | smart_ptr.cpp:47:43:47:63 | SideEffect | ~m47_16 | | smart_ptr.cpp:47:43:47:63 | Unary | r47_5 | | smart_ptr.cpp:47:43:47:63 | Unary | r47_6 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_2 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_2 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_10 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_10 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_18 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_18 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_26 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_26 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_34 | +| smart_ptr.cpp:48:1:48:1 | Address | &:r48_34 | +| smart_ptr.cpp:48:1:48:1 | Arg(this) | this:r48_2 | +| smart_ptr.cpp:48:1:48:1 | Arg(this) | this:r48_10 | +| smart_ptr.cpp:48:1:48:1 | Arg(this) | this:r48_18 | +| smart_ptr.cpp:48:1:48:1 | Arg(this) | this:r48_26 | +| smart_ptr.cpp:48:1:48:1 | Arg(this) | this:r48_34 | +| smart_ptr.cpp:48:1:48:1 | CallTarget | func:r48_3 | +| smart_ptr.cpp:48:1:48:1 | CallTarget | func:r48_11 | +| smart_ptr.cpp:48:1:48:1 | CallTarget | func:r48_19 | +| smart_ptr.cpp:48:1:48:1 | CallTarget | func:r48_27 | +| smart_ptr.cpp:48:1:48:1 | CallTarget | func:r48_35 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_5 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_8 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_13 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_16 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_21 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_24 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_29 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_32 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_37 | +| smart_ptr.cpp:48:1:48:1 | ChiPartial | partial:m48_40 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m29_2 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m33_2 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m37_2 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m41_2 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m45_2 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m47_16 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m48_6 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m48_14 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m48_22 | +| smart_ptr.cpp:48:1:48:1 | ChiTotal | total:m48_30 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | m29_2 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | m33_2 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | m37_2 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | m41_2 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | m45_2 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | ~m47_16 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | ~m48_6 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | ~m48_14 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | ~m48_22 | +| smart_ptr.cpp:48:1:48:1 | SideEffect | ~m48_30 | | struct_init.cpp:9:13:9:25 | Left | r9_3 | | struct_init.cpp:9:13:9:25 | Left | r9_3 | | struct_init.cpp:9:13:9:25 | SideEffect | ~m11_10 | diff --git a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected index d2a11541fd1..7a87226651a 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_consistency.expected @@ -1,4 +1,6 @@ missingOperand +| ir.cpp:2170:8:2170:23 | CopyValue: (condition decl) | Instruction 'CopyValue' is missing an expected operand with tag 'Unary' in function '$@'. | ir.cpp:2169:6:2169:19 | void IfDestructors3(bool) | void IfDestructors3(bool) | +| ir.cpp:2186:8:2186:25 | CopyValue: (condition decl) | Instruction 'CopyValue' is missing an expected operand with tag 'Unary' in function '$@'. | ir.cpp:2185:6:2185:32 | void IfInitiaiizationConstructor(bool) | void IfInitiaiizationConstructor(bool) | unexpectedOperand duplicateOperand missingPhiOperand @@ -6,6 +8,10 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor +| ir.cpp:2170:13:2170:13 | IndirectMayWriteSideEffect: B | Instruction 'IndirectMayWriteSideEffect: B' has no successors in function '$@'. | ir.cpp:2169:6:2169:19 | void IfDestructors3(bool) | void IfDestructors3(bool) | +| ir.cpp:2170:16:2170:23 | IndirectMayWriteSideEffect: call to Bool | Instruction 'IndirectMayWriteSideEffect: call to Bool' has no successors in function '$@'. | ir.cpp:2169:6:2169:19 | void IfDestructors3(bool) | void IfDestructors3(bool) | +| ir.cpp:2186:14:2186:14 | IndirectMayWriteSideEffect: B | Instruction 'IndirectMayWriteSideEffect: B' has no successors in function '$@'. | ir.cpp:2185:6:2185:32 | void IfInitiaiizationConstructor(bool) | void IfInitiaiizationConstructor(bool) | +| ir.cpp:2186:17:2186:25 | IndirectMayWriteSideEffect: call to Bool2 | Instruction 'IndirectMayWriteSideEffect: call to Bool2' has no successors in function '$@'. | ir.cpp:2185:6:2185:32 | void IfInitiaiizationConstructor(bool) | void IfInitiaiizationConstructor(bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected index 79887fffc1f..3dfa7bf2dce 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency.expected @@ -6,13 +6,19 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor +| ir.cpp:2170:16:2170:23 | IndirectMayWriteSideEffect: call to Bool | Instruction 'IndirectMayWriteSideEffect: call to Bool' has no successors in function '$@'. | ir.cpp:2169:6:2169:19 | void IfDestructors3(bool) | void IfDestructors3(bool) | +| ir.cpp:2186:17:2186:25 | IndirectMayWriteSideEffect: call to Bool2 | Instruction 'IndirectMayWriteSideEffect: call to Bool2' has no successors in function '$@'. | ir.cpp:2185:6:2185:32 | void IfInitiaiizationConstructor(bool) | void IfInitiaiizationConstructor(bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions instructionWithoutUniqueBlock +missingCanonicalLanguageType +multipleCanonicalLanguageTypes containsLoopOfForwardEdges +missingIRType +multipleIRTypes lostReachability backEdgeCountMismatch useNotDominatedByDefinition @@ -24,8 +30,4 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -missingCanonicalLanguageType -multipleCanonicalLanguageTypes -missingIRType -multipleIRTypes missingCppType diff --git a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected index 79887fffc1f..3dfa7bf2dce 100644 --- a/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/unaliased_ssa_consistency_unsound.expected @@ -6,13 +6,19 @@ missingOperandType duplicateChiOperand sideEffectWithoutPrimary instructionWithoutSuccessor +| ir.cpp:2170:16:2170:23 | IndirectMayWriteSideEffect: call to Bool | Instruction 'IndirectMayWriteSideEffect: call to Bool' has no successors in function '$@'. | ir.cpp:2169:6:2169:19 | void IfDestructors3(bool) | void IfDestructors3(bool) | +| ir.cpp:2186:17:2186:25 | IndirectMayWriteSideEffect: call to Bool2 | Instruction 'IndirectMayWriteSideEffect: call to Bool2' has no successors in function '$@'. | ir.cpp:2185:6:2185:32 | void IfInitiaiizationConstructor(bool) | void IfInitiaiizationConstructor(bool) | ambiguousSuccessors unexplainedLoop unnecessaryPhiInstruction memoryOperandDefinitionIsUnmodeled operandAcrossFunctions instructionWithoutUniqueBlock +missingCanonicalLanguageType +multipleCanonicalLanguageTypes containsLoopOfForwardEdges +missingIRType +multipleIRTypes lostReachability backEdgeCountMismatch useNotDominatedByDefinition @@ -24,8 +30,4 @@ nonUniqueEnclosingIRFunction fieldAddressOnNonPointer thisArgumentIsNonPointer nonUniqueIRVariable -missingCanonicalLanguageType -multipleCanonicalLanguageTypes -missingIRType -multipleIRTypes missingCppType