mirror of
https://github.com/github/codeql.git
synced 2026-04-27 09:45:15 +02:00
C++: Add test where the for loop should call destructors at the end of its body
This commit is contained in:
@@ -16754,12 +16754,12 @@ ir.cpp:
|
||||
# 2159| Value = [CStyleCast] 98
|
||||
# 2159| ValueCategory = prvalue
|
||||
# 2160| getThen(): [ReturnStmt] return ...
|
||||
# 2167| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2167| Type = [VoidType] void
|
||||
# 2167| ValueCategory = prvalue
|
||||
# 2167| getQualifier(): [VariableAccess] x
|
||||
# 2167| Type = [Class] ClassWithDestructor
|
||||
# 2167| ValueCategory = lvalue
|
||||
# 2172| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2172| Type = [VoidType] void
|
||||
# 2172| ValueCategory = prvalue
|
||||
# 2172| getQualifier(): [VariableAccess] x
|
||||
# 2172| Type = [Class] ClassWithDestructor
|
||||
# 2172| ValueCategory = lvalue
|
||||
# 2157| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 2157| Type = [NestedStruct] iterator
|
||||
# 2157| ValueCategory = lvalue
|
||||
@@ -16867,80 +16867,179 @@ ir.cpp:
|
||||
# 2164| Value = [Literal] 1
|
||||
# 2164| ValueCategory = prvalue
|
||||
# 2165| getThen(): [ReturnStmt] return ...
|
||||
# 2167| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2167| Type = [VoidType] void
|
||||
# 2167| ValueCategory = prvalue
|
||||
# 2167| getQualifier(): [VariableAccess] x
|
||||
# 2167| Type = [Class] ClassWithDestructor
|
||||
# 2167| ValueCategory = lvalue
|
||||
# 2172| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2172| Type = [VoidType] void
|
||||
# 2172| ValueCategory = prvalue
|
||||
# 2172| getQualifier(): [VariableAccess] x
|
||||
# 2172| Type = [Class] ClassWithDestructor
|
||||
# 2172| ValueCategory = lvalue
|
||||
# 2163| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 2163| Type = [NestedStruct] iterator
|
||||
# 2163| ValueCategory = lvalue
|
||||
# 2167| getStmt(8): [ReturnStmt] return ...
|
||||
# 2167| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2167| Type = [VoidType] void
|
||||
# 2167| ValueCategory = prvalue
|
||||
# 2167| getQualifier(): [VariableAccess] x
|
||||
# 2167| Type = [Class] ClassWithDestructor
|
||||
# 2167| ValueCategory = lvalue
|
||||
# 2169| [TopLevelFunction] void static_variable_with_destructor_1()
|
||||
# 2169| <params>:
|
||||
# 2169| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 2170| getStmt(0): [DeclStmt] declaration
|
||||
# 2170| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
|
||||
# 2170| Type = [Class] ClassWithDestructor
|
||||
# 2170| getVariable().getInitializer(): [Initializer] initializer for a
|
||||
# 2170| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2170| Type = [VoidType] void
|
||||
# 2170| ValueCategory = prvalue
|
||||
# 2171| getStmt(1): [DeclStmt] declaration
|
||||
# 2171| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
|
||||
# 2171| Type = [Class] ClassWithDestructor
|
||||
#-----| getVariable().getInitializer(): [Initializer] initializer for b
|
||||
#-----| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
#-----| Type = [VoidType] void
|
||||
#-----| ValueCategory = prvalue
|
||||
# 2172| getStmt(2): [ReturnStmt] return ...
|
||||
# 2168| getStmt(8): [RangeBasedForStmt] for(...:...) ...
|
||||
# 2168| getInitialization(): [DeclStmt] declaration
|
||||
# 2168| getDeclarationEntry(0): [VariableDeclarationEntry] definition of ys
|
||||
# 2168| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor>
|
||||
# 2168| getVariable().getInitializer(): [Initializer] initializer for ys
|
||||
# 2168| getExpr(): [ConstructorCall] call to vector
|
||||
# 2168| Type = [VoidType] void
|
||||
# 2168| ValueCategory = prvalue
|
||||
# 2168| getArgument(0): [VariableAccess] x
|
||||
# 2168| Type = [Class] ClassWithDestructor
|
||||
# 2168| ValueCategory = prvalue(load)
|
||||
# 2168| getArgument(0).getFullyConverted(): [TemporaryObjectExpr] temporary object
|
||||
# 2168| Type = [Class] ClassWithDestructor
|
||||
# 2168| ValueCategory = lvalue
|
||||
# 2168| getChild(1): [DeclStmt] declaration
|
||||
# 2168| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__range)
|
||||
# 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> &
|
||||
#-----| getVariable().getInitializer(): [Initializer] initializer for (__range)
|
||||
# 2168| getExpr(): [VariableAccess] ys
|
||||
# 2168| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor>
|
||||
# 2168| ValueCategory = lvalue
|
||||
# 2168| getExpr().getFullyConverted(): [ReferenceToExpr] (reference to)
|
||||
# 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> &
|
||||
# 2168| ValueCategory = prvalue
|
||||
# 2168| getBeginEndDeclaration(): [DeclStmt] declaration
|
||||
# 2168| getDeclarationEntry(0): [VariableDeclarationEntry] declaration of (__begin)
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
#-----| getVariable().getInitializer(): [Initializer] initializer for (__begin)
|
||||
# 2168| getExpr(): [FunctionCall] call to begin
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
# 2168| ValueCategory = prvalue
|
||||
# 2168| getQualifier(): [VariableAccess] (__range)
|
||||
# 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> &
|
||||
# 2168| ValueCategory = prvalue(load)
|
||||
#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)...
|
||||
#-----| Conversion = [GlvalueConversion] glvalue conversion
|
||||
#-----| Type = [SpecifiedType] const vector<ClassWithDestructor>
|
||||
#-----| ValueCategory = lvalue
|
||||
#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor>
|
||||
#-----| ValueCategory = lvalue
|
||||
# 2168| getDeclarationEntry(1): [VariableDeclarationEntry] declaration of (__end)
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
#-----| getVariable().getInitializer(): [Initializer] initializer for (__end)
|
||||
# 2168| getExpr(): [FunctionCall] call to end
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
# 2168| ValueCategory = prvalue
|
||||
# 2168| getQualifier(): [VariableAccess] (__range)
|
||||
# 2168| Type = [LValueReferenceType] vector<ClassWithDestructor> &
|
||||
# 2168| ValueCategory = prvalue(load)
|
||||
#-----| getQualifier().getFullyConverted(): [CStyleCast] (const vector<ClassWithDestructor>)...
|
||||
#-----| Conversion = [GlvalueConversion] glvalue conversion
|
||||
#-----| Type = [SpecifiedType] const vector<ClassWithDestructor>
|
||||
#-----| ValueCategory = lvalue
|
||||
#-----| getExpr(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
#-----| Type = [ClassTemplateInstantiation,Struct] vector<ClassWithDestructor>
|
||||
#-----| ValueCategory = lvalue
|
||||
# 2168| getCondition(): [FunctionCall] call to operator!=
|
||||
# 2168| Type = [BoolType] bool
|
||||
# 2168| ValueCategory = prvalue
|
||||
# 2168| getQualifier(): [VariableAccess] (__begin)
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
# 2168| ValueCategory = lvalue
|
||||
# 2168| getArgument(0): [VariableAccess] (__end)
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
# 2168| ValueCategory = prvalue(load)
|
||||
#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)...
|
||||
#-----| Conversion = [GlvalueConversion] glvalue conversion
|
||||
#-----| Type = [SpecifiedType] const iterator
|
||||
#-----| ValueCategory = lvalue
|
||||
# 2168| getUpdate(): [FunctionCall] call to operator++
|
||||
# 2168| Type = [LValueReferenceType] iterator &
|
||||
# 2168| ValueCategory = prvalue
|
||||
# 2168| getQualifier(): [VariableAccess] (__begin)
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
# 2168| ValueCategory = lvalue
|
||||
# 2168| getChild(5): [DeclStmt] declaration
|
||||
# 2168| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y
|
||||
# 2168| Type = [Class] ClassWithDestructor
|
||||
# 2168| getVariable().getInitializer(): [Initializer] initializer for y
|
||||
# 2168| getExpr(): [OverloadedPointerDereferenceExpr] call to operator*
|
||||
# 2168| Type = [LValueReferenceType] ClassWithDestructor &
|
||||
# 2168| ValueCategory = prvalue
|
||||
# 2168| getQualifier(): [VariableAccess] (__begin)
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
# 2168| ValueCategory = lvalue
|
||||
#-----| getQualifier().getFullyConverted(): [CStyleCast] (const iterator)...
|
||||
#-----| Conversion = [GlvalueConversion] glvalue conversion
|
||||
#-----| Type = [SpecifiedType] const iterator
|
||||
#-----| ValueCategory = lvalue
|
||||
# 2168| getExpr().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 2168| Type = [Class] ClassWithDestructor
|
||||
# 2168| ValueCategory = prvalue(load)
|
||||
# 2168| getStmt(): [BlockStmt] { ... }
|
||||
# 2169| getStmt(0): [DeclStmt] declaration
|
||||
# 2169| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z1
|
||||
# 2169| Type = [Class] ClassWithDestructor
|
||||
# 2169| getVariable().getInitializer(): [Initializer] initializer for z1
|
||||
# 2169| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2169| Type = [VoidType] void
|
||||
# 2169| ValueCategory = prvalue
|
||||
# 2170| getStmt(1): [DeclStmt] declaration
|
||||
# 2170| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z2
|
||||
# 2170| Type = [Class] ClassWithDestructor
|
||||
# 2170| getVariable().getInitializer(): [Initializer] initializer for z2
|
||||
# 2170| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2170| Type = [VoidType] void
|
||||
# 2170| ValueCategory = prvalue
|
||||
# 2171| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2171| Type = [VoidType] void
|
||||
# 2171| ValueCategory = prvalue
|
||||
# 2171| getQualifier(): [VariableAccess] z2
|
||||
# 2171| Type = [Class] ClassWithDestructor
|
||||
# 2171| ValueCategory = lvalue
|
||||
# 2171| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2171| Type = [VoidType] void
|
||||
# 2171| ValueCategory = prvalue
|
||||
# 2171| getQualifier(): [VariableAccess] z1
|
||||
# 2171| Type = [Class] ClassWithDestructor
|
||||
# 2171| ValueCategory = lvalue
|
||||
# 2168| getUpdate().getFullyConverted(): [ReferenceDereferenceExpr] (reference dereference)
|
||||
# 2168| Type = [NestedStruct] iterator
|
||||
# 2168| ValueCategory = lvalue
|
||||
# 2172| getStmt(9): [ReturnStmt] return ...
|
||||
# 2172| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2172| Type = [VoidType] void
|
||||
# 2172| ValueCategory = prvalue
|
||||
# 2172| getQualifier(): [VariableAccess] a
|
||||
# 2172| getQualifier(): [VariableAccess] x
|
||||
# 2172| Type = [Class] ClassWithDestructor
|
||||
# 2172| ValueCategory = lvalue
|
||||
# 2174| [TopLevelFunction] void static_variable_with_destructor_2()
|
||||
# 2174| [TopLevelFunction] void static_variable_with_destructor_1()
|
||||
# 2174| <params>:
|
||||
# 2174| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 2175| getStmt(0): [DeclStmt] declaration
|
||||
# 2175| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
|
||||
# 2175| Type = [Class] ClassWithDestructor
|
||||
#-----| getVariable().getInitializer(): [Initializer] initializer for a
|
||||
#-----| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
#-----| Type = [VoidType] void
|
||||
#-----| ValueCategory = prvalue
|
||||
# 2175| getVariable().getInitializer(): [Initializer] initializer for a
|
||||
# 2175| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2175| Type = [VoidType] void
|
||||
# 2175| ValueCategory = prvalue
|
||||
# 2176| getStmt(1): [DeclStmt] declaration
|
||||
# 2176| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
|
||||
# 2176| Type = [Class] ClassWithDestructor
|
||||
# 2176| getVariable().getInitializer(): [Initializer] initializer for b
|
||||
# 2176| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2176| Type = [VoidType] void
|
||||
# 2176| ValueCategory = prvalue
|
||||
#-----| getVariable().getInitializer(): [Initializer] initializer for b
|
||||
#-----| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
#-----| Type = [VoidType] void
|
||||
#-----| ValueCategory = prvalue
|
||||
# 2177| getStmt(2): [ReturnStmt] return ...
|
||||
# 2177| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2177| Type = [VoidType] void
|
||||
# 2177| ValueCategory = prvalue
|
||||
# 2177| getQualifier(): [VariableAccess] b
|
||||
# 2177| getQualifier(): [VariableAccess] a
|
||||
# 2177| Type = [Class] ClassWithDestructor
|
||||
# 2177| ValueCategory = lvalue
|
||||
# 2179| [TopLevelFunction] void static_variable_with_destructor_3()
|
||||
# 2179| [TopLevelFunction] void static_variable_with_destructor_2()
|
||||
# 2179| <params>:
|
||||
# 2179| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 2180| getStmt(0): [DeclStmt] declaration
|
||||
# 2180| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
|
||||
# 2180| Type = [Class] ClassWithDestructor
|
||||
# 2180| getVariable().getInitializer(): [Initializer] initializer for a
|
||||
# 2180| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2180| Type = [VoidType] void
|
||||
# 2180| ValueCategory = prvalue
|
||||
#-----| getVariable().getInitializer(): [Initializer] initializer for a
|
||||
#-----| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
#-----| Type = [VoidType] void
|
||||
#-----| ValueCategory = prvalue
|
||||
# 2181| getStmt(1): [DeclStmt] declaration
|
||||
# 2181| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
|
||||
# 2181| Type = [Class] ClassWithDestructor
|
||||
@@ -16948,31 +17047,55 @@ ir.cpp:
|
||||
# 2181| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2181| Type = [VoidType] void
|
||||
# 2181| ValueCategory = prvalue
|
||||
# 2182| getStmt(2): [DeclStmt] declaration
|
||||
# 2182| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
|
||||
# 2182| Type = [Class] ClassWithDestructor
|
||||
# 2182| getStmt(2): [ReturnStmt] return ...
|
||||
# 2182| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2182| Type = [VoidType] void
|
||||
# 2182| ValueCategory = prvalue
|
||||
# 2182| getQualifier(): [VariableAccess] b
|
||||
# 2182| Type = [Class] ClassWithDestructor
|
||||
# 2182| ValueCategory = lvalue
|
||||
# 2184| [TopLevelFunction] void static_variable_with_destructor_3()
|
||||
# 2184| <params>:
|
||||
# 2184| getEntryPoint(): [BlockStmt] { ... }
|
||||
# 2185| getStmt(0): [DeclStmt] declaration
|
||||
# 2185| getDeclarationEntry(0): [VariableDeclarationEntry] definition of a
|
||||
# 2185| Type = [Class] ClassWithDestructor
|
||||
# 2185| getVariable().getInitializer(): [Initializer] initializer for a
|
||||
# 2185| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2185| Type = [VoidType] void
|
||||
# 2185| ValueCategory = prvalue
|
||||
# 2186| getStmt(1): [DeclStmt] declaration
|
||||
# 2186| getDeclarationEntry(0): [VariableDeclarationEntry] definition of b
|
||||
# 2186| Type = [Class] ClassWithDestructor
|
||||
# 2186| getVariable().getInitializer(): [Initializer] initializer for b
|
||||
# 2186| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2186| Type = [VoidType] void
|
||||
# 2186| ValueCategory = prvalue
|
||||
# 2187| getStmt(2): [DeclStmt] declaration
|
||||
# 2187| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c
|
||||
# 2187| Type = [Class] ClassWithDestructor
|
||||
#-----| getVariable().getInitializer(): [Initializer] initializer for c
|
||||
#-----| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
#-----| Type = [VoidType] void
|
||||
#-----| ValueCategory = prvalue
|
||||
# 2183| getStmt(3): [ReturnStmt] return ...
|
||||
# 2183| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2183| Type = [VoidType] void
|
||||
# 2183| ValueCategory = prvalue
|
||||
# 2183| getQualifier(): [VariableAccess] b
|
||||
# 2183| Type = [Class] ClassWithDestructor
|
||||
# 2183| ValueCategory = lvalue
|
||||
# 2183| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2183| Type = [VoidType] void
|
||||
# 2183| ValueCategory = prvalue
|
||||
# 2183| getQualifier(): [VariableAccess] a
|
||||
# 2183| Type = [Class] ClassWithDestructor
|
||||
# 2183| ValueCategory = lvalue
|
||||
# 2185| [GlobalVariable] ClassWithDestructor global_class_with_destructor
|
||||
# 2185| getInitializer(): [Initializer] initializer for global_class_with_destructor
|
||||
# 2185| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2185| Type = [VoidType] void
|
||||
# 2185| ValueCategory = prvalue
|
||||
# 2188| getStmt(3): [ReturnStmt] return ...
|
||||
# 2188| getImplicitDestructorCall(0): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2188| Type = [VoidType] void
|
||||
# 2188| ValueCategory = prvalue
|
||||
# 2188| getQualifier(): [VariableAccess] b
|
||||
# 2188| Type = [Class] ClassWithDestructor
|
||||
# 2188| ValueCategory = lvalue
|
||||
# 2188| getImplicitDestructorCall(1): [DestructorCall] call to ~ClassWithDestructor
|
||||
# 2188| Type = [VoidType] void
|
||||
# 2188| ValueCategory = prvalue
|
||||
# 2188| getQualifier(): [VariableAccess] a
|
||||
# 2188| Type = [Class] ClassWithDestructor
|
||||
# 2188| ValueCategory = lvalue
|
||||
# 2190| [GlobalVariable] ClassWithDestructor global_class_with_destructor
|
||||
# 2190| getInitializer(): [Initializer] initializer for global_class_with_destructor
|
||||
# 2190| getExpr(): [ConstructorCall] call to ClassWithDestructor
|
||||
# 2190| Type = [VoidType] void
|
||||
# 2190| ValueCategory = prvalue
|
||||
perf-regression.cpp:
|
||||
# 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&)
|
||||
# 4| <params>:
|
||||
|
||||
@@ -12641,7 +12641,7 @@ ir.cpp:
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2137| Block 1
|
||||
# 2137| m2137_9(unknown) = Phi : from 14:~m2159_5, from 19:~m2163_54, from 20:~m2163_38
|
||||
# 2137| m2137_9(unknown) = Phi : from 14:~m2159_5, from 19:~m2163_54, from 23:~m2168_42
|
||||
# 2137| v2137_10(void) = ReturnVoid :
|
||||
# 2137| v2137_11(void) = AliasedUse : ~m2137_9
|
||||
# 2137| v2137_12(void) = ExitFunction :
|
||||
@@ -12670,7 +12670,7 @@ ir.cpp:
|
||||
# 2141| m2141_9(ClassWithDestructor) = Chi : total:m2141_3, partial:m2141_8
|
||||
# 2141| r2141_10(bool) = Constant[1] :
|
||||
# 2141| v2141_11(void) = ConditionalBranch : r2141_10
|
||||
#-----| False -> Block 21
|
||||
#-----| False -> Block 24
|
||||
#-----| True -> Block 4
|
||||
|
||||
# 2142| Block 4
|
||||
@@ -13023,155 +13023,251 @@ ir.cpp:
|
||||
# 2165| v2165_1(void) = NoOp :
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2167| Block 20
|
||||
# 2167| v2167_1(void) = NoOp :
|
||||
# 2168| Block 20
|
||||
# 2168| r2168_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] :
|
||||
# 2168| m2168_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2168_1
|
||||
# 2168| r2168_3(glval<unknown>) = FunctionAddress[vector] :
|
||||
# 2168| r2168_4(glval<ClassWithDestructor>) = VariableAddress[#temp2168:40] :
|
||||
# 2168| r2168_5(glval<ClassWithDestructor>) = VariableAddress[x] :
|
||||
# 2168| r2168_6(ClassWithDestructor) = Load[x] : &:r2168_5, m2153_8
|
||||
# 2168| m2168_7(ClassWithDestructor) = Store[#temp2168:40] : &:r2168_4, r2168_6
|
||||
# 2168| r2168_8(ClassWithDestructor) = Load[#temp2168:40] : &:r2168_4, m2168_7
|
||||
# 2168| v2168_9(void) = Call[vector] : func:r2168_3, this:r2168_1, 0:r2168_8
|
||||
# 2168| m2168_10(unknown) = ^CallSideEffect : ~m2163_38
|
||||
# 2168| m2168_11(unknown) = Chi : total:m2163_38, partial:m2168_10
|
||||
# 2168| m2168_12(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2168_1
|
||||
# 2168| m2168_13(vector<ClassWithDestructor>) = Chi : total:m2168_2, partial:m2168_12
|
||||
# 2168| r2168_14(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] :
|
||||
# 2168| r2168_15(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] :
|
||||
# 2168| r2168_16(vector<ClassWithDestructor> &) = CopyValue : r2168_15
|
||||
# 2168| m2168_17(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2168_14, r2168_16
|
||||
# 2168| r2168_18(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
# 2168| r2168_19(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] :
|
||||
# 2168| r2168_20(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2168_19, m2168_17
|
||||
#-----| r0_31(glval<vector<ClassWithDestructor>>) = CopyValue : r2168_20
|
||||
#-----| r0_32(glval<vector<ClassWithDestructor>>) = Convert : r0_31
|
||||
# 2168| r2168_21(glval<unknown>) = FunctionAddress[begin] :
|
||||
# 2168| r2168_22(iterator) = Call[begin] : func:r2168_21, this:r0_32
|
||||
# 2168| m2168_23(unknown) = ^CallSideEffect : ~m2168_11
|
||||
# 2168| m2168_24(unknown) = Chi : total:m2168_11, partial:m2168_23
|
||||
#-----| v0_33(void) = ^IndirectReadSideEffect[-1] : &:r0_32, m2168_13
|
||||
# 2168| m2168_25(iterator) = Store[(__begin)] : &:r2168_18, r2168_22
|
||||
# 2168| r2168_26(glval<iterator>) = VariableAddress[(__end)] :
|
||||
# 2168| r2168_27(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] :
|
||||
# 2168| r2168_28(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2168_27, m2168_17
|
||||
#-----| r0_34(glval<vector<ClassWithDestructor>>) = CopyValue : r2168_28
|
||||
#-----| r0_35(glval<vector<ClassWithDestructor>>) = Convert : r0_34
|
||||
# 2168| r2168_29(glval<unknown>) = FunctionAddress[end] :
|
||||
# 2168| r2168_30(iterator) = Call[end] : func:r2168_29, this:r0_35
|
||||
# 2168| m2168_31(unknown) = ^CallSideEffect : ~m2168_24
|
||||
# 2168| m2168_32(unknown) = Chi : total:m2168_24, partial:m2168_31
|
||||
#-----| v0_36(void) = ^IndirectReadSideEffect[-1] : &:r0_35, m2168_13
|
||||
# 2168| m2168_33(iterator) = Store[(__end)] : &:r2168_26, r2168_30
|
||||
#-----| Goto -> Block 21
|
||||
|
||||
# 2168| Block 21
|
||||
# 2168| m2168_34(iterator) = Phi : from 20:m2168_25, from 22:m2168_59
|
||||
# 2168| m2168_35(unknown) = Phi : from 20:~m2168_32, from 22:~m2168_56
|
||||
# 2168| r2168_36(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
#-----| r0_37(glval<iterator>) = Convert : r2168_36
|
||||
# 2168| r2168_37(glval<unknown>) = FunctionAddress[operator!=] :
|
||||
# 2168| r2168_38(glval<iterator>) = VariableAddress[(__end)] :
|
||||
# 2168| r2168_39(iterator) = Load[(__end)] : &:r2168_38, m2168_33
|
||||
# 2168| r2168_40(bool) = Call[operator!=] : func:r2168_37, this:r0_37, 0:r2168_39
|
||||
# 2168| m2168_41(unknown) = ^CallSideEffect : ~m2168_35
|
||||
# 2168| m2168_42(unknown) = Chi : total:m2168_35, partial:m2168_41
|
||||
#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, m2168_34
|
||||
# 2168| v2168_43(void) = ConditionalBranch : r2168_40
|
||||
#-----| False -> Block 23
|
||||
#-----| True -> Block 22
|
||||
|
||||
# 2168| Block 22
|
||||
# 2168| r2168_44(glval<ClassWithDestructor>) = VariableAddress[y] :
|
||||
# 2168| r2168_45(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
#-----| r0_39(glval<iterator>) = Convert : r2168_45
|
||||
# 2168| r2168_46(glval<unknown>) = FunctionAddress[operator*] :
|
||||
# 2168| r2168_47(ClassWithDestructor &) = Call[operator*] : func:r2168_46, this:r0_39
|
||||
# 2168| m2168_48(unknown) = ^CallSideEffect : ~m2168_42
|
||||
# 2168| m2168_49(unknown) = Chi : total:m2168_42, partial:m2168_48
|
||||
#-----| v0_40(void) = ^IndirectReadSideEffect[-1] : &:r0_39, m2168_34
|
||||
# 2168| r2168_50(ClassWithDestructor) = Load[?] : &:r2168_47, ~m2168_49
|
||||
# 2168| m2168_51(ClassWithDestructor) = Store[y] : &:r2168_44, r2168_50
|
||||
# 2169| r2169_1(glval<ClassWithDestructor>) = VariableAddress[z1] :
|
||||
# 2169| m2169_2(ClassWithDestructor) = Uninitialized[z1] : &:r2169_1
|
||||
# 2169| r2169_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2169| v2169_4(void) = Call[ClassWithDestructor] : func:r2169_3, this:r2169_1
|
||||
# 2169| m2169_5(unknown) = ^CallSideEffect : ~m2168_49
|
||||
# 2169| m2169_6(unknown) = Chi : total:m2168_49, partial:m2169_5
|
||||
# 2169| m2169_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2169_1
|
||||
# 2169| m2169_8(ClassWithDestructor) = Chi : total:m2169_2, partial:m2169_7
|
||||
# 2170| r2170_1(glval<ClassWithDestructor>) = VariableAddress[z2] :
|
||||
# 2170| m2170_2(ClassWithDestructor) = Uninitialized[z2] : &:r2170_1
|
||||
# 2170| r2170_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2170| v2170_4(void) = Call[ClassWithDestructor] : func:r2170_3, this:r2170_1
|
||||
# 2170| m2170_5(unknown) = ^CallSideEffect : ~m2169_6
|
||||
# 2170| m2170_6(unknown) = Chi : total:m2169_6, partial:m2170_5
|
||||
# 2170| m2170_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1
|
||||
# 2170| m2170_8(ClassWithDestructor) = Chi : total:m2170_2, partial:m2170_7
|
||||
# 2168| r2168_52(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
# 2168| r2168_53(glval<unknown>) = FunctionAddress[operator++] :
|
||||
# 2168| r2168_54(iterator &) = Call[operator++] : func:r2168_53, this:r2168_52
|
||||
# 2168| m2168_55(unknown) = ^CallSideEffect : ~m2170_6
|
||||
# 2168| m2168_56(unknown) = Chi : total:m2170_6, partial:m2168_55
|
||||
# 2168| v2168_57(void) = ^IndirectReadSideEffect[-1] : &:r2168_52, m2168_34
|
||||
# 2168| m2168_58(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2168_52
|
||||
# 2168| m2168_59(iterator) = Chi : total:m2168_34, partial:m2168_58
|
||||
# 2168| r2168_60(glval<iterator>) = CopyValue : r2168_54
|
||||
#-----| Goto (back edge) -> Block 21
|
||||
|
||||
# 2172| Block 23
|
||||
# 2172| v2172_1(void) = NoOp :
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2137| Block 21
|
||||
# 2137| Block 24
|
||||
# 2137| v2137_13(void) = Unreached :
|
||||
|
||||
# 2169| void static_variable_with_destructor_1()
|
||||
# 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
|
||||
# 2170| r2170_1(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2170| m2170_2(ClassWithDestructor) = Uninitialized[a] : &:r2170_1
|
||||
# 2170| r2170_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2170| v2170_4(void) = Call[ClassWithDestructor] : func:r2170_3, this:r2170_1
|
||||
# 2170| m2170_5(unknown) = ^CallSideEffect : ~m2169_4
|
||||
# 2170| m2170_6(unknown) = Chi : total:m2169_4, partial:m2170_5
|
||||
# 2170| m2170_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1
|
||||
# 2170| m2170_8(ClassWithDestructor) = Chi : total:m2170_2, partial:m2170_7
|
||||
# 2171| r2171_1(glval<bool>) = VariableAddress[b#init] :
|
||||
# 2171| r2171_2(bool) = Load[b#init] : &:r2171_1, ~m2170_6
|
||||
# 2171| v2171_3(void) = ConditionalBranch : r2171_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2171| Block 1
|
||||
# 2171| r2171_4(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2171_4
|
||||
#-----| m0_3(unknown) = ^CallSideEffect : ~m2170_6
|
||||
#-----| m0_4(unknown) = Chi : total:m2170_6, partial:m0_3
|
||||
#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2171_4
|
||||
#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5
|
||||
# 2171| r2171_5(bool) = Constant[1] :
|
||||
# 2171| m2171_6(bool) = Store[b#init] : &:r2171_1, r2171_5
|
||||
# 2171| m2171_7(unknown) = Chi : total:m0_6, partial:m2171_6
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 2172| Block 2
|
||||
# 2172| m2172_1(unknown) = Phi : from 0:~m2170_6, from 1:~m2171_7
|
||||
# 2172| v2172_2(void) = NoOp :
|
||||
# 2169| v2169_5(void) = ReturnVoid :
|
||||
# 2169| v2169_6(void) = AliasedUse : ~m2172_1
|
||||
# 2169| v2169_7(void) = ExitFunction :
|
||||
|
||||
# 2174| void static_variable_with_destructor_2()
|
||||
# 2174| void static_variable_with_destructor_1()
|
||||
# 2174| Block 0
|
||||
# 2174| v2174_1(void) = EnterFunction :
|
||||
# 2174| m2174_2(unknown) = AliasedDefinition :
|
||||
# 2174| m2174_3(unknown) = InitializeNonLocal :
|
||||
# 2174| m2174_4(unknown) = Chi : total:m2174_2, partial:m2174_3
|
||||
# 2175| r2175_1(glval<bool>) = VariableAddress[a#init] :
|
||||
# 2175| r2175_2(bool) = Load[a#init] : &:r2175_1, ~m2174_3
|
||||
# 2175| v2175_3(void) = ConditionalBranch : r2175_2
|
||||
# 2174| v2174_1(void) = EnterFunction :
|
||||
# 2174| m2174_2(unknown) = AliasedDefinition :
|
||||
# 2174| m2174_3(unknown) = InitializeNonLocal :
|
||||
# 2174| m2174_4(unknown) = Chi : total:m2174_2, partial:m2174_3
|
||||
# 2175| r2175_1(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2175| m2175_2(ClassWithDestructor) = Uninitialized[a] : &:r2175_1
|
||||
# 2175| r2175_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2175| v2175_4(void) = Call[ClassWithDestructor] : func:r2175_3, this:r2175_1
|
||||
# 2175| m2175_5(unknown) = ^CallSideEffect : ~m2174_4
|
||||
# 2175| m2175_6(unknown) = Chi : total:m2174_4, partial:m2175_5
|
||||
# 2175| m2175_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2175_1
|
||||
# 2175| m2175_8(ClassWithDestructor) = Chi : total:m2175_2, partial:m2175_7
|
||||
# 2176| r2176_1(glval<bool>) = VariableAddress[b#init] :
|
||||
# 2176| r2176_2(bool) = Load[b#init] : &:r2176_1, ~m2175_6
|
||||
# 2176| v2176_3(void) = ConditionalBranch : r2176_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2175| Block 1
|
||||
# 2175| r2175_4(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2176| Block 1
|
||||
# 2176| r2176_4(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2175_4
|
||||
#-----| m0_3(unknown) = ^CallSideEffect : ~m2174_4
|
||||
#-----| m0_4(unknown) = Chi : total:m2174_4, partial:m0_3
|
||||
#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2175_4
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2176_4
|
||||
#-----| m0_3(unknown) = ^CallSideEffect : ~m2175_6
|
||||
#-----| m0_4(unknown) = Chi : total:m2175_6, partial:m0_3
|
||||
#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2176_4
|
||||
#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5
|
||||
# 2175| r2175_5(bool) = Constant[1] :
|
||||
# 2175| m2175_6(bool) = Store[a#init] : &:r2175_1, r2175_5
|
||||
# 2175| m2175_7(unknown) = Chi : total:m0_6, partial:m2175_6
|
||||
# 2176| r2176_5(bool) = Constant[1] :
|
||||
# 2176| m2176_6(bool) = Store[b#init] : &:r2176_1, r2176_5
|
||||
# 2176| m2176_7(unknown) = Chi : total:m0_6, partial:m2176_6
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 2176| Block 2
|
||||
# 2176| m2176_1(unknown) = Phi : from 0:~m2174_4, from 1:~m2175_7
|
||||
# 2176| r2176_2(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
# 2176| m2176_3(ClassWithDestructor) = Uninitialized[b] : &:r2176_2
|
||||
# 2176| r2176_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2176| v2176_5(void) = Call[ClassWithDestructor] : func:r2176_4, this:r2176_2
|
||||
# 2176| m2176_6(unknown) = ^CallSideEffect : ~m2176_1
|
||||
# 2176| m2176_7(unknown) = Chi : total:m2176_1, partial:m2176_6
|
||||
# 2176| m2176_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2176_2
|
||||
# 2176| m2176_9(ClassWithDestructor) = Chi : total:m2176_3, partial:m2176_8
|
||||
# 2177| v2177_1(void) = NoOp :
|
||||
# 2174| v2174_5(void) = ReturnVoid :
|
||||
# 2174| v2174_6(void) = AliasedUse : ~m2176_7
|
||||
# 2174| v2174_7(void) = ExitFunction :
|
||||
# 2177| Block 2
|
||||
# 2177| m2177_1(unknown) = Phi : from 0:~m2175_6, from 1:~m2176_7
|
||||
# 2177| v2177_2(void) = NoOp :
|
||||
# 2174| v2174_5(void) = ReturnVoid :
|
||||
# 2174| v2174_6(void) = AliasedUse : ~m2177_1
|
||||
# 2174| v2174_7(void) = ExitFunction :
|
||||
|
||||
# 2179| void static_variable_with_destructor_3()
|
||||
# 2179| void static_variable_with_destructor_2()
|
||||
# 2179| Block 0
|
||||
# 2179| v2179_1(void) = EnterFunction :
|
||||
# 2179| m2179_2(unknown) = AliasedDefinition :
|
||||
# 2179| m2179_3(unknown) = InitializeNonLocal :
|
||||
# 2179| m2179_4(unknown) = Chi : total:m2179_2, partial:m2179_3
|
||||
# 2180| r2180_1(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2180| m2180_2(ClassWithDestructor) = Uninitialized[a] : &:r2180_1
|
||||
# 2180| r2180_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2180| v2180_4(void) = Call[ClassWithDestructor] : func:r2180_3, this:r2180_1
|
||||
# 2180| m2180_5(unknown) = ^CallSideEffect : ~m2179_4
|
||||
# 2180| m2180_6(unknown) = Chi : total:m2179_4, partial:m2180_5
|
||||
# 2180| m2180_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2180_1
|
||||
# 2180| m2180_8(ClassWithDestructor) = Chi : total:m2180_2, partial:m2180_7
|
||||
# 2181| r2181_1(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
# 2181| m2181_2(ClassWithDestructor) = Uninitialized[b] : &:r2181_1
|
||||
# 2181| r2181_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2181| v2181_4(void) = Call[ClassWithDestructor] : func:r2181_3, this:r2181_1
|
||||
# 2181| m2181_5(unknown) = ^CallSideEffect : ~m2180_6
|
||||
# 2181| m2181_6(unknown) = Chi : total:m2180_6, partial:m2181_5
|
||||
# 2181| m2181_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2181_1
|
||||
# 2181| m2181_8(ClassWithDestructor) = Chi : total:m2181_2, partial:m2181_7
|
||||
# 2182| r2182_1(glval<bool>) = VariableAddress[c#init] :
|
||||
# 2182| r2182_2(bool) = Load[c#init] : &:r2182_1, ~m2181_6
|
||||
# 2182| v2182_3(void) = ConditionalBranch : r2182_2
|
||||
# 2179| v2179_1(void) = EnterFunction :
|
||||
# 2179| m2179_2(unknown) = AliasedDefinition :
|
||||
# 2179| m2179_3(unknown) = InitializeNonLocal :
|
||||
# 2179| m2179_4(unknown) = Chi : total:m2179_2, partial:m2179_3
|
||||
# 2180| r2180_1(glval<bool>) = VariableAddress[a#init] :
|
||||
# 2180| r2180_2(bool) = Load[a#init] : &:r2180_1, ~m2179_3
|
||||
# 2180| v2180_3(void) = ConditionalBranch : r2180_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2182| Block 1
|
||||
# 2182| r2182_4(glval<ClassWithDestructor>) = VariableAddress[c] :
|
||||
# 2180| Block 1
|
||||
# 2180| r2180_4(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2182_4
|
||||
#-----| m0_3(unknown) = ^CallSideEffect : ~m2181_6
|
||||
#-----| m0_4(unknown) = Chi : total:m2181_6, partial:m0_3
|
||||
#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2182_4
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2180_4
|
||||
#-----| m0_3(unknown) = ^CallSideEffect : ~m2179_4
|
||||
#-----| m0_4(unknown) = Chi : total:m2179_4, partial:m0_3
|
||||
#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2180_4
|
||||
#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5
|
||||
# 2182| r2182_5(bool) = Constant[1] :
|
||||
# 2182| m2182_6(bool) = Store[c#init] : &:r2182_1, r2182_5
|
||||
# 2182| m2182_7(unknown) = Chi : total:m0_6, partial:m2182_6
|
||||
# 2180| r2180_5(bool) = Constant[1] :
|
||||
# 2180| m2180_6(bool) = Store[a#init] : &:r2180_1, r2180_5
|
||||
# 2180| m2180_7(unknown) = Chi : total:m0_6, partial:m2180_6
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 2183| Block 2
|
||||
# 2183| m2183_1(unknown) = Phi : from 0:~m2181_6, from 1:~m2182_7
|
||||
# 2183| v2183_2(void) = NoOp :
|
||||
# 2179| v2179_5(void) = ReturnVoid :
|
||||
# 2179| v2179_6(void) = AliasedUse : ~m2183_1
|
||||
# 2179| v2179_7(void) = ExitFunction :
|
||||
# 2181| Block 2
|
||||
# 2181| m2181_1(unknown) = Phi : from 0:~m2179_4, from 1:~m2180_7
|
||||
# 2181| r2181_2(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
# 2181| m2181_3(ClassWithDestructor) = Uninitialized[b] : &:r2181_2
|
||||
# 2181| r2181_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2181| v2181_5(void) = Call[ClassWithDestructor] : func:r2181_4, this:r2181_2
|
||||
# 2181| m2181_6(unknown) = ^CallSideEffect : ~m2181_1
|
||||
# 2181| m2181_7(unknown) = Chi : total:m2181_1, partial:m2181_6
|
||||
# 2181| m2181_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2181_2
|
||||
# 2181| m2181_9(ClassWithDestructor) = Chi : total:m2181_3, partial:m2181_8
|
||||
# 2182| v2182_1(void) = NoOp :
|
||||
# 2179| v2179_5(void) = ReturnVoid :
|
||||
# 2179| v2179_6(void) = AliasedUse : ~m2181_7
|
||||
# 2179| v2179_7(void) = ExitFunction :
|
||||
|
||||
# 2185| ClassWithDestructor global_class_with_destructor
|
||||
# 2185| Block 0
|
||||
# 2185| v2185_1(void) = EnterFunction :
|
||||
# 2185| m2185_2(unknown) = AliasedDefinition :
|
||||
# 2185| r2185_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] :
|
||||
# 2185| r2185_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2185| v2185_5(void) = Call[ClassWithDestructor] : func:r2185_4, this:r2185_3
|
||||
# 2185| m2185_6(unknown) = ^CallSideEffect : ~m2185_2
|
||||
# 2185| m2185_7(unknown) = Chi : total:m2185_2, partial:m2185_6
|
||||
# 2185| m2185_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2185_3
|
||||
# 2185| m2185_9(unknown) = Chi : total:m2185_7, partial:m2185_8
|
||||
# 2185| v2185_10(void) = ReturnVoid :
|
||||
# 2185| v2185_11(void) = AliasedUse : ~m2185_9
|
||||
# 2185| v2185_12(void) = ExitFunction :
|
||||
# 2184| void static_variable_with_destructor_3()
|
||||
# 2184| Block 0
|
||||
# 2184| v2184_1(void) = EnterFunction :
|
||||
# 2184| m2184_2(unknown) = AliasedDefinition :
|
||||
# 2184| m2184_3(unknown) = InitializeNonLocal :
|
||||
# 2184| m2184_4(unknown) = Chi : total:m2184_2, partial:m2184_3
|
||||
# 2185| r2185_1(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2185| m2185_2(ClassWithDestructor) = Uninitialized[a] : &:r2185_1
|
||||
# 2185| r2185_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2185| v2185_4(void) = Call[ClassWithDestructor] : func:r2185_3, this:r2185_1
|
||||
# 2185| m2185_5(unknown) = ^CallSideEffect : ~m2184_4
|
||||
# 2185| m2185_6(unknown) = Chi : total:m2184_4, partial:m2185_5
|
||||
# 2185| m2185_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2185_1
|
||||
# 2185| m2185_8(ClassWithDestructor) = Chi : total:m2185_2, partial:m2185_7
|
||||
# 2186| r2186_1(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
# 2186| m2186_2(ClassWithDestructor) = Uninitialized[b] : &:r2186_1
|
||||
# 2186| r2186_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2186| v2186_4(void) = Call[ClassWithDestructor] : func:r2186_3, this:r2186_1
|
||||
# 2186| m2186_5(unknown) = ^CallSideEffect : ~m2185_6
|
||||
# 2186| m2186_6(unknown) = Chi : total:m2185_6, partial:m2186_5
|
||||
# 2186| m2186_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1
|
||||
# 2186| m2186_8(ClassWithDestructor) = Chi : total:m2186_2, partial:m2186_7
|
||||
# 2187| r2187_1(glval<bool>) = VariableAddress[c#init] :
|
||||
# 2187| r2187_2(bool) = Load[c#init] : &:r2187_1, ~m2186_6
|
||||
# 2187| v2187_3(void) = ConditionalBranch : r2187_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2187| Block 1
|
||||
# 2187| r2187_4(glval<ClassWithDestructor>) = VariableAddress[c] :
|
||||
#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2187_4
|
||||
#-----| m0_3(unknown) = ^CallSideEffect : ~m2186_6
|
||||
#-----| m0_4(unknown) = Chi : total:m2186_6, partial:m0_3
|
||||
#-----| m0_5(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2187_4
|
||||
#-----| m0_6(unknown) = Chi : total:m0_4, partial:m0_5
|
||||
# 2187| r2187_5(bool) = Constant[1] :
|
||||
# 2187| m2187_6(bool) = Store[c#init] : &:r2187_1, r2187_5
|
||||
# 2187| m2187_7(unknown) = Chi : total:m0_6, partial:m2187_6
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 2188| Block 2
|
||||
# 2188| m2188_1(unknown) = Phi : from 0:~m2186_6, from 1:~m2187_7
|
||||
# 2188| v2188_2(void) = NoOp :
|
||||
# 2184| v2184_5(void) = ReturnVoid :
|
||||
# 2184| v2184_6(void) = AliasedUse : ~m2188_1
|
||||
# 2184| v2184_7(void) = ExitFunction :
|
||||
|
||||
# 2190| ClassWithDestructor global_class_with_destructor
|
||||
# 2190| Block 0
|
||||
# 2190| v2190_1(void) = EnterFunction :
|
||||
# 2190| m2190_2(unknown) = AliasedDefinition :
|
||||
# 2190| r2190_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] :
|
||||
# 2190| r2190_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2190| v2190_5(void) = Call[ClassWithDestructor] : func:r2190_4, this:r2190_3
|
||||
# 2190| m2190_6(unknown) = ^CallSideEffect : ~m2190_2
|
||||
# 2190| m2190_7(unknown) = Chi : total:m2190_2, partial:m2190_6
|
||||
# 2190| m2190_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2190_3
|
||||
# 2190| m2190_9(unknown) = Chi : total:m2190_7, partial:m2190_8
|
||||
# 2190| v2190_10(void) = ReturnVoid :
|
||||
# 2190| v2190_11(void) = AliasedUse : ~m2190_9
|
||||
# 2190| v2190_12(void) = ExitFunction :
|
||||
|
||||
perf-regression.cpp:
|
||||
# 6| void Big::Big()
|
||||
|
||||
@@ -2164,6 +2164,11 @@ void initialization_with_destructor(bool b, char c) {
|
||||
if (y == 1)
|
||||
return;
|
||||
}
|
||||
|
||||
for(vector<ClassWithDestructor> ys(x); ClassWithDestructor y : ys) {
|
||||
ClassWithDestructor z1;
|
||||
ClassWithDestructor z2;
|
||||
}
|
||||
}
|
||||
|
||||
void static_variable_with_destructor_1() {
|
||||
|
||||
@@ -785,6 +785,10 @@
|
||||
| file://:0:0:0:0 | Address | &:r0_25 |
|
||||
| file://:0:0:0:0 | Address | &:r0_27 |
|
||||
| file://:0:0:0:0 | Address | &:r0_29 |
|
||||
| file://:0:0:0:0 | Address | &:r0_32 |
|
||||
| file://:0:0:0:0 | Address | &:r0_35 |
|
||||
| file://:0:0:0:0 | Address | &:r0_37 |
|
||||
| file://:0:0:0:0 | Address | &:r0_39 |
|
||||
| file://:0:0:0:0 | Arg(0) | 0:r0_6 |
|
||||
| file://:0:0:0:0 | Arg(0) | 0:r0_8 |
|
||||
| file://:0:0:0:0 | Arg(0) | 0:r0_8 |
|
||||
@@ -828,9 +832,9 @@
|
||||
| file://:0:0:0:0 | ChiTotal | total:m1718_19 |
|
||||
| file://:0:0:0:0 | ChiTotal | total:m1836_8 |
|
||||
| file://:0:0:0:0 | ChiTotal | total:m1841_8 |
|
||||
| file://:0:0:0:0 | ChiTotal | total:m2170_6 |
|
||||
| file://:0:0:0:0 | ChiTotal | total:m2174_4 |
|
||||
| file://:0:0:0:0 | ChiTotal | total:m2181_6 |
|
||||
| file://:0:0:0:0 | ChiTotal | total:m2175_6 |
|
||||
| file://:0:0:0:0 | ChiTotal | total:m2179_4 |
|
||||
| file://:0:0:0:0 | ChiTotal | total:m2186_6 |
|
||||
| file://:0:0:0:0 | Left | r0_2 |
|
||||
| file://:0:0:0:0 | Left | r0_4 |
|
||||
| file://:0:0:0:0 | Left | r0_7 |
|
||||
@@ -909,6 +913,10 @@
|
||||
| file://:0:0:0:0 | SideEffect | m2163_9 |
|
||||
| file://:0:0:0:0 | SideEffect | m2163_30 |
|
||||
| file://:0:0:0:0 | SideEffect | m2163_30 |
|
||||
| file://:0:0:0:0 | SideEffect | m2168_13 |
|
||||
| file://:0:0:0:0 | SideEffect | m2168_13 |
|
||||
| file://:0:0:0:0 | SideEffect | m2168_34 |
|
||||
| file://:0:0:0:0 | SideEffect | m2168_34 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m0_4 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m0_4 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m0_4 |
|
||||
@@ -925,9 +933,9 @@
|
||||
| file://:0:0:0:0 | SideEffect | ~m1242_4 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m1449_6 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m1841_8 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m2170_6 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m2174_4 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m2181_6 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m2175_6 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m2179_4 |
|
||||
| file://:0:0:0:0 | SideEffect | ~m2186_6 |
|
||||
| file://:0:0:0:0 | StoreValue | r0_1 |
|
||||
| file://:0:0:0:0 | StoreValue | r0_1 |
|
||||
| file://:0:0:0:0 | StoreValue | r0_1 |
|
||||
@@ -998,6 +1006,8 @@
|
||||
| file://:0:0:0:0 | Unary | r0_21 |
|
||||
| file://:0:0:0:0 | Unary | r0_21 |
|
||||
| file://:0:0:0:0 | Unary | r0_24 |
|
||||
| file://:0:0:0:0 | Unary | r0_31 |
|
||||
| file://:0:0:0:0 | Unary | r0_34 |
|
||||
| ir.c:7:6:7:17 | ChiPartial | partial:m7_3 |
|
||||
| ir.c:7:6:7:17 | ChiTotal | total:m7_2 |
|
||||
| ir.c:7:6:7:17 | SideEffect | ~m10_6 |
|
||||
@@ -10254,7 +10264,7 @@
|
||||
| ir.cpp:2137:6:2137:35 | ChiTotal | total:m2137_2 |
|
||||
| ir.cpp:2137:6:2137:35 | Phi | from 14:~m2159_5 |
|
||||
| ir.cpp:2137:6:2137:35 | Phi | from 19:~m2163_54 |
|
||||
| ir.cpp:2137:6:2137:35 | Phi | from 20:~m2163_38 |
|
||||
| ir.cpp:2137:6:2137:35 | Phi | from 23:~m2168_42 |
|
||||
| ir.cpp:2137:6:2137:35 | SideEffect | ~m2137_9 |
|
||||
| ir.cpp:2137:42:2137:42 | Address | &:r2137_5 |
|
||||
| ir.cpp:2137:50:2137:50 | Address | &:r2137_7 |
|
||||
@@ -10607,93 +10617,185 @@
|
||||
| ir.cpp:2164:11:2164:11 | Load | m2163_56 |
|
||||
| ir.cpp:2164:11:2164:16 | Condition | r2164_4 |
|
||||
| ir.cpp:2164:16:2164:16 | Right | r2164_3 |
|
||||
| ir.cpp:2169:6:2169:38 | ChiPartial | partial:m2169_3 |
|
||||
| ir.cpp:2169:6:2169:38 | ChiTotal | total:m2169_2 |
|
||||
| ir.cpp:2169:6:2169:38 | SideEffect | ~m2172_1 |
|
||||
| ir.cpp:2170:25:2170:25 | Address | &:r2170_1 |
|
||||
| ir.cpp:2170:25:2170:25 | Address | &:r2170_1 |
|
||||
| ir.cpp:2170:25:2170:25 | Arg(this) | this:r2170_1 |
|
||||
| ir.cpp:2170:25:2170:25 | CallTarget | func:r2170_3 |
|
||||
| ir.cpp:2170:25:2170:25 | ChiPartial | partial:m2170_5 |
|
||||
| ir.cpp:2170:25:2170:25 | ChiPartial | partial:m2170_7 |
|
||||
| ir.cpp:2170:25:2170:25 | ChiTotal | total:m2169_4 |
|
||||
| ir.cpp:2170:25:2170:25 | ChiTotal | total:m2170_2 |
|
||||
| ir.cpp:2170:25:2170:25 | SideEffect | ~m2169_4 |
|
||||
| ir.cpp:2171:32:2171:32 | Address | &:r2171_1 |
|
||||
| ir.cpp:2171:32:2171:32 | Address | &:r2171_1 |
|
||||
| ir.cpp:2171:32:2171:32 | Address | &:r2171_4 |
|
||||
| ir.cpp:2171:32:2171:32 | Arg(this) | this:r2171_4 |
|
||||
| ir.cpp:2171:32:2171:32 | ChiPartial | partial:m2171_6 |
|
||||
| ir.cpp:2171:32:2171:32 | ChiTotal | total:m0_6 |
|
||||
| ir.cpp:2171:32:2171:32 | Condition | r2171_2 |
|
||||
| ir.cpp:2171:32:2171:32 | Load | ~m2170_6 |
|
||||
| ir.cpp:2171:32:2171:32 | StoreValue | r2171_5 |
|
||||
| ir.cpp:2172:1:2172:1 | Phi | from 0:~m2170_6 |
|
||||
| ir.cpp:2172:1:2172:1 | Phi | from 1:~m2171_7 |
|
||||
| ir.cpp:2168:5:2168:5 | Address | &:r2168_14 |
|
||||
| ir.cpp:2168:5:2168:5 | Address | &:r2168_18 |
|
||||
| ir.cpp:2168:5:2168:5 | Address | &:r2168_26 |
|
||||
| ir.cpp:2168:37:2168:38 | Address | &:r2168_1 |
|
||||
| ir.cpp:2168:37:2168:38 | Address | &:r2168_1 |
|
||||
| ir.cpp:2168:37:2168:38 | Arg(this) | this:r2168_1 |
|
||||
| ir.cpp:2168:40:2168:40 | Address | &:r2168_4 |
|
||||
| ir.cpp:2168:40:2168:40 | Address | &:r2168_4 |
|
||||
| ir.cpp:2168:40:2168:40 | Address | &:r2168_5 |
|
||||
| ir.cpp:2168:40:2168:40 | Arg(0) | 0:r2168_8 |
|
||||
| ir.cpp:2168:40:2168:40 | Load | m2153_8 |
|
||||
| ir.cpp:2168:40:2168:40 | Load | m2168_7 |
|
||||
| ir.cpp:2168:40:2168:40 | StoreValue | r2168_6 |
|
||||
| ir.cpp:2168:40:2168:41 | CallTarget | func:r2168_3 |
|
||||
| ir.cpp:2168:40:2168:41 | ChiPartial | partial:m2168_10 |
|
||||
| ir.cpp:2168:40:2168:41 | ChiPartial | partial:m2168_12 |
|
||||
| ir.cpp:2168:40:2168:41 | ChiTotal | total:m2163_38 |
|
||||
| ir.cpp:2168:40:2168:41 | ChiTotal | total:m2168_2 |
|
||||
| ir.cpp:2168:40:2168:41 | SideEffect | ~m2163_38 |
|
||||
| ir.cpp:2168:64:2168:64 | Address | &:r2168_44 |
|
||||
| ir.cpp:2168:68:2168:68 | Address | &:r2168_19 |
|
||||
| ir.cpp:2168:68:2168:68 | Address | &:r2168_27 |
|
||||
| ir.cpp:2168:68:2168:68 | Address | &:r2168_38 |
|
||||
| ir.cpp:2168:68:2168:68 | Address | &:r2168_47 |
|
||||
| ir.cpp:2168:68:2168:68 | Address | &:r2168_52 |
|
||||
| ir.cpp:2168:68:2168:68 | Address | &:r2168_52 |
|
||||
| ir.cpp:2168:68:2168:68 | Arg(0) | 0:r2168_39 |
|
||||
| ir.cpp:2168:68:2168:68 | Arg(this) | this:r0_32 |
|
||||
| ir.cpp:2168:68:2168:68 | Arg(this) | this:r0_35 |
|
||||
| ir.cpp:2168:68:2168:68 | Arg(this) | this:r0_37 |
|
||||
| ir.cpp:2168:68:2168:68 | Arg(this) | this:r0_39 |
|
||||
| ir.cpp:2168:68:2168:68 | Arg(this) | this:r2168_52 |
|
||||
| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_21 |
|
||||
| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_29 |
|
||||
| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_37 |
|
||||
| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_46 |
|
||||
| ir.cpp:2168:68:2168:68 | CallTarget | func:r2168_53 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_23 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_31 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_41 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_48 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_55 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiPartial | partial:m2168_58 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_11 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_24 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_34 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_35 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2168_42 |
|
||||
| ir.cpp:2168:68:2168:68 | ChiTotal | total:m2170_6 |
|
||||
| ir.cpp:2168:68:2168:68 | Condition | r2168_40 |
|
||||
| ir.cpp:2168:68:2168:68 | Load | m2168_17 |
|
||||
| ir.cpp:2168:68:2168:68 | Load | m2168_17 |
|
||||
| ir.cpp:2168:68:2168:68 | Load | m2168_33 |
|
||||
| ir.cpp:2168:68:2168:68 | Phi | from 20:m2168_25 |
|
||||
| ir.cpp:2168:68:2168:68 | Phi | from 20:~m2168_32 |
|
||||
| ir.cpp:2168:68:2168:68 | Phi | from 22:m2168_59 |
|
||||
| ir.cpp:2168:68:2168:68 | Phi | from 22:~m2168_56 |
|
||||
| ir.cpp:2168:68:2168:68 | SideEffect | m2168_34 |
|
||||
| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_11 |
|
||||
| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_24 |
|
||||
| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_35 |
|
||||
| ir.cpp:2168:68:2168:68 | SideEffect | ~m2168_42 |
|
||||
| ir.cpp:2168:68:2168:68 | SideEffect | ~m2170_6 |
|
||||
| ir.cpp:2168:68:2168:68 | StoreValue | r2168_22 |
|
||||
| ir.cpp:2168:68:2168:68 | StoreValue | r2168_30 |
|
||||
| ir.cpp:2168:68:2168:68 | Unary | r2168_20 |
|
||||
| ir.cpp:2168:68:2168:68 | Unary | r2168_28 |
|
||||
| ir.cpp:2168:68:2168:68 | Unary | r2168_36 |
|
||||
| ir.cpp:2168:68:2168:68 | Unary | r2168_45 |
|
||||
| ir.cpp:2168:68:2168:68 | Unary | r2168_54 |
|
||||
| ir.cpp:2168:68:2168:69 | StoreValue | r2168_16 |
|
||||
| ir.cpp:2168:68:2168:69 | Unary | r2168_15 |
|
||||
| ir.cpp:2168:68:2168:70 | Load | ~m2168_49 |
|
||||
| ir.cpp:2168:68:2168:70 | StoreValue | r2168_50 |
|
||||
| ir.cpp:2169:27:2169:28 | Address | &:r2169_1 |
|
||||
| ir.cpp:2169:27:2169:28 | Address | &:r2169_1 |
|
||||
| ir.cpp:2169:27:2169:28 | Arg(this) | this:r2169_1 |
|
||||
| ir.cpp:2169:27:2169:28 | CallTarget | func:r2169_3 |
|
||||
| ir.cpp:2169:27:2169:28 | ChiPartial | partial:m2169_5 |
|
||||
| ir.cpp:2169:27:2169:28 | ChiPartial | partial:m2169_7 |
|
||||
| ir.cpp:2169:27:2169:28 | ChiTotal | total:m2168_49 |
|
||||
| ir.cpp:2169:27:2169:28 | ChiTotal | total:m2169_2 |
|
||||
| ir.cpp:2169:27:2169:28 | SideEffect | ~m2168_49 |
|
||||
| ir.cpp:2170:27:2170:28 | Address | &:r2170_1 |
|
||||
| ir.cpp:2170:27:2170:28 | Address | &:r2170_1 |
|
||||
| ir.cpp:2170:27:2170:28 | Arg(this) | this:r2170_1 |
|
||||
| ir.cpp:2170:27:2170:28 | CallTarget | func:r2170_3 |
|
||||
| ir.cpp:2170:27:2170:28 | ChiPartial | partial:m2170_5 |
|
||||
| ir.cpp:2170:27:2170:28 | ChiPartial | partial:m2170_7 |
|
||||
| ir.cpp:2170:27:2170:28 | ChiTotal | total:m2169_6 |
|
||||
| ir.cpp:2170:27:2170:28 | ChiTotal | total:m2170_2 |
|
||||
| ir.cpp:2170:27:2170:28 | SideEffect | ~m2169_6 |
|
||||
| ir.cpp:2174:6:2174:38 | ChiPartial | partial:m2174_3 |
|
||||
| ir.cpp:2174:6:2174:38 | ChiTotal | total:m2174_2 |
|
||||
| ir.cpp:2174:6:2174:38 | SideEffect | ~m2176_7 |
|
||||
| ir.cpp:2175:32:2175:32 | Address | &:r2175_1 |
|
||||
| ir.cpp:2175:32:2175:32 | Address | &:r2175_1 |
|
||||
| ir.cpp:2175:32:2175:32 | Address | &:r2175_4 |
|
||||
| ir.cpp:2175:32:2175:32 | Arg(this) | this:r2175_4 |
|
||||
| ir.cpp:2175:32:2175:32 | ChiPartial | partial:m2175_6 |
|
||||
| ir.cpp:2175:32:2175:32 | ChiTotal | total:m0_6 |
|
||||
| ir.cpp:2175:32:2175:32 | Condition | r2175_2 |
|
||||
| ir.cpp:2175:32:2175:32 | Load | ~m2174_3 |
|
||||
| ir.cpp:2175:32:2175:32 | StoreValue | r2175_5 |
|
||||
| ir.cpp:2176:25:2176:25 | Address | &:r2176_2 |
|
||||
| ir.cpp:2176:25:2176:25 | Address | &:r2176_2 |
|
||||
| ir.cpp:2176:25:2176:25 | Arg(this) | this:r2176_2 |
|
||||
| ir.cpp:2176:25:2176:25 | CallTarget | func:r2176_4 |
|
||||
| ir.cpp:2176:25:2176:25 | ChiPartial | partial:m2176_6 |
|
||||
| ir.cpp:2176:25:2176:25 | ChiPartial | partial:m2176_8 |
|
||||
| ir.cpp:2176:25:2176:25 | ChiTotal | total:m2176_1 |
|
||||
| ir.cpp:2176:25:2176:25 | ChiTotal | total:m2176_3 |
|
||||
| ir.cpp:2176:25:2176:25 | Phi | from 0:~m2174_4 |
|
||||
| ir.cpp:2176:25:2176:25 | Phi | from 1:~m2175_7 |
|
||||
| ir.cpp:2176:25:2176:25 | SideEffect | ~m2176_1 |
|
||||
| ir.cpp:2174:6:2174:38 | SideEffect | ~m2177_1 |
|
||||
| ir.cpp:2175:25:2175:25 | Address | &:r2175_1 |
|
||||
| ir.cpp:2175:25:2175:25 | Address | &:r2175_1 |
|
||||
| ir.cpp:2175:25:2175:25 | Arg(this) | this:r2175_1 |
|
||||
| ir.cpp:2175:25:2175:25 | CallTarget | func:r2175_3 |
|
||||
| ir.cpp:2175:25:2175:25 | ChiPartial | partial:m2175_5 |
|
||||
| ir.cpp:2175:25:2175:25 | ChiPartial | partial:m2175_7 |
|
||||
| ir.cpp:2175:25:2175:25 | ChiTotal | total:m2174_4 |
|
||||
| ir.cpp:2175:25:2175:25 | ChiTotal | total:m2175_2 |
|
||||
| ir.cpp:2175:25:2175:25 | SideEffect | ~m2174_4 |
|
||||
| ir.cpp:2176:32:2176:32 | Address | &:r2176_1 |
|
||||
| ir.cpp:2176:32:2176:32 | Address | &:r2176_1 |
|
||||
| ir.cpp:2176:32:2176:32 | Address | &:r2176_4 |
|
||||
| ir.cpp:2176:32:2176:32 | Arg(this) | this:r2176_4 |
|
||||
| ir.cpp:2176:32:2176:32 | ChiPartial | partial:m2176_6 |
|
||||
| ir.cpp:2176:32:2176:32 | ChiTotal | total:m0_6 |
|
||||
| ir.cpp:2176:32:2176:32 | Condition | r2176_2 |
|
||||
| ir.cpp:2176:32:2176:32 | Load | ~m2175_6 |
|
||||
| ir.cpp:2176:32:2176:32 | StoreValue | r2176_5 |
|
||||
| ir.cpp:2177:1:2177:1 | Phi | from 0:~m2175_6 |
|
||||
| ir.cpp:2177:1:2177:1 | Phi | from 1:~m2176_7 |
|
||||
| ir.cpp:2179:6:2179:38 | ChiPartial | partial:m2179_3 |
|
||||
| ir.cpp:2179:6:2179:38 | ChiTotal | total:m2179_2 |
|
||||
| ir.cpp:2179:6:2179:38 | SideEffect | ~m2183_1 |
|
||||
| ir.cpp:2180:25:2180:25 | Address | &:r2180_1 |
|
||||
| ir.cpp:2180:25:2180:25 | Address | &:r2180_1 |
|
||||
| ir.cpp:2180:25:2180:25 | Arg(this) | this:r2180_1 |
|
||||
| ir.cpp:2180:25:2180:25 | CallTarget | func:r2180_3 |
|
||||
| ir.cpp:2180:25:2180:25 | ChiPartial | partial:m2180_5 |
|
||||
| ir.cpp:2180:25:2180:25 | ChiPartial | partial:m2180_7 |
|
||||
| ir.cpp:2180:25:2180:25 | ChiTotal | total:m2179_4 |
|
||||
| ir.cpp:2180:25:2180:25 | ChiTotal | total:m2180_2 |
|
||||
| ir.cpp:2180:25:2180:25 | SideEffect | ~m2179_4 |
|
||||
| ir.cpp:2181:25:2181:25 | Address | &:r2181_1 |
|
||||
| ir.cpp:2181:25:2181:25 | Address | &:r2181_1 |
|
||||
| ir.cpp:2181:25:2181:25 | Arg(this) | this:r2181_1 |
|
||||
| ir.cpp:2181:25:2181:25 | CallTarget | func:r2181_3 |
|
||||
| ir.cpp:2181:25:2181:25 | ChiPartial | partial:m2181_5 |
|
||||
| ir.cpp:2181:25:2181:25 | ChiPartial | partial:m2181_7 |
|
||||
| ir.cpp:2181:25:2181:25 | ChiTotal | total:m2180_6 |
|
||||
| ir.cpp:2181:25:2181:25 | ChiTotal | total:m2181_2 |
|
||||
| ir.cpp:2181:25:2181:25 | SideEffect | ~m2180_6 |
|
||||
| ir.cpp:2182:32:2182:32 | Address | &:r2182_1 |
|
||||
| ir.cpp:2182:32:2182:32 | Address | &:r2182_1 |
|
||||
| ir.cpp:2182:32:2182:32 | Address | &:r2182_4 |
|
||||
| ir.cpp:2182:32:2182:32 | Arg(this) | this:r2182_4 |
|
||||
| ir.cpp:2182:32:2182:32 | ChiPartial | partial:m2182_6 |
|
||||
| ir.cpp:2182:32:2182:32 | ChiTotal | total:m0_6 |
|
||||
| ir.cpp:2182:32:2182:32 | Condition | r2182_2 |
|
||||
| ir.cpp:2182:32:2182:32 | Load | ~m2181_6 |
|
||||
| ir.cpp:2182:32:2182:32 | StoreValue | r2182_5 |
|
||||
| ir.cpp:2183:1:2183:1 | Phi | from 0:~m2181_6 |
|
||||
| ir.cpp:2183:1:2183:1 | Phi | from 1:~m2182_7 |
|
||||
| ir.cpp:2185:28:2185:55 | Address | &:r2185_3 |
|
||||
| ir.cpp:2185:28:2185:55 | Arg(this) | this:r2185_3 |
|
||||
| ir.cpp:2185:28:2185:55 | CallTarget | func:r2185_4 |
|
||||
| ir.cpp:2185:28:2185:55 | ChiPartial | partial:m2185_6 |
|
||||
| ir.cpp:2185:28:2185:55 | ChiPartial | partial:m2185_8 |
|
||||
| ir.cpp:2185:28:2185:55 | ChiTotal | total:m2185_2 |
|
||||
| ir.cpp:2185:28:2185:55 | ChiTotal | total:m2185_7 |
|
||||
| ir.cpp:2185:28:2185:55 | SideEffect | ~m2185_2 |
|
||||
| ir.cpp:2185:28:2185:55 | SideEffect | ~m2185_9 |
|
||||
| ir.cpp:2179:6:2179:38 | SideEffect | ~m2181_7 |
|
||||
| ir.cpp:2180:32:2180:32 | Address | &:r2180_1 |
|
||||
| ir.cpp:2180:32:2180:32 | Address | &:r2180_1 |
|
||||
| ir.cpp:2180:32:2180:32 | Address | &:r2180_4 |
|
||||
| ir.cpp:2180:32:2180:32 | Arg(this) | this:r2180_4 |
|
||||
| ir.cpp:2180:32:2180:32 | ChiPartial | partial:m2180_6 |
|
||||
| ir.cpp:2180:32:2180:32 | ChiTotal | total:m0_6 |
|
||||
| ir.cpp:2180:32:2180:32 | Condition | r2180_2 |
|
||||
| ir.cpp:2180:32:2180:32 | Load | ~m2179_3 |
|
||||
| ir.cpp:2180:32:2180:32 | StoreValue | r2180_5 |
|
||||
| ir.cpp:2181:25:2181:25 | Address | &:r2181_2 |
|
||||
| ir.cpp:2181:25:2181:25 | Address | &:r2181_2 |
|
||||
| ir.cpp:2181:25:2181:25 | Arg(this) | this:r2181_2 |
|
||||
| ir.cpp:2181:25:2181:25 | CallTarget | func:r2181_4 |
|
||||
| ir.cpp:2181:25:2181:25 | ChiPartial | partial:m2181_6 |
|
||||
| ir.cpp:2181:25:2181:25 | ChiPartial | partial:m2181_8 |
|
||||
| ir.cpp:2181:25:2181:25 | ChiTotal | total:m2181_1 |
|
||||
| ir.cpp:2181:25:2181:25 | ChiTotal | total:m2181_3 |
|
||||
| ir.cpp:2181:25:2181:25 | Phi | from 0:~m2179_4 |
|
||||
| ir.cpp:2181:25:2181:25 | Phi | from 1:~m2180_7 |
|
||||
| ir.cpp:2181:25:2181:25 | SideEffect | ~m2181_1 |
|
||||
| ir.cpp:2184:6:2184:38 | ChiPartial | partial:m2184_3 |
|
||||
| ir.cpp:2184:6:2184:38 | ChiTotal | total:m2184_2 |
|
||||
| ir.cpp:2184:6:2184:38 | SideEffect | ~m2188_1 |
|
||||
| ir.cpp:2185:25:2185:25 | Address | &:r2185_1 |
|
||||
| ir.cpp:2185:25:2185:25 | Address | &:r2185_1 |
|
||||
| ir.cpp:2185:25:2185:25 | Arg(this) | this:r2185_1 |
|
||||
| ir.cpp:2185:25:2185:25 | CallTarget | func:r2185_3 |
|
||||
| ir.cpp:2185:25:2185:25 | ChiPartial | partial:m2185_5 |
|
||||
| ir.cpp:2185:25:2185:25 | ChiPartial | partial:m2185_7 |
|
||||
| ir.cpp:2185:25:2185:25 | ChiTotal | total:m2184_4 |
|
||||
| ir.cpp:2185:25:2185:25 | ChiTotal | total:m2185_2 |
|
||||
| ir.cpp:2185:25:2185:25 | SideEffect | ~m2184_4 |
|
||||
| ir.cpp:2186:25:2186:25 | Address | &:r2186_1 |
|
||||
| ir.cpp:2186:25:2186:25 | Address | &:r2186_1 |
|
||||
| ir.cpp:2186:25:2186:25 | Arg(this) | this:r2186_1 |
|
||||
| ir.cpp:2186:25:2186:25 | CallTarget | func:r2186_3 |
|
||||
| ir.cpp:2186:25:2186:25 | ChiPartial | partial:m2186_5 |
|
||||
| ir.cpp:2186:25:2186:25 | ChiPartial | partial:m2186_7 |
|
||||
| ir.cpp:2186:25:2186:25 | ChiTotal | total:m2185_6 |
|
||||
| ir.cpp:2186:25:2186:25 | ChiTotal | total:m2186_2 |
|
||||
| ir.cpp:2186:25:2186:25 | SideEffect | ~m2185_6 |
|
||||
| ir.cpp:2187:32:2187:32 | Address | &:r2187_1 |
|
||||
| ir.cpp:2187:32:2187:32 | Address | &:r2187_1 |
|
||||
| ir.cpp:2187:32:2187:32 | Address | &:r2187_4 |
|
||||
| ir.cpp:2187:32:2187:32 | Arg(this) | this:r2187_4 |
|
||||
| ir.cpp:2187:32:2187:32 | ChiPartial | partial:m2187_6 |
|
||||
| ir.cpp:2187:32:2187:32 | ChiTotal | total:m0_6 |
|
||||
| ir.cpp:2187:32:2187:32 | Condition | r2187_2 |
|
||||
| ir.cpp:2187:32:2187:32 | Load | ~m2186_6 |
|
||||
| ir.cpp:2187:32:2187:32 | StoreValue | r2187_5 |
|
||||
| ir.cpp:2188:1:2188:1 | Phi | from 0:~m2186_6 |
|
||||
| ir.cpp:2188:1:2188:1 | Phi | from 1:~m2187_7 |
|
||||
| ir.cpp:2190:28:2190:55 | Address | &:r2190_3 |
|
||||
| ir.cpp:2190:28:2190:55 | Arg(this) | this:r2190_3 |
|
||||
| ir.cpp:2190:28:2190:55 | CallTarget | func:r2190_4 |
|
||||
| ir.cpp:2190:28:2190:55 | ChiPartial | partial:m2190_6 |
|
||||
| ir.cpp:2190:28:2190:55 | ChiPartial | partial:m2190_8 |
|
||||
| ir.cpp:2190:28:2190:55 | ChiTotal | total:m2190_2 |
|
||||
| ir.cpp:2190:28:2190:55 | ChiTotal | total:m2190_7 |
|
||||
| ir.cpp:2190:28:2190:55 | SideEffect | ~m2190_2 |
|
||||
| ir.cpp:2190:28:2190:55 | SideEffect | ~m2190_9 |
|
||||
| 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 |
|
||||
|
||||
@@ -12162,127 +12162,209 @@ ir.cpp:
|
||||
# 2165| v2165_1(void) = NoOp :
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2167| Block 21
|
||||
# 2167| v2167_1(void) = NoOp :
|
||||
# 2168| Block 21
|
||||
# 2168| r2168_1(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] :
|
||||
# 2168| mu2168_2(vector<ClassWithDestructor>) = Uninitialized[ys] : &:r2168_1
|
||||
# 2168| r2168_3(glval<unknown>) = FunctionAddress[vector] :
|
||||
# 2168| r2168_4(glval<ClassWithDestructor>) = VariableAddress[#temp2168:40] :
|
||||
# 2168| r2168_5(glval<ClassWithDestructor>) = VariableAddress[x] :
|
||||
# 2168| r2168_6(ClassWithDestructor) = Load[x] : &:r2168_5, ~m?
|
||||
# 2168| mu2168_7(ClassWithDestructor) = Store[#temp2168:40] : &:r2168_4, r2168_6
|
||||
# 2168| r2168_8(ClassWithDestructor) = Load[#temp2168:40] : &:r2168_4, ~m?
|
||||
# 2168| v2168_9(void) = Call[vector] : func:r2168_3, this:r2168_1, 0:r2168_8
|
||||
# 2168| mu2168_10(unknown) = ^CallSideEffect : ~m?
|
||||
# 2168| mu2168_11(vector<ClassWithDestructor>) = ^IndirectMayWriteSideEffect[-1] : &:r2168_1
|
||||
# 2168| r2168_12(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] :
|
||||
# 2168| r2168_13(glval<vector<ClassWithDestructor>>) = VariableAddress[ys] :
|
||||
# 2168| r2168_14(vector<ClassWithDestructor> &) = CopyValue : r2168_13
|
||||
# 2168| mu2168_15(vector<ClassWithDestructor> &) = Store[(__range)] : &:r2168_12, r2168_14
|
||||
# 2168| r2168_16(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
# 2168| r2168_17(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] :
|
||||
# 2168| r2168_18(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2168_17, ~m?
|
||||
#-----| r0_31(glval<vector<ClassWithDestructor>>) = CopyValue : r2168_18
|
||||
#-----| r0_32(glval<vector<ClassWithDestructor>>) = Convert : r0_31
|
||||
# 2168| r2168_19(glval<unknown>) = FunctionAddress[begin] :
|
||||
# 2168| r2168_20(iterator) = Call[begin] : func:r2168_19, this:r0_32
|
||||
# 2168| mu2168_21(unknown) = ^CallSideEffect : ~m?
|
||||
#-----| v0_33(void) = ^IndirectReadSideEffect[-1] : &:r0_32, ~m?
|
||||
# 2168| mu2168_22(iterator) = Store[(__begin)] : &:r2168_16, r2168_20
|
||||
# 2168| r2168_23(glval<iterator>) = VariableAddress[(__end)] :
|
||||
# 2168| r2168_24(glval<vector<ClassWithDestructor> &>) = VariableAddress[(__range)] :
|
||||
# 2168| r2168_25(vector<ClassWithDestructor> &) = Load[(__range)] : &:r2168_24, ~m?
|
||||
#-----| r0_34(glval<vector<ClassWithDestructor>>) = CopyValue : r2168_25
|
||||
#-----| r0_35(glval<vector<ClassWithDestructor>>) = Convert : r0_34
|
||||
# 2168| r2168_26(glval<unknown>) = FunctionAddress[end] :
|
||||
# 2168| r2168_27(iterator) = Call[end] : func:r2168_26, this:r0_35
|
||||
# 2168| mu2168_28(unknown) = ^CallSideEffect : ~m?
|
||||
#-----| v0_36(void) = ^IndirectReadSideEffect[-1] : &:r0_35, ~m?
|
||||
# 2168| mu2168_29(iterator) = Store[(__end)] : &:r2168_23, r2168_27
|
||||
#-----| Goto -> Block 22
|
||||
|
||||
# 2168| Block 22
|
||||
# 2168| r2168_30(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
#-----| r0_37(glval<iterator>) = Convert : r2168_30
|
||||
# 2168| r2168_31(glval<unknown>) = FunctionAddress[operator!=] :
|
||||
# 2168| r2168_32(glval<iterator>) = VariableAddress[(__end)] :
|
||||
# 2168| r2168_33(iterator) = Load[(__end)] : &:r2168_32, ~m?
|
||||
# 2168| r2168_34(bool) = Call[operator!=] : func:r2168_31, this:r0_37, 0:r2168_33
|
||||
# 2168| mu2168_35(unknown) = ^CallSideEffect : ~m?
|
||||
#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, ~m?
|
||||
# 2168| v2168_36(void) = ConditionalBranch : r2168_34
|
||||
#-----| False -> Block 24
|
||||
#-----| True -> Block 23
|
||||
|
||||
# 2168| Block 23
|
||||
# 2168| r2168_37(glval<ClassWithDestructor>) = VariableAddress[y] :
|
||||
# 2168| r2168_38(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
#-----| r0_39(glval<iterator>) = Convert : r2168_38
|
||||
# 2168| r2168_39(glval<unknown>) = FunctionAddress[operator*] :
|
||||
# 2168| r2168_40(ClassWithDestructor &) = Call[operator*] : func:r2168_39, this:r0_39
|
||||
# 2168| mu2168_41(unknown) = ^CallSideEffect : ~m?
|
||||
#-----| v0_40(void) = ^IndirectReadSideEffect[-1] : &:r0_39, ~m?
|
||||
# 2168| r2168_42(ClassWithDestructor) = Load[?] : &:r2168_40, ~m?
|
||||
# 2168| mu2168_43(ClassWithDestructor) = Store[y] : &:r2168_37, r2168_42
|
||||
# 2169| r2169_1(glval<ClassWithDestructor>) = VariableAddress[z1] :
|
||||
# 2169| mu2169_2(ClassWithDestructor) = Uninitialized[z1] : &:r2169_1
|
||||
# 2169| r2169_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2169| v2169_4(void) = Call[ClassWithDestructor] : func:r2169_3, this:r2169_1
|
||||
# 2169| mu2169_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2169| mu2169_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2169_1
|
||||
# 2170| r2170_1(glval<ClassWithDestructor>) = VariableAddress[z2] :
|
||||
# 2170| mu2170_2(ClassWithDestructor) = Uninitialized[z2] : &:r2170_1
|
||||
# 2170| r2170_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2170| v2170_4(void) = Call[ClassWithDestructor] : func:r2170_3, this:r2170_1
|
||||
# 2170| mu2170_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2170| mu2170_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1
|
||||
# 2168| r2168_44(glval<iterator>) = VariableAddress[(__begin)] :
|
||||
# 2168| r2168_45(glval<unknown>) = FunctionAddress[operator++] :
|
||||
# 2168| r2168_46(iterator &) = Call[operator++] : func:r2168_45, this:r2168_44
|
||||
# 2168| mu2168_47(unknown) = ^CallSideEffect : ~m?
|
||||
# 2168| v2168_48(void) = ^IndirectReadSideEffect[-1] : &:r2168_44, ~m?
|
||||
# 2168| mu2168_49(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2168_44
|
||||
# 2168| r2168_50(glval<iterator>) = CopyValue : r2168_46
|
||||
#-----| Goto (back edge) -> Block 22
|
||||
|
||||
# 2172| Block 24
|
||||
# 2172| v2172_1(void) = NoOp :
|
||||
#-----| Goto -> Block 1
|
||||
|
||||
# 2169| void static_variable_with_destructor_1()
|
||||
# 2169| Block 0
|
||||
# 2169| v2169_1(void) = EnterFunction :
|
||||
# 2169| mu2169_2(unknown) = AliasedDefinition :
|
||||
# 2169| mu2169_3(unknown) = InitializeNonLocal :
|
||||
# 2170| r2170_1(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2170| mu2170_2(ClassWithDestructor) = Uninitialized[a] : &:r2170_1
|
||||
# 2170| r2170_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2170| v2170_4(void) = Call[ClassWithDestructor] : func:r2170_3, this:r2170_1
|
||||
# 2170| mu2170_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2170| mu2170_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1
|
||||
# 2171| r2171_1(glval<bool>) = VariableAddress[b#init] :
|
||||
# 2171| r2171_2(bool) = Load[b#init] : &:r2171_1, ~m?
|
||||
# 2171| v2171_3(void) = ConditionalBranch : r2171_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2171| Block 1
|
||||
# 2171| r2171_4(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2171_4
|
||||
#-----| mu0_3(unknown) = ^CallSideEffect : ~m?
|
||||
#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2171_4
|
||||
# 2171| r2171_5(bool) = Constant[1] :
|
||||
# 2171| mu2171_6(bool) = Store[b#init] : &:r2171_1, r2171_5
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 2172| Block 2
|
||||
# 2172| v2172_1(void) = NoOp :
|
||||
# 2169| v2169_4(void) = ReturnVoid :
|
||||
# 2169| v2169_5(void) = AliasedUse : ~m?
|
||||
# 2169| v2169_6(void) = ExitFunction :
|
||||
|
||||
# 2174| void static_variable_with_destructor_2()
|
||||
# 2174| void static_variable_with_destructor_1()
|
||||
# 2174| Block 0
|
||||
# 2174| v2174_1(void) = EnterFunction :
|
||||
# 2174| mu2174_2(unknown) = AliasedDefinition :
|
||||
# 2174| mu2174_3(unknown) = InitializeNonLocal :
|
||||
# 2175| r2175_1(glval<bool>) = VariableAddress[a#init] :
|
||||
# 2175| r2175_2(bool) = Load[a#init] : &:r2175_1, ~m?
|
||||
# 2175| v2175_3(void) = ConditionalBranch : r2175_2
|
||||
# 2174| v2174_1(void) = EnterFunction :
|
||||
# 2174| mu2174_2(unknown) = AliasedDefinition :
|
||||
# 2174| mu2174_3(unknown) = InitializeNonLocal :
|
||||
# 2175| r2175_1(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2175| mu2175_2(ClassWithDestructor) = Uninitialized[a] : &:r2175_1
|
||||
# 2175| r2175_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2175| v2175_4(void) = Call[ClassWithDestructor] : func:r2175_3, this:r2175_1
|
||||
# 2175| mu2175_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2175| mu2175_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2175_1
|
||||
# 2176| r2176_1(glval<bool>) = VariableAddress[b#init] :
|
||||
# 2176| r2176_2(bool) = Load[b#init] : &:r2176_1, ~m?
|
||||
# 2176| v2176_3(void) = ConditionalBranch : r2176_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2175| Block 1
|
||||
# 2175| r2175_4(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2176| Block 1
|
||||
# 2176| r2176_4(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2175_4
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2176_4
|
||||
#-----| mu0_3(unknown) = ^CallSideEffect : ~m?
|
||||
#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2175_4
|
||||
# 2175| r2175_5(bool) = Constant[1] :
|
||||
# 2175| mu2175_6(bool) = Store[a#init] : &:r2175_1, r2175_5
|
||||
#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2176_4
|
||||
# 2176| r2176_5(bool) = Constant[1] :
|
||||
# 2176| mu2176_6(bool) = Store[b#init] : &:r2176_1, r2176_5
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 2176| Block 2
|
||||
# 2176| r2176_1(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
# 2176| mu2176_2(ClassWithDestructor) = Uninitialized[b] : &:r2176_1
|
||||
# 2176| r2176_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2176| v2176_4(void) = Call[ClassWithDestructor] : func:r2176_3, this:r2176_1
|
||||
# 2176| mu2176_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2176| mu2176_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2176_1
|
||||
# 2177| v2177_1(void) = NoOp :
|
||||
# 2174| v2174_4(void) = ReturnVoid :
|
||||
# 2174| v2174_5(void) = AliasedUse : ~m?
|
||||
# 2174| v2174_6(void) = ExitFunction :
|
||||
# 2177| Block 2
|
||||
# 2177| v2177_1(void) = NoOp :
|
||||
# 2174| v2174_4(void) = ReturnVoid :
|
||||
# 2174| v2174_5(void) = AliasedUse : ~m?
|
||||
# 2174| v2174_6(void) = ExitFunction :
|
||||
|
||||
# 2179| void static_variable_with_destructor_3()
|
||||
# 2179| void static_variable_with_destructor_2()
|
||||
# 2179| Block 0
|
||||
# 2179| v2179_1(void) = EnterFunction :
|
||||
# 2179| mu2179_2(unknown) = AliasedDefinition :
|
||||
# 2179| mu2179_3(unknown) = InitializeNonLocal :
|
||||
# 2180| r2180_1(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2180| mu2180_2(ClassWithDestructor) = Uninitialized[a] : &:r2180_1
|
||||
# 2180| r2180_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2180| v2180_4(void) = Call[ClassWithDestructor] : func:r2180_3, this:r2180_1
|
||||
# 2180| mu2180_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2180| mu2180_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2180_1
|
||||
# 2179| v2179_1(void) = EnterFunction :
|
||||
# 2179| mu2179_2(unknown) = AliasedDefinition :
|
||||
# 2179| mu2179_3(unknown) = InitializeNonLocal :
|
||||
# 2180| r2180_1(glval<bool>) = VariableAddress[a#init] :
|
||||
# 2180| r2180_2(bool) = Load[a#init] : &:r2180_1, ~m?
|
||||
# 2180| v2180_3(void) = ConditionalBranch : r2180_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2180| Block 1
|
||||
# 2180| r2180_4(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2180_4
|
||||
#-----| mu0_3(unknown) = ^CallSideEffect : ~m?
|
||||
#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2180_4
|
||||
# 2180| r2180_5(bool) = Constant[1] :
|
||||
# 2180| mu2180_6(bool) = Store[a#init] : &:r2180_1, r2180_5
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 2181| Block 2
|
||||
# 2181| r2181_1(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
# 2181| mu2181_2(ClassWithDestructor) = Uninitialized[b] : &:r2181_1
|
||||
# 2181| r2181_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2181| v2181_4(void) = Call[ClassWithDestructor] : func:r2181_3, this:r2181_1
|
||||
# 2181| mu2181_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2181| mu2181_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2181_1
|
||||
# 2182| r2182_1(glval<bool>) = VariableAddress[c#init] :
|
||||
# 2182| r2182_2(bool) = Load[c#init] : &:r2182_1, ~m?
|
||||
# 2182| v2182_3(void) = ConditionalBranch : r2182_2
|
||||
# 2182| v2182_1(void) = NoOp :
|
||||
# 2179| v2179_4(void) = ReturnVoid :
|
||||
# 2179| v2179_5(void) = AliasedUse : ~m?
|
||||
# 2179| v2179_6(void) = ExitFunction :
|
||||
|
||||
# 2184| void static_variable_with_destructor_3()
|
||||
# 2184| Block 0
|
||||
# 2184| v2184_1(void) = EnterFunction :
|
||||
# 2184| mu2184_2(unknown) = AliasedDefinition :
|
||||
# 2184| mu2184_3(unknown) = InitializeNonLocal :
|
||||
# 2185| r2185_1(glval<ClassWithDestructor>) = VariableAddress[a] :
|
||||
# 2185| mu2185_2(ClassWithDestructor) = Uninitialized[a] : &:r2185_1
|
||||
# 2185| r2185_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2185| v2185_4(void) = Call[ClassWithDestructor] : func:r2185_3, this:r2185_1
|
||||
# 2185| mu2185_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2185| mu2185_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2185_1
|
||||
# 2186| r2186_1(glval<ClassWithDestructor>) = VariableAddress[b] :
|
||||
# 2186| mu2186_2(ClassWithDestructor) = Uninitialized[b] : &:r2186_1
|
||||
# 2186| r2186_3(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2186| v2186_4(void) = Call[ClassWithDestructor] : func:r2186_3, this:r2186_1
|
||||
# 2186| mu2186_5(unknown) = ^CallSideEffect : ~m?
|
||||
# 2186| mu2186_6(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1
|
||||
# 2187| r2187_1(glval<bool>) = VariableAddress[c#init] :
|
||||
# 2187| r2187_2(bool) = Load[c#init] : &:r2187_1, ~m?
|
||||
# 2187| v2187_3(void) = ConditionalBranch : r2187_2
|
||||
#-----| False -> Block 1
|
||||
#-----| True -> Block 2
|
||||
|
||||
# 2182| Block 1
|
||||
# 2182| r2182_4(glval<ClassWithDestructor>) = VariableAddress[c] :
|
||||
# 2187| Block 1
|
||||
# 2187| r2187_4(glval<ClassWithDestructor>) = VariableAddress[c] :
|
||||
#-----| r0_1(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2182_4
|
||||
#-----| v0_2(void) = Call[ClassWithDestructor] : func:r0_1, this:r2187_4
|
||||
#-----| mu0_3(unknown) = ^CallSideEffect : ~m?
|
||||
#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2182_4
|
||||
# 2182| r2182_5(bool) = Constant[1] :
|
||||
# 2182| mu2182_6(bool) = Store[c#init] : &:r2182_1, r2182_5
|
||||
#-----| mu0_4(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2187_4
|
||||
# 2187| r2187_5(bool) = Constant[1] :
|
||||
# 2187| mu2187_6(bool) = Store[c#init] : &:r2187_1, r2187_5
|
||||
#-----| Goto -> Block 2
|
||||
|
||||
# 2183| Block 2
|
||||
# 2183| v2183_1(void) = NoOp :
|
||||
# 2179| v2179_4(void) = ReturnVoid :
|
||||
# 2179| v2179_5(void) = AliasedUse : ~m?
|
||||
# 2179| v2179_6(void) = ExitFunction :
|
||||
# 2188| Block 2
|
||||
# 2188| v2188_1(void) = NoOp :
|
||||
# 2184| v2184_4(void) = ReturnVoid :
|
||||
# 2184| v2184_5(void) = AliasedUse : ~m?
|
||||
# 2184| v2184_6(void) = ExitFunction :
|
||||
|
||||
# 2185| ClassWithDestructor global_class_with_destructor
|
||||
# 2185| Block 0
|
||||
# 2185| v2185_1(void) = EnterFunction :
|
||||
# 2185| mu2185_2(unknown) = AliasedDefinition :
|
||||
# 2185| r2185_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] :
|
||||
# 2185| r2185_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2185| v2185_5(void) = Call[ClassWithDestructor] : func:r2185_4, this:r2185_3
|
||||
# 2185| mu2185_6(unknown) = ^CallSideEffect : ~m?
|
||||
# 2185| mu2185_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2185_3
|
||||
# 2185| v2185_8(void) = ReturnVoid :
|
||||
# 2185| v2185_9(void) = AliasedUse : ~m?
|
||||
# 2185| v2185_10(void) = ExitFunction :
|
||||
# 2190| ClassWithDestructor global_class_with_destructor
|
||||
# 2190| Block 0
|
||||
# 2190| v2190_1(void) = EnterFunction :
|
||||
# 2190| mu2190_2(unknown) = AliasedDefinition :
|
||||
# 2190| r2190_3(glval<ClassWithDestructor>) = VariableAddress[global_class_with_destructor] :
|
||||
# 2190| r2190_4(glval<unknown>) = FunctionAddress[ClassWithDestructor] :
|
||||
# 2190| v2190_5(void) = Call[ClassWithDestructor] : func:r2190_4, this:r2190_3
|
||||
# 2190| mu2190_6(unknown) = ^CallSideEffect : ~m?
|
||||
# 2190| mu2190_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2190_3
|
||||
# 2190| v2190_8(void) = ReturnVoid :
|
||||
# 2190| v2190_9(void) = AliasedUse : ~m?
|
||||
# 2190| v2190_10(void) = ExitFunction :
|
||||
|
||||
perf-regression.cpp:
|
||||
# 6| void Big::Big()
|
||||
|
||||
Reference in New Issue
Block a user