C++: Accept test changes.

This commit is contained in:
Mathias Vorreiter Pedersen
2024-04-05 18:08:25 +01:00
parent 54e4103e71
commit 45e71543b4
8 changed files with 72 additions and 194 deletions

View File

@@ -16069,56 +16069,38 @@ ir.cpp:
# 2462| void rvalue_conversion_with_destructor::test() # 2462| void rvalue_conversion_with_destructor::test()
# 2462| Block 0 # 2462| Block 0
# 2462| v2462_1(void) = EnterFunction : # 2462| v2462_1(void) = EnterFunction :
# 2462| m2462_2(unknown) = AliasedDefinition : # 2462| m2462_2(unknown) = AliasedDefinition :
# 2462| m2462_3(unknown) = InitializeNonLocal : # 2462| m2462_3(unknown) = InitializeNonLocal :
# 2462| m2462_4(unknown) = Chi : total:m2462_2, partial:m2462_3 # 2462| m2462_4(unknown) = Chi : total:m2462_2, partial:m2462_3
# 2464| r2464_1(glval<unsigned int>) = VariableAddress[a] : # 2464| r2464_1(glval<unsigned int>) = VariableAddress[a] :
# 2464| r2464_2(glval<B>) = VariableAddress[#temp2464:18] : # 2464| r2464_2(glval<B>) = VariableAddress[#temp2464:18] :
# 2464| r2464_3(glval<unknown>) = FunctionAddress[get] : # 2464| r2464_3(glval<unknown>) = FunctionAddress[get] :
# 2464| r2464_4(B) = Call[get] : func:r2464_3 # 2464| r2464_4(B) = Call[get] : func:r2464_3
# 2464| m2464_5(unknown) = ^CallSideEffect : ~m2462_4 # 2464| m2464_5(unknown) = ^CallSideEffect : ~m2462_4
# 2464| m2464_6(unknown) = Chi : total:m2462_4, partial:m2464_5 # 2464| m2464_6(unknown) = Chi : total:m2462_4, partial:m2464_5
# 2464| m2464_7(B) = Store[#temp2464:18] : &:r2464_2, r2464_4 # 2464| m2464_7(B) = Store[#temp2464:18] : &:r2464_2, r2464_4
# 2464| r2464_8(glval<B>) = Convert : r2464_2 # 2464| r2464_8(glval<B>) = Convert : r2464_2
# 2464| r2464_9(glval<unknown>) = FunctionAddress[operator->] : # 2464| r2464_9(glval<unknown>) = FunctionAddress[operator->] :
# 2464| r2464_10(A *) = Call[operator->] : func:r2464_9, this:r2464_8 # 2464| r2464_10(A *) = Call[operator->] : func:r2464_9, this:r2464_8
# 2464| m2464_11(unknown) = ^CallSideEffect : ~m2464_6 # 2464| m2464_11(unknown) = ^CallSideEffect : ~m2464_6
# 2464| m2464_12(unknown) = Chi : total:m2464_6, partial:m2464_11 # 2464| m2464_12(unknown) = Chi : total:m2464_6, partial:m2464_11
# 2464| v2464_13(void) = ^IndirectReadSideEffect[-1] : &:r2464_8, m2464_7 # 2464| v2464_13(void) = ^IndirectReadSideEffect[-1] : &:r2464_8, m2464_7
# 2464| r2464_14(glval<unsigned int>) = FieldAddress[a] : r2464_10 # 2464| r2464_14(glval<unsigned int>) = FieldAddress[a] : r2464_10
#-----| Goto -> Block 3 # 2464| r2464_15(glval<B>) = CopyValue : r2464_2
#-----| Goto -> Block 3 # 2464| r2464_16(glval<unknown>) = FunctionAddress[~B] :
# 2464| v2464_17(void) = Call[~B] : func:r2464_16, this:r2464_15
# 2464| Block 1 # 2464| m2464_18(unknown) = ^CallSideEffect : ~m2464_12
# 2464| m2464_15(unsigned int) = Store[a] : &:r2464_1, r2464_16 # 2464| m2464_19(unknown) = Chi : total:m2464_12, partial:m2464_18
# 2465| v2465_1(void) = NoOp : # 2464| v2464_20(void) = ^IndirectReadSideEffect[-1] : &:r2464_15, m2464_7
# 2462| v2462_5(void) = ReturnVoid : # 2464| m2464_21(B) = ^IndirectMayWriteSideEffect[-1] : &:r2464_15
# 2462| v2462_6(void) = AliasedUse : ~m2464_25, ~m2464_37 # 2464| m2464_22(B) = Chi : total:m2464_7, partial:m2464_21
# 2462| v2462_7(void) = ExitFunction : # 2464| r2464_23(unsigned int) = Load[?] : &:r2464_14, ~m2464_19
# 2464| m2464_24(unsigned int) = Store[a] : &:r2464_1, r2464_23
# 2464| Block 2 # 2465| v2465_1(void) = NoOp :
# 2464| r2464_16(unsigned int) = Load[?] : &:r2464_14, ~m2464_25, ~m2464_37 # 2462| v2462_5(void) = ReturnVoid :
#-----| Goto (back edge) -> Block 3 # 2462| v2462_6(void) = AliasedUse : ~m2464_19
#-----| Goto (back edge) -> Block 3 # 2462| v2462_7(void) = ExitFunction :
# 2464| Block 3
# 2464| m2464_31(B) = Phi : from 0:m2464_7, from 2:m2464_28, from 2:m2464_40
# 2464| m2464_32(unknown) = Phi : from 0:~m2464_12, from 2:~m2464_25, from 2:~m2464_37
# 2464| r2464_33(glval<B>) = CopyValue : r2464_2
# 2464| r2464_34(glval<unknown>) = FunctionAddress[~B] :
# 2464| v2464_35(void) = Call[~B] : func:r2464_22, func:r2464_34, this:r2464_21, this:r2464_33
# 2464| m2464_36(unknown) = ^CallSideEffect : ~m2464_18, ~m2464_20, ~m2464_30, ~m2464_32
# 2464| m2464_37(unknown) = Chi : total:m2464_18, total:m2464_20, total:m2464_30, total:m2464_32, partial:m2464_24, partial:m2464_36
# 2464| v2464_38(void) = ^IndirectReadSideEffect[-1] : &:r2464_21, &:r2464_33, m2464_17, m2464_19, m2464_29, m2464_31
# 2464| m2464_39(B) = ^IndirectMayWriteSideEffect[-1] : &:r2464_21, &:r2464_33
# 2464| m2464_40(B) = Chi : total:m2464_17, total:m2464_19, total:m2464_29, total:m2464_31, partial:m2464_27, partial:m2464_39
#-----| Goto (back edge) -> Block 1
#-----| Goto (back edge) -> Block 2
# 2464| Block 3
#-----| Goto (back edge) -> Block 1
#-----| Goto (back edge) -> Block 2
perf-regression.cpp: perf-regression.cpp:
# 6| void Big::Big() # 6| void Big::Big()

View File

@@ -7,18 +7,7 @@ duplicateChiOperand
sideEffectWithoutPrimary sideEffectWithoutPrimary
instructionWithoutSuccessor instructionWithoutSuccessor
ambiguousSuccessors ambiguousSuccessors
| ir.cpp:2464:18:2464:22 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unexplainedLoop unexplainedLoop
| ir.cpp:2464:18:2464:22 | Call: call to ~B | Instruction 'Call: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CallSideEffect: call to ~B | Instruction 'CallSideEffect: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | Chi: call to ~B | Instruction 'Chi: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | FunctionAddress: call to ~B | Instruction 'FunctionAddress: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unnecessaryPhiInstruction unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions operandAcrossFunctions
@@ -29,11 +18,8 @@ containsLoopOfForwardEdges
missingIRType missingIRType
multipleIRTypes multipleIRTypes
lostReachability lostReachability
| ir.cpp:2464:25:2464:25 | Load: a | Block 'Load: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Store: a | Block 'Store: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
backEdgeCountMismatch backEdgeCountMismatch
useNotDominatedByDefinition useNotDominatedByDefinition
| ir.cpp:2464:25:2464:25 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
switchInstructionWithoutDefaultEdge switchInstructionWithoutDefaultEdge
notMarkedAsConflated notMarkedAsConflated
wronglyMarkedAsConflated wronglyMarkedAsConflated

View File

@@ -10,19 +10,7 @@ duplicateChiOperand
sideEffectWithoutPrimary sideEffectWithoutPrimary
instructionWithoutSuccessor instructionWithoutSuccessor
ambiguousSuccessors ambiguousSuccessors
| ir.cpp:2464:18:2464:22 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unexplainedLoop unexplainedLoop
| ir.cpp:2464:18:2464:22 | Call: call to ~B | Instruction 'Call: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CallSideEffect: call to ~B | Instruction 'CallSideEffect: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | Chi: call to ~B | Instruction 'Chi: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | Chi: reuse of temporary object | Instruction 'Chi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | FunctionAddress: call to ~B | Instruction 'FunctionAddress: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | Phi: reuse of temporary object | Instruction 'Phi: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unnecessaryPhiInstruction unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions operandAcrossFunctions
@@ -33,11 +21,8 @@ containsLoopOfForwardEdges
missingIRType missingIRType
multipleIRTypes multipleIRTypes
lostReachability lostReachability
| ir.cpp:2464:25:2464:25 | Load: a | Block 'Load: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Store: a | Block 'Store: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
backEdgeCountMismatch backEdgeCountMismatch
useNotDominatedByDefinition useNotDominatedByDefinition
| ir.cpp:2464:25:2464:25 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
switchInstructionWithoutDefaultEdge switchInstructionWithoutDefaultEdge
notMarkedAsConflated notMarkedAsConflated
wronglyMarkedAsConflated wronglyMarkedAsConflated

View File

@@ -13517,8 +13517,7 @@
| ir.cpp:2445:52:2445:52 | Unary | r2445_10 | | ir.cpp:2445:52:2445:52 | Unary | r2445_10 |
| ir.cpp:2462:10:2462:13 | ChiPartial | partial:m2462_3 | | ir.cpp:2462:10:2462:13 | ChiPartial | partial:m2462_3 |
| ir.cpp:2462:10:2462:13 | ChiTotal | total:m2462_2 | | ir.cpp:2462:10:2462:13 | ChiTotal | total:m2462_2 |
| ir.cpp:2462:10:2462:13 | SideEffect | ~m2464_25 | | ir.cpp:2462:10:2462:13 | SideEffect | ~m2464_19 |
| ir.cpp:2462:10:2462:13 | SideEffect | ~m2464_37 |
| ir.cpp:2464:14:2464:14 | Address | &:r2464_1 | | ir.cpp:2464:14:2464:14 | Address | &:r2464_1 |
| ir.cpp:2464:18:2464:20 | CallTarget | func:r2464_3 | | ir.cpp:2464:18:2464:20 | CallTarget | func:r2464_3 |
| ir.cpp:2464:18:2464:20 | ChiPartial | partial:m2464_5 | | ir.cpp:2464:18:2464:20 | ChiPartial | partial:m2464_5 |
@@ -13527,42 +13526,18 @@
| ir.cpp:2464:18:2464:20 | StoreValue | r2464_4 | | ir.cpp:2464:18:2464:20 | StoreValue | r2464_4 |
| ir.cpp:2464:18:2464:22 | Address | &:r2464_2 | | ir.cpp:2464:18:2464:22 | Address | &:r2464_2 |
| ir.cpp:2464:18:2464:22 | Address | &:r2464_8 | | ir.cpp:2464:18:2464:22 | Address | &:r2464_8 |
| ir.cpp:2464:18:2464:22 | Address | &:r2464_21 | | ir.cpp:2464:18:2464:22 | Address | &:r2464_15 |
| ir.cpp:2464:18:2464:22 | Address | &:r2464_21 | | ir.cpp:2464:18:2464:22 | Address | &:r2464_15 |
| ir.cpp:2464:18:2464:22 | Address | &:r2464_33 |
| ir.cpp:2464:18:2464:22 | Address | &:r2464_33 |
| ir.cpp:2464:18:2464:22 | Arg(this) | this:r2464_8 | | ir.cpp:2464:18:2464:22 | Arg(this) | this:r2464_8 |
| ir.cpp:2464:18:2464:22 | Arg(this) | this:r2464_21 | | ir.cpp:2464:18:2464:22 | Arg(this) | this:r2464_15 |
| ir.cpp:2464:18:2464:22 | Arg(this) | this:r2464_33 | | ir.cpp:2464:18:2464:22 | CallTarget | func:r2464_16 |
| ir.cpp:2464:18:2464:22 | CallTarget | func:r2464_22 | | ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_18 |
| ir.cpp:2464:18:2464:22 | CallTarget | func:r2464_34 | | ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_21 |
| ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_24 | | ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_7 |
| ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_27 | | ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_12 |
| ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_36 |
| ir.cpp:2464:18:2464:22 | ChiPartial | partial:m2464_39 |
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_17 |
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_18 |
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_19 |
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_20 |
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_29 |
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_30 |
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_31 |
| ir.cpp:2464:18:2464:22 | ChiTotal | total:m2464_32 |
| ir.cpp:2464:18:2464:22 | Phi | from 0:m2464_7 |
| ir.cpp:2464:18:2464:22 | Phi | from 0:~m2464_12 |
| ir.cpp:2464:18:2464:22 | Phi | from 2:m2464_28 |
| ir.cpp:2464:18:2464:22 | Phi | from 2:m2464_40 |
| ir.cpp:2464:18:2464:22 | Phi | from 2:~m2464_25 |
| ir.cpp:2464:18:2464:22 | Phi | from 2:~m2464_37 |
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_7 | | ir.cpp:2464:18:2464:22 | SideEffect | m2464_7 |
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_17 | | ir.cpp:2464:18:2464:22 | SideEffect | m2464_7 |
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_19 | | ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_12 |
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_29 |
| ir.cpp:2464:18:2464:22 | SideEffect | m2464_31 |
| ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_18 |
| ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_20 |
| ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_30 |
| ir.cpp:2464:18:2464:22 | SideEffect | ~m2464_32 |
| ir.cpp:2464:18:2464:22 | Unary | r2464_2 | | ir.cpp:2464:18:2464:22 | Unary | r2464_2 |
| ir.cpp:2464:18:2464:22 | Unary | r2464_2 | | ir.cpp:2464:18:2464:22 | Unary | r2464_2 |
| ir.cpp:2464:23:2464:23 | CallTarget | func:r2464_9 | | ir.cpp:2464:23:2464:23 | CallTarget | func:r2464_9 |
@@ -13571,9 +13546,8 @@
| ir.cpp:2464:23:2464:23 | SideEffect | ~m2464_6 | | ir.cpp:2464:23:2464:23 | SideEffect | ~m2464_6 |
| ir.cpp:2464:23:2464:23 | Unary | r2464_10 | | ir.cpp:2464:23:2464:23 | Unary | r2464_10 |
| ir.cpp:2464:25:2464:25 | Address | &:r2464_14 | | ir.cpp:2464:25:2464:25 | Address | &:r2464_14 |
| ir.cpp:2464:25:2464:25 | Load | ~m2464_25 | | ir.cpp:2464:25:2464:25 | Load | ~m2464_19 |
| ir.cpp:2464:25:2464:25 | Load | ~m2464_37 | | ir.cpp:2464:25:2464:25 | StoreValue | r2464_23 |
| ir.cpp:2464:25:2464:25 | StoreValue | r2464_16 |
| 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_5 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_5 |
| perf-regression.cpp:6:3:6:5 | Address | &:r6_7 | | perf-regression.cpp:6:3:6:5 | Address | &:r6_7 |

View File

@@ -7,15 +7,7 @@ duplicateChiOperand
sideEffectWithoutPrimary sideEffectWithoutPrimary
instructionWithoutSuccessor instructionWithoutSuccessor
ambiguousSuccessors ambiguousSuccessors
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unexplainedLoop unexplainedLoop
| ir.cpp:2464:18:2464:22 | Call: call to ~B | Instruction 'Call: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CallSideEffect: call to ~B | Instruction 'CallSideEffect: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | FunctionAddress: call to ~B | Instruction 'FunctionAddress: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unnecessaryPhiInstruction unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions operandAcrossFunctions
@@ -26,12 +18,9 @@ containsLoopOfForwardEdges
missingIRType missingIRType
multipleIRTypes multipleIRTypes
lostReachability lostReachability
| ir.cpp:2464:25:2464:25 | Load: a | Block 'Load: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Store: a | Block 'Store: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
backEdgeCountMismatch backEdgeCountMismatch
useNotDominatedByDefinition useNotDominatedByDefinition
| ir.cpp:1535:8:1535:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1535:8:1535:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | | ir.cpp:1535:8:1535:8 | Unary | Operand 'Unary' is not dominated by its definition in function '$@'. | ir.cpp:1535:8:1535:8 | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() | void StructuredBindingDataMemberStruct::StructuredBindingDataMemberStruct() |
| ir.cpp:2464:25:2464:25 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() | | try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() |
| try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() | | try_except.c:13:13:13:13 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:6:6:6:6 | void f() | void f() |
| try_except.c:39:15:39:15 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) | | try_except.c:39:15:39:15 | Left | Operand 'Left' is not dominated by its definition in function '$@'. | try_except.c:32:6:32:6 | void h(int) | void h(int) |

View File

@@ -14757,49 +14757,33 @@ ir.cpp:
# 2462| void rvalue_conversion_with_destructor::test() # 2462| void rvalue_conversion_with_destructor::test()
# 2462| Block 0 # 2462| Block 0
# 2462| v2462_1(void) = EnterFunction : # 2462| v2462_1(void) = EnterFunction :
# 2462| mu2462_2(unknown) = AliasedDefinition : # 2462| mu2462_2(unknown) = AliasedDefinition :
# 2462| mu2462_3(unknown) = InitializeNonLocal : # 2462| mu2462_3(unknown) = InitializeNonLocal :
# 2464| r2464_1(glval<unsigned int>) = VariableAddress[a] : # 2464| r2464_1(glval<unsigned int>) = VariableAddress[a] :
# 2464| r2464_2(glval<B>) = VariableAddress[#temp2464:18] : # 2464| r2464_2(glval<B>) = VariableAddress[#temp2464:18] :
# 2464| r2464_3(glval<unknown>) = FunctionAddress[get] : # 2464| r2464_3(glval<unknown>) = FunctionAddress[get] :
# 2464| r2464_4(B) = Call[get] : func:r2464_3 # 2464| r2464_4(B) = Call[get] : func:r2464_3
# 2464| mu2464_5(unknown) = ^CallSideEffect : ~m? # 2464| mu2464_5(unknown) = ^CallSideEffect : ~m?
# 2464| mu2464_6(B) = Store[#temp2464:18] : &:r2464_2, r2464_4 # 2464| mu2464_6(B) = Store[#temp2464:18] : &:r2464_2, r2464_4
# 2464| r2464_7(glval<B>) = Convert : r2464_2 # 2464| r2464_7(glval<B>) = Convert : r2464_2
# 2464| r2464_8(glval<unknown>) = FunctionAddress[operator->] : # 2464| r2464_8(glval<unknown>) = FunctionAddress[operator->] :
# 2464| r2464_9(A *) = Call[operator->] : func:r2464_8, this:r2464_7 # 2464| r2464_9(A *) = Call[operator->] : func:r2464_8, this:r2464_7
# 2464| mu2464_10(unknown) = ^CallSideEffect : ~m? # 2464| mu2464_10(unknown) = ^CallSideEffect : ~m?
# 2464| v2464_11(void) = ^IndirectReadSideEffect[-1] : &:r2464_7, ~m? # 2464| v2464_11(void) = ^IndirectReadSideEffect[-1] : &:r2464_7, ~m?
# 2464| r2464_12(glval<unsigned int>) = FieldAddress[a] : r2464_9 # 2464| r2464_12(glval<unsigned int>) = FieldAddress[a] : r2464_9
#-----| Goto -> Block 3 # 2464| r2464_13(glval<B>) = CopyValue : r2464_2
#-----| Goto -> Block 3 # 2464| r2464_14(glval<unknown>) = FunctionAddress[~B] :
# 2464| v2464_15(void) = Call[~B] : func:r2464_14, this:r2464_13
# 2464| Block 1 # 2464| mu2464_16(unknown) = ^CallSideEffect : ~m?
# 2464| mu2464_13(unsigned int) = Store[a] : &:r2464_1, r2464_14 # 2464| v2464_17(void) = ^IndirectReadSideEffect[-1] : &:r2464_13, ~m?
# 2465| v2465_1(void) = NoOp : # 2464| mu2464_18(B) = ^IndirectMayWriteSideEffect[-1] : &:r2464_13
# 2462| v2462_4(void) = ReturnVoid : # 2464| r2464_19(unsigned int) = Load[?] : &:r2464_12, ~m?
# 2462| v2462_5(void) = AliasedUse : ~m? # 2464| mu2464_20(unsigned int) = Store[a] : &:r2464_1, r2464_19
# 2462| v2462_6(void) = ExitFunction : # 2465| v2465_1(void) = NoOp :
# 2462| v2462_4(void) = ReturnVoid :
# 2464| Block 2 # 2462| v2462_5(void) = AliasedUse : ~m?
# 2464| r2464_14(unsigned int) = Load[?] : &:r2464_12, ~m? # 2462| v2462_6(void) = ExitFunction :
#-----| Goto (back edge) -> Block 3
#-----| Goto (back edge) -> Block 3
# 2464| Block 3
# 2464| r2464_21(glval<B>) = CopyValue : r2464_2
# 2464| r2464_22(glval<unknown>) = FunctionAddress[~B] :
# 2464| v2464_23(void) = Call[~B] : func:r2464_16, func:r2464_22, this:r2464_15, this:r2464_21
# 2464| mu2464_24(unknown) = ^CallSideEffect : ~m?
# 2464| v2464_25(void) = ^IndirectReadSideEffect[-1] : &:r2464_15, &:r2464_21, ~m?
# 2464| mu2464_26(B) = ^IndirectMayWriteSideEffect[-1] : &:r2464_15, &:r2464_21
#-----| Goto (back edge) -> Block 1
#-----| Goto (back edge) -> Block 2
# 2464| Block 3
#-----| Goto (back edge) -> Block 1
#-----| Goto (back edge) -> Block 2
perf-regression.cpp: perf-regression.cpp:
# 6| void Big::Big() # 6| void Big::Big()

View File

@@ -7,15 +7,7 @@ duplicateChiOperand
sideEffectWithoutPrimary sideEffectWithoutPrimary
instructionWithoutSuccessor instructionWithoutSuccessor
ambiguousSuccessors ambiguousSuccessors
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unexplainedLoop unexplainedLoop
| ir.cpp:2464:18:2464:22 | Call: call to ~B | Instruction 'Call: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CallSideEffect: call to ~B | Instruction 'CallSideEffect: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | FunctionAddress: call to ~B | Instruction 'FunctionAddress: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unnecessaryPhiInstruction unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions operandAcrossFunctions
@@ -26,11 +18,8 @@ containsLoopOfForwardEdges
missingIRType missingIRType
multipleIRTypes multipleIRTypes
lostReachability lostReachability
| ir.cpp:2464:25:2464:25 | Load: a | Block 'Load: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Store: a | Block 'Store: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
backEdgeCountMismatch backEdgeCountMismatch
useNotDominatedByDefinition useNotDominatedByDefinition
| ir.cpp:2464:25:2464:25 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
switchInstructionWithoutDefaultEdge switchInstructionWithoutDefaultEdge
notMarkedAsConflated notMarkedAsConflated
wronglyMarkedAsConflated wronglyMarkedAsConflated

View File

@@ -7,15 +7,7 @@ duplicateChiOperand
sideEffectWithoutPrimary sideEffectWithoutPrimary
instructionWithoutSuccessor instructionWithoutSuccessor
ambiguousSuccessors ambiguousSuccessors
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' has 2 successors of kind 'Goto' in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unexplainedLoop unexplainedLoop
| ir.cpp:2464:18:2464:22 | Call: call to ~B | Instruction 'Call: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CallSideEffect: call to ~B | Instruction 'CallSideEffect: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | CopyValue: reuse of temporary object | Instruction 'CopyValue: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | FunctionAddress: call to ~B | Instruction 'FunctionAddress: call to ~B' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectMayWriteSideEffect: reuse of temporary object | Instruction 'IndirectMayWriteSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:18:2464:22 | IndirectReadSideEffect: reuse of temporary object | Instruction 'IndirectReadSideEffect: reuse of temporary object' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Load: a | Instruction 'Load: a' is part of an unexplained loop in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
unnecessaryPhiInstruction unnecessaryPhiInstruction
memoryOperandDefinitionIsUnmodeled memoryOperandDefinitionIsUnmodeled
operandAcrossFunctions operandAcrossFunctions
@@ -26,11 +18,8 @@ containsLoopOfForwardEdges
missingIRType missingIRType
multipleIRTypes multipleIRTypes
lostReachability lostReachability
| ir.cpp:2464:25:2464:25 | Load: a | Block 'Load: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
| ir.cpp:2464:25:2464:25 | Store: a | Block 'Store: a' is not reachable by traversing only forward edges in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
backEdgeCountMismatch backEdgeCountMismatch
useNotDominatedByDefinition useNotDominatedByDefinition
| ir.cpp:2464:25:2464:25 | StoreValue | Operand 'StoreValue' is not dominated by its definition in function '$@'. | ir.cpp:2462:10:2462:13 | void rvalue_conversion_with_destructor::test() | void rvalue_conversion_with_destructor::test() |
switchInstructionWithoutDefaultEdge switchInstructionWithoutDefaultEdge
notMarkedAsConflated notMarkedAsConflated
wronglyMarkedAsConflated wronglyMarkedAsConflated