C++: Add operand labels for more operand tags

I kept forgetting which operand on a Chi instruction was which, so I added dump labels. I added labels for the function target of a `Call`, for positional arguments, and for address operands as well.
This commit is contained in:
Dave Bartolomeo
2019-02-22 16:36:07 -08:00
parent a7f3160684
commit eed0894029
5 changed files with 1387 additions and 1367 deletions

View File

@@ -78,6 +78,10 @@ class AddressOperandTag extends RegisterOperandTag, TAddressOperand {
override final int getSortOrder() {
result = 0
}
override final string getLabel() {
result = "&:"
}
}
AddressOperandTag addressOperand() {
@@ -247,6 +251,10 @@ class CallTargetOperandTag extends RegisterOperandTag, TCallTargetOperand {
override final int getSortOrder() {
result = 10
}
override final string getLabel() {
result = "func:"
}
}
CallTargetOperandTag callTargetOperand() {
@@ -306,6 +314,10 @@ class PositionalArgumentOperandTag extends ArgumentOperandTag,
result = 12 + argIndex
}
override final string getLabel() {
result = argIndex.toString() + ":"
}
final int getArgIndex() {
result = argIndex
}
@@ -323,6 +335,10 @@ class ChiTotalOperandTag extends MemoryOperandTag, TChiTotalOperand {
override final int getSortOrder() {
result = 13
}
override final string getLabel() {
result = "total:"
}
}
ChiTotalOperandTag chiTotalOperand() {
@@ -337,6 +353,10 @@ class ChiPartialOperandTag extends MemoryOperandTag, TChiPartialOperand {
override final int getSortOrder() {
result = 14
}
override final string getLabel() {
result = "partial:"
}
}
ChiPartialOperandTag chiPartialOperand() {

File diff suppressed because it is too large Load Diff

View File

@@ -5,84 +5,84 @@ ssa.cpp:
# 13| m0_1(unknown) = AliasedDefinition :
# 13| mu0_2(unknown) = UnmodeledDefinition :
# 13| r0_3(glval<Point *>) = VariableAddress[p] :
# 13| m0_4(Point *) = InitializeParameter[p] : r0_3
# 13| m0_4(Point *) = InitializeParameter[p] : &:r0_3
# 13| r0_5(glval<bool>) = VariableAddress[which1] :
# 13| m0_6(bool) = InitializeParameter[which1] : r0_5
# 13| m0_6(bool) = InitializeParameter[which1] : &:r0_5
# 13| r0_7(glval<bool>) = VariableAddress[which2] :
# 13| m0_8(bool) = InitializeParameter[which2] : r0_7
# 13| m0_8(bool) = InitializeParameter[which2] : &:r0_7
# 14| r0_9(glval<bool>) = VariableAddress[which1] :
# 14| r0_10(bool) = Load : r0_9, m0_6
# 14| r0_10(bool) = Load : &:r0_9, m0_6
# 14| v0_11(void) = ConditionalBranch : r0_10
#-----| False -> Block 2
#-----| True -> Block 1
# 15| Block 1
# 15| r1_0(glval<Point *>) = VariableAddress[p] :
# 15| r1_1(Point *) = Load : r1_0, m0_4
# 15| r1_1(Point *) = Load : &:r1_0, m0_4
# 15| r1_2(glval<int>) = FieldAddress[x] : r1_1
# 15| r1_3(int) = Load : r1_2, m0_1
# 15| r1_3(int) = Load : &:r1_2, m0_1
# 15| r1_4(int) = Constant[1] :
# 15| r1_5(int) = Add : r1_3, r1_4
# 15| m1_6(int) = Store : r1_2, r1_5
# 15| m1_7(unknown) = Chi : m0_1, m1_6
# 15| m1_6(int) = Store : &:r1_2, r1_5
# 15| m1_7(unknown) = Chi : total:m0_1, partial:m1_6
#-----| Goto -> Block 3
# 18| Block 2
# 18| r2_0(glval<Point *>) = VariableAddress[p] :
# 18| r2_1(Point *) = Load : r2_0, m0_4
# 18| r2_1(Point *) = Load : &:r2_0, m0_4
# 18| r2_2(glval<int>) = FieldAddress[y] : r2_1
# 18| r2_3(int) = Load : r2_2, m0_1
# 18| r2_3(int) = Load : &:r2_2, m0_1
# 18| r2_4(int) = Constant[1] :
# 18| r2_5(int) = Add : r2_3, r2_4
# 18| m2_6(int) = Store : r2_2, r2_5
# 18| m2_7(unknown) = Chi : m0_1, m2_6
# 18| m2_6(int) = Store : &:r2_2, r2_5
# 18| m2_7(unknown) = Chi : total:m0_1, partial:m2_6
#-----| Goto -> Block 3
# 21| Block 3
# 21| m3_0(unknown) = Phi : from 1:m1_7, from 2:m2_7
# 21| r3_1(glval<bool>) = VariableAddress[which2] :
# 21| r3_2(bool) = Load : r3_1, m0_8
# 21| r3_2(bool) = Load : &:r3_1, m0_8
# 21| v3_3(void) = ConditionalBranch : r3_2
#-----| False -> Block 5
#-----| True -> Block 4
# 22| Block 4
# 22| r4_0(glval<Point *>) = VariableAddress[p] :
# 22| r4_1(Point *) = Load : r4_0, m0_4
# 22| r4_1(Point *) = Load : &:r4_0, m0_4
# 22| r4_2(glval<int>) = FieldAddress[x] : r4_1
# 22| r4_3(int) = Load : r4_2, m3_0
# 22| r4_3(int) = Load : &:r4_2, m3_0
# 22| r4_4(int) = Constant[1] :
# 22| r4_5(int) = Add : r4_3, r4_4
# 22| m4_6(int) = Store : r4_2, r4_5
# 22| m4_7(unknown) = Chi : m3_0, m4_6
# 22| m4_6(int) = Store : &:r4_2, r4_5
# 22| m4_7(unknown) = Chi : total:m3_0, partial:m4_6
#-----| Goto -> Block 6
# 25| Block 5
# 25| r5_0(glval<Point *>) = VariableAddress[p] :
# 25| r5_1(Point *) = Load : r5_0, m0_4
# 25| r5_1(Point *) = Load : &:r5_0, m0_4
# 25| r5_2(glval<int>) = FieldAddress[y] : r5_1
# 25| r5_3(int) = Load : r5_2, m3_0
# 25| r5_3(int) = Load : &:r5_2, m3_0
# 25| r5_4(int) = Constant[1] :
# 25| r5_5(int) = Add : r5_3, r5_4
# 25| m5_6(int) = Store : r5_2, r5_5
# 25| m5_7(unknown) = Chi : m3_0, m5_6
# 25| m5_6(int) = Store : &:r5_2, r5_5
# 25| m5_7(unknown) = Chi : total:m3_0, partial:m5_6
#-----| Goto -> Block 6
# 28| Block 6
# 28| m6_0(unknown) = Phi : from 4:m4_7, from 5:m5_7
# 28| r6_1(glval<int>) = VariableAddress[#return] :
# 28| r6_2(glval<Point *>) = VariableAddress[p] :
# 28| r6_3(Point *) = Load : r6_2, m0_4
# 28| r6_3(Point *) = Load : &:r6_2, m0_4
# 28| r6_4(glval<int>) = FieldAddress[x] : r6_3
# 28| r6_5(int) = Load : r6_4, m6_0
# 28| r6_5(int) = Load : &:r6_4, m6_0
# 28| r6_6(glval<Point *>) = VariableAddress[p] :
# 28| r6_7(Point *) = Load : r6_6, m0_4
# 28| r6_7(Point *) = Load : &:r6_6, m0_4
# 28| r6_8(glval<int>) = FieldAddress[y] : r6_7
# 28| r6_9(int) = Load : r6_8, m6_0
# 28| r6_9(int) = Load : &:r6_8, m6_0
# 28| r6_10(int) = Add : r6_5, r6_9
# 28| m6_11(int) = Store : r6_1, r6_10
# 28| m6_11(int) = Store : &:r6_1, r6_10
# 13| r6_12(glval<int>) = VariableAddress[#return] :
# 13| v6_13(void) = ReturnValue : r6_12, m6_11
# 13| v6_13(void) = ReturnValue : &:r6_12, m6_11
# 13| v6_14(void) = UnmodeledUse : mu*
# 13| v6_15(void) = ExitFunction :
@@ -95,9 +95,9 @@ ssa.cpp:
# 34| v0_4(void) = NoOp :
# 35| r0_5(glval<int>) = VariableAddress[#return] :
# 35| r0_6(int) = Constant[0] :
# 35| m0_7(int) = Store : r0_5, r0_6
# 35| m0_7(int) = Store : &:r0_5, r0_6
# 31| r0_8(glval<int>) = VariableAddress[#return] :
# 31| v0_9(void) = ReturnValue : r0_8, m0_7
# 31| v0_9(void) = ReturnValue : &:r0_8, m0_7
# 31| v0_10(void) = UnmodeledUse : mu*
# 31| v0_11(void) = ExitFunction :
@@ -107,15 +107,15 @@ ssa.cpp:
# 38| m0_1(unknown) = AliasedDefinition :
# 38| mu0_2(unknown) = UnmodeledDefinition :
# 38| r0_3(glval<bool>) = VariableAddress[b] :
# 38| m0_4(bool) = InitializeParameter[b] : r0_3
# 38| m0_4(bool) = InitializeParameter[b] : &:r0_3
# 39| r0_5(glval<int>) = VariableAddress[x] :
# 39| r0_6(int) = Constant[5] :
# 39| m0_7(int) = Store : r0_5, r0_6
# 39| m0_7(int) = Store : &:r0_5, r0_6
# 40| r0_8(glval<int>) = VariableAddress[y] :
# 40| r0_9(int) = Constant[10] :
# 40| m0_10(int) = Store : r0_8, r0_9
# 40| m0_10(int) = Store : &:r0_8, r0_9
# 41| r0_11(glval<bool>) = VariableAddress[b] :
# 41| r0_12(bool) = Load : r0_11, m0_4
# 41| r0_12(bool) = Load : &:r0_11, m0_4
# 41| v0_13(void) = ConditionalBranch : r0_12
#-----| False -> Block 4
#-----| True -> Block 2
@@ -123,15 +123,15 @@ ssa.cpp:
# 38| Block 1
# 38| m1_0(int) = Phi : from 3:m3_2, from 5:m5_2
# 38| r1_1(glval<int>) = VariableAddress[#return] :
# 38| v1_2(void) = ReturnValue : r1_1, m1_0
# 38| v1_2(void) = ReturnValue : &:r1_1, m1_0
# 38| v1_3(void) = UnmodeledUse : mu*
# 38| v1_4(void) = ExitFunction :
# 42| Block 2
# 42| r2_0(glval<int>) = VariableAddress[x] :
# 42| r2_1(int) = Load : r2_0, m0_7
# 42| r2_1(int) = Load : &:r2_0, m0_7
# 42| r2_2(glval<int>) = VariableAddress[y] :
# 42| r2_3(int) = Load : r2_2, m0_10
# 42| r2_3(int) = Load : &:r2_2, m0_10
# 42| r2_4(bool) = CompareEQ : r2_1, r2_3
# 42| v2_5(void) = ConditionalBranch : r2_4
#-----| False -> Block 3
@@ -140,14 +140,14 @@ ssa.cpp:
# 46| Block 3
# 46| r3_0(glval<int>) = VariableAddress[#return] :
# 46| r3_1(int) = Constant[0] :
# 46| m3_2(int) = Store : r3_0, r3_1
# 46| m3_2(int) = Store : &:r3_0, r3_1
#-----| Goto -> Block 1
# 50| Block 4
# 50| r4_0(glval<int>) = VariableAddress[x] :
# 50| r4_1(int) = Load : r4_0, m0_7
# 50| r4_1(int) = Load : &:r4_0, m0_7
# 50| r4_2(glval<int>) = VariableAddress[y] :
# 50| r4_3(int) = Load : r4_2, m0_10
# 50| r4_3(int) = Load : &:r4_2, m0_10
# 50| r4_4(bool) = CompareLT : r4_1, r4_3
# 50| v4_5(void) = ConditionalBranch : r4_4
#-----| False -> Block 6
@@ -156,7 +156,7 @@ ssa.cpp:
# 51| Block 5
# 51| r5_0(glval<int>) = VariableAddress[#return] :
# 51| r5_1(int) = Constant[0] :
# 51| m5_2(int) = Store : r5_0, r5_1
# 51| m5_2(int) = Store : &:r5_0, r5_1
#-----| Goto -> Block 1
# 38| Block 6
@@ -169,12 +169,12 @@ ssa.cpp:
# 59| mu0_2(unknown) = UnmodeledDefinition :
# 60| r0_3(glval<int>) = VariableAddress[i] :
# 60| r0_4(int) = Constant[0] :
# 60| m0_5(int) = Store : r0_3, r0_4
# 60| m0_5(int) = Store : &:r0_3, r0_4
# 62| r0_6(glval<int>) = VariableAddress[i] :
# 62| r0_7(int) = Load : r0_6, m0_5
# 62| r0_7(int) = Load : &:r0_6, m0_5
# 62| r0_8(int) = Constant[1] :
# 62| r0_9(int) = Add : r0_7, r0_8
# 62| m0_10(int) = Store : r0_6, r0_9
# 62| m0_10(int) = Store : &:r0_6, r0_9
# 63| r0_11(bool) = Constant[0] :
# 63| v0_12(void) = ConditionalBranch : r0_11
#-----| False -> Block 1
@@ -183,10 +183,10 @@ ssa.cpp:
# 65| Block 1
# 65| r1_0(glval<int>) = VariableAddress[#return] :
# 65| r1_1(glval<int>) = VariableAddress[i] :
# 65| r1_2(int) = Load : r1_1, m0_10
# 65| m1_3(int) = Store : r1_0, r1_2
# 65| r1_2(int) = Load : &:r1_1, m0_10
# 65| m1_3(int) = Store : &:r1_0, r1_2
# 59| r1_4(glval<int>) = VariableAddress[#return] :
# 59| v1_5(void) = ReturnValue : r1_4, m1_3
# 59| v1_5(void) = ReturnValue : &:r1_4, m1_3
# 59| v1_6(void) = UnmodeledUse : mu*
# 59| v1_7(void) = ExitFunction :
@@ -199,20 +199,20 @@ ssa.cpp:
# 68| m0_1(unknown) = AliasedDefinition :
# 68| mu0_2(unknown) = UnmodeledDefinition :
# 68| r0_3(glval<int>) = VariableAddress[n] :
# 68| m0_4(int) = InitializeParameter[n] : r0_3
# 68| m0_4(int) = InitializeParameter[n] : &:r0_3
# 68| r0_5(glval<char *>) = VariableAddress[p] :
# 68| m0_6(char *) = InitializeParameter[p] : r0_5
# 68| m0_6(char *) = InitializeParameter[p] : &:r0_5
#-----| Goto -> Block 3
# 70| Block 1
# 70| r1_0(char) = Constant[0] :
# 70| r1_1(glval<char *>) = VariableAddress[p] :
# 70| r1_2(char *) = Load : r1_1, m3_2
# 70| r1_2(char *) = Load : &:r1_1, m3_2
# 70| r1_3(int) = Constant[1] :
# 70| r1_4(char *) = PointerAdd[1] : r1_2, r1_3
# 70| m1_5(char *) = Store : r1_1, r1_4
# 70| m1_6(char) = Store : r1_2, r1_0
# 70| m1_7(unknown) = Chi : m3_0, m1_6
# 70| m1_5(char *) = Store : &:r1_1, r1_4
# 70| m1_6(char) = Store : &:r1_2, r1_0
# 70| m1_7(unknown) = Chi : total:m3_0, partial:m1_6
#-----| Goto (back edge) -> Block 3
# 71| Block 2
@@ -226,10 +226,10 @@ ssa.cpp:
# 69| m3_1(int) = Phi : from 0:m0_4, from 1:m3_7
# 69| m3_2(char *) = Phi : from 0:m0_6, from 1:m1_5
# 69| r3_3(glval<int>) = VariableAddress[n] :
# 69| r3_4(int) = Load : r3_3, m3_1
# 69| r3_4(int) = Load : &:r3_3, m3_1
# 69| r3_5(int) = Constant[1] :
# 69| r3_6(int) = Sub : r3_4, r3_5
# 69| m3_7(int) = Store : r3_3, r3_6
# 69| m3_7(int) = Store : &:r3_3, r3_6
# 69| r3_8(int) = Constant[0] :
# 69| r3_9(bool) = CompareGT : r3_4, r3_8
# 69| v3_10(void) = ConditionalBranch : r3_9
@@ -242,18 +242,18 @@ ssa.cpp:
# 75| m0_1(unknown) = AliasedDefinition :
# 75| mu0_2(unknown) = UnmodeledDefinition :
# 75| r0_3(glval<bool>) = VariableAddress[b] :
# 75| m0_4(bool) = InitializeParameter[b] : r0_3
# 75| m0_4(bool) = InitializeParameter[b] : &:r0_3
# 76| r0_5(glval<int>) = VariableAddress[x] :
# 76| r0_6(int) = Constant[0] :
# 76| m0_7(int) = Store : r0_5, r0_6
# 76| m0_7(int) = Store : &:r0_5, r0_6
# 77| r0_8(glval<int>) = VariableAddress[y] :
# 77| r0_9(int) = Constant[1] :
# 77| m0_10(int) = Store : r0_8, r0_9
# 77| m0_10(int) = Store : &:r0_8, r0_9
# 78| r0_11(glval<int>) = VariableAddress[z] :
# 78| r0_12(int) = Constant[2] :
# 78| m0_13(int) = Store : r0_11, r0_12
# 78| m0_13(int) = Store : &:r0_11, r0_12
# 79| r0_14(glval<bool>) = VariableAddress[b] :
# 79| r0_15(bool) = Load : r0_14, m0_4
# 79| r0_15(bool) = Load : &:r0_14, m0_4
# 79| v0_16(void) = ConditionalBranch : r0_15
#-----| False -> Block 2
#-----| True -> Block 1
@@ -261,16 +261,16 @@ ssa.cpp:
# 80| Block 1
# 80| r1_0(int) = Constant[3] :
# 80| r1_1(glval<int>) = VariableAddress[x] :
# 80| m1_2(int) = Store : r1_1, r1_0
# 80| m1_2(int) = Store : &:r1_1, r1_0
# 81| r1_3(int) = Constant[4] :
# 81| r1_4(glval<int>) = VariableAddress[y] :
# 81| m1_5(int) = Store : r1_4, r1_3
# 81| m1_5(int) = Store : &:r1_4, r1_3
#-----| Goto -> Block 3
# 84| Block 2
# 84| r2_0(int) = Constant[5] :
# 84| r2_1(glval<int>) = VariableAddress[x] :
# 84| m2_2(int) = Store : r2_1, r2_0
# 84| m2_2(int) = Store : &:r2_1, r2_0
#-----| Goto -> Block 3
# 86| Block 3
@@ -278,16 +278,16 @@ ssa.cpp:
# 86| m3_1(int) = Phi : from 1:m1_5, from 2:m0_10
# 86| r3_2(glval<int>) = VariableAddress[x_merge] :
# 86| r3_3(glval<int>) = VariableAddress[x] :
# 86| r3_4(int) = Load : r3_3, m3_0
# 86| m3_5(int) = Store : r3_2, r3_4
# 86| r3_4(int) = Load : &:r3_3, m3_0
# 86| m3_5(int) = Store : &:r3_2, r3_4
# 87| r3_6(glval<int>) = VariableAddress[y_merge] :
# 87| r3_7(glval<int>) = VariableAddress[y] :
# 87| r3_8(int) = Load : r3_7, m3_1
# 87| m3_9(int) = Store : r3_6, r3_8
# 87| r3_8(int) = Load : &:r3_7, m3_1
# 87| m3_9(int) = Store : &:r3_6, r3_8
# 88| r3_10(glval<int>) = VariableAddress[z_merge] :
# 88| r3_11(glval<int>) = VariableAddress[z] :
# 88| r3_12(int) = Load : r3_11, m0_13
# 88| m3_13(int) = Store : r3_10, r3_12
# 88| r3_12(int) = Load : &:r3_11, m0_13
# 88| m3_13(int) = Store : &:r3_10, r3_12
# 89| v3_14(void) = NoOp :
# 75| v3_15(void) = ReturnVoid :
# 75| v3_16(void) = UnmodeledUse : mu*
@@ -299,11 +299,11 @@ ssa.cpp:
# 91| m0_1(unknown) = AliasedDefinition :
# 91| mu0_2(unknown) = UnmodeledDefinition :
# 91| r0_3(glval<Point>) = VariableAddress[a] :
# 91| m0_4(Point) = InitializeParameter[a] : r0_3
# 91| m0_4(Point) = InitializeParameter[a] : &:r0_3
# 92| r0_5(glval<Point>) = VariableAddress[b] :
# 92| r0_6(glval<Point>) = VariableAddress[a] :
# 92| r0_7(Point) = Load : r0_6, m0_4
# 92| m0_8(Point) = Store : r0_5, r0_7
# 92| r0_7(Point) = Load : &:r0_6, m0_4
# 92| m0_8(Point) = Store : &:r0_5, r0_7
# 93| v0_9(void) = NoOp :
# 91| v0_10(void) = ReturnVoid :
# 91| v0_11(void) = UnmodeledUse : mu*
@@ -315,18 +315,18 @@ ssa.cpp:
# 95| m0_1(unknown) = AliasedDefinition :
# 95| mu0_2(unknown) = UnmodeledDefinition :
# 95| r0_3(glval<Point>) = VariableAddress[a] :
# 95| m0_4(Point) = InitializeParameter[a] : r0_3
# 95| m0_5(unknown) = Chi : m0_1, m0_4
# 95| m0_4(Point) = InitializeParameter[a] : &:r0_3
# 95| m0_5(unknown) = Chi : total:m0_1, partial:m0_4
# 96| r0_6(glval<Point>) = VariableAddress[b] :
# 96| r0_7(glval<Point>) = VariableAddress[a] :
# 96| r0_8(Point) = Load : r0_7, m0_5
# 96| m0_9(Point) = Store : r0_6, r0_8
# 96| r0_8(Point) = Load : &:r0_7, m0_5
# 96| m0_9(Point) = Store : &:r0_6, r0_8
# 97| r0_10(glval<unknown>) = FunctionAddress[Escape] :
# 97| r0_11(glval<Point>) = VariableAddress[a] :
# 97| r0_12(void *) = Convert : r0_11
# 97| v0_13(void) = Call : r0_10, r0_12
# 97| v0_13(void) = Call : func:r0_10, 0:r0_12
# 97| m0_14(unknown) = ^CallSideEffect : m0_5
# 97| m0_15(unknown) = Chi : m0_5, m0_14
# 97| m0_15(unknown) = Chi : total:m0_5, partial:m0_14
# 98| v0_16(void) = NoOp :
# 95| v0_17(void) = ReturnVoid :
# 95| v0_18(void) = UnmodeledUse : mu*
@@ -338,17 +338,17 @@ ssa.cpp:
# 100| m0_1(unknown) = AliasedDefinition :
# 100| mu0_2(unknown) = UnmodeledDefinition :
# 100| r0_3(glval<Point>) = VariableAddress[a] :
# 100| m0_4(Point) = InitializeParameter[a] : r0_3
# 100| m0_4(Point) = InitializeParameter[a] : &:r0_3
# 101| r0_5(glval<int>) = VariableAddress[x] :
# 101| r0_6(glval<Point>) = VariableAddress[a] :
# 101| r0_7(glval<int>) = FieldAddress[x] : r0_6
# 101| r0_8(int) = Load : r0_7, m0_4
# 101| m0_9(int) = Store : r0_5, r0_8
# 101| r0_8(int) = Load : &:r0_7, m0_4
# 101| m0_9(int) = Store : &:r0_5, r0_8
# 102| r0_10(glval<int>) = VariableAddress[y] :
# 102| r0_11(glval<Point>) = VariableAddress[a] :
# 102| r0_12(glval<int>) = FieldAddress[y] : r0_11
# 102| r0_13(int) = Load : r0_12, m0_4
# 102| m0_14(int) = Store : r0_10, r0_13
# 102| r0_13(int) = Load : &:r0_12, m0_4
# 102| m0_14(int) = Store : &:r0_10, r0_13
# 103| v0_15(void) = NoOp :
# 100| v0_16(void) = ReturnVoid :
# 100| v0_17(void) = UnmodeledUse : mu*
@@ -360,24 +360,24 @@ ssa.cpp:
# 105| m0_1(unknown) = AliasedDefinition :
# 105| mu0_2(unknown) = UnmodeledDefinition :
# 105| r0_3(glval<Point>) = VariableAddress[a] :
# 105| m0_4(Point) = InitializeParameter[a] : r0_3
# 105| m0_5(unknown) = Chi : m0_1, m0_4
# 105| m0_4(Point) = InitializeParameter[a] : &:r0_3
# 105| m0_5(unknown) = Chi : total:m0_1, partial:m0_4
# 106| r0_6(glval<int>) = VariableAddress[x] :
# 106| r0_7(glval<Point>) = VariableAddress[a] :
# 106| r0_8(glval<int>) = FieldAddress[x] : r0_7
# 106| r0_9(int) = Load : r0_8, m0_5
# 106| m0_10(int) = Store : r0_6, r0_9
# 106| r0_9(int) = Load : &:r0_8, m0_5
# 106| m0_10(int) = Store : &:r0_6, r0_9
# 107| r0_11(glval<int>) = VariableAddress[y] :
# 107| r0_12(glval<Point>) = VariableAddress[a] :
# 107| r0_13(glval<int>) = FieldAddress[y] : r0_12
# 107| r0_14(int) = Load : r0_13, m0_5
# 107| m0_15(int) = Store : r0_11, r0_14
# 107| r0_14(int) = Load : &:r0_13, m0_5
# 107| m0_15(int) = Store : &:r0_11, r0_14
# 108| r0_16(glval<unknown>) = FunctionAddress[Escape] :
# 108| r0_17(glval<Point>) = VariableAddress[a] :
# 108| r0_18(void *) = Convert : r0_17
# 108| v0_19(void) = Call : r0_16, r0_18
# 108| v0_19(void) = Call : func:r0_16, 0:r0_18
# 108| m0_20(unknown) = ^CallSideEffect : m0_5
# 108| m0_21(unknown) = Chi : m0_5, m0_20
# 108| m0_21(unknown) = Chi : total:m0_5, partial:m0_20
# 109| v0_22(void) = NoOp :
# 105| v0_23(void) = ReturnVoid :
# 105| v0_24(void) = UnmodeledUse : mu*
@@ -389,25 +389,25 @@ ssa.cpp:
# 111| m0_1(unknown) = AliasedDefinition :
# 111| mu0_2(unknown) = UnmodeledDefinition :
# 111| r0_3(glval<int>) = VariableAddress[x] :
# 111| m0_4(int) = InitializeParameter[x] : r0_3
# 111| m0_4(int) = InitializeParameter[x] : &:r0_3
# 111| r0_5(glval<int>) = VariableAddress[y] :
# 111| m0_6(int) = InitializeParameter[y] : r0_5
# 111| m0_6(int) = InitializeParameter[y] : &:r0_5
# 112| r0_7(glval<Point>) = VariableAddress[a] :
# 112| m0_8(Point) = Uninitialized[a] : r0_7
# 112| m0_8(Point) = Uninitialized[a] : &:r0_7
# 112| r0_9(glval<int>) = FieldAddress[x] : r0_7
# 112| r0_10(glval<int>) = VariableAddress[x] :
# 112| r0_11(int) = Load : r0_10, m0_4
# 112| m0_12(int) = Store : r0_9, r0_11
# 112| m0_13(Point) = Chi : m0_8, m0_12
# 112| r0_11(int) = Load : &:r0_10, m0_4
# 112| m0_12(int) = Store : &:r0_9, r0_11
# 112| m0_13(Point) = Chi : total:m0_8, partial:m0_12
# 112| r0_14(glval<int>) = FieldAddress[y] : r0_7
# 112| r0_15(glval<int>) = VariableAddress[y] :
# 112| r0_16(int) = Load : r0_15, m0_6
# 112| m0_17(int) = Store : r0_14, r0_16
# 112| m0_18(Point) = Chi : m0_13, m0_17
# 112| r0_16(int) = Load : &:r0_15, m0_6
# 112| m0_17(int) = Store : &:r0_14, r0_16
# 112| m0_18(Point) = Chi : total:m0_13, partial:m0_17
# 113| r0_19(glval<Point>) = VariableAddress[b] :
# 113| r0_20(glval<Point>) = VariableAddress[a] :
# 113| r0_21(Point) = Load : r0_20, m0_18
# 113| m0_22(Point) = Store : r0_19, r0_21
# 113| r0_21(Point) = Load : &:r0_20, m0_18
# 113| m0_22(Point) = Store : &:r0_19, r0_21
# 114| v0_23(void) = NoOp :
# 111| v0_24(void) = ReturnVoid :
# 111| v0_25(void) = UnmodeledUse : mu*
@@ -419,32 +419,32 @@ ssa.cpp:
# 116| m0_1(unknown) = AliasedDefinition :
# 116| mu0_2(unknown) = UnmodeledDefinition :
# 116| r0_3(glval<int>) = VariableAddress[x] :
# 116| m0_4(int) = InitializeParameter[x] : r0_3
# 116| m0_4(int) = InitializeParameter[x] : &:r0_3
# 116| r0_5(glval<int>) = VariableAddress[y] :
# 116| m0_6(int) = InitializeParameter[y] : r0_5
# 116| m0_6(int) = InitializeParameter[y] : &:r0_5
# 117| r0_7(glval<Point>) = VariableAddress[a] :
# 117| m0_8(Point) = Uninitialized[a] : r0_7
# 117| m0_9(unknown) = Chi : m0_1, m0_8
# 117| m0_8(Point) = Uninitialized[a] : &:r0_7
# 117| m0_9(unknown) = Chi : total:m0_1, partial:m0_8
# 117| r0_10(glval<int>) = FieldAddress[x] : r0_7
# 117| r0_11(glval<int>) = VariableAddress[x] :
# 117| r0_12(int) = Load : r0_11, m0_4
# 117| m0_13(int) = Store : r0_10, r0_12
# 117| m0_14(unknown) = Chi : m0_9, m0_13
# 117| r0_12(int) = Load : &:r0_11, m0_4
# 117| m0_13(int) = Store : &:r0_10, r0_12
# 117| m0_14(unknown) = Chi : total:m0_9, partial:m0_13
# 117| r0_15(glval<int>) = FieldAddress[y] : r0_7
# 117| r0_16(glval<int>) = VariableAddress[y] :
# 117| r0_17(int) = Load : r0_16, m0_6
# 117| m0_18(int) = Store : r0_15, r0_17
# 117| m0_19(unknown) = Chi : m0_14, m0_18
# 117| r0_17(int) = Load : &:r0_16, m0_6
# 117| m0_18(int) = Store : &:r0_15, r0_17
# 117| m0_19(unknown) = Chi : total:m0_14, partial:m0_18
# 118| r0_20(glval<Point>) = VariableAddress[b] :
# 118| r0_21(glval<Point>) = VariableAddress[a] :
# 118| r0_22(Point) = Load : r0_21, m0_19
# 118| m0_23(Point) = Store : r0_20, r0_22
# 118| r0_22(Point) = Load : &:r0_21, m0_19
# 118| m0_23(Point) = Store : &:r0_20, r0_22
# 119| r0_24(glval<unknown>) = FunctionAddress[Escape] :
# 119| r0_25(glval<Point>) = VariableAddress[a] :
# 119| r0_26(void *) = Convert : r0_25
# 119| v0_27(void) = Call : r0_24, r0_26
# 119| v0_27(void) = Call : func:r0_24, 0:r0_26
# 119| m0_28(unknown) = ^CallSideEffect : m0_19
# 119| m0_29(unknown) = Chi : m0_19, m0_28
# 119| m0_29(unknown) = Chi : total:m0_19, partial:m0_28
# 120| v0_30(void) = NoOp :
# 116| v0_31(void) = ReturnVoid :
# 116| v0_32(void) = UnmodeledUse : mu*
@@ -456,43 +456,43 @@ ssa.cpp:
# 122| m0_1(unknown) = AliasedDefinition :
# 122| mu0_2(unknown) = UnmodeledDefinition :
# 122| r0_3(glval<bool>) = VariableAddress[c] :
# 122| m0_4(bool) = InitializeParameter[c] : r0_3
# 122| m0_4(bool) = InitializeParameter[c] : &:r0_3
# 122| r0_5(glval<int>) = VariableAddress[x1] :
# 122| m0_6(int) = InitializeParameter[x1] : r0_5
# 122| m0_6(int) = InitializeParameter[x1] : &:r0_5
# 122| r0_7(glval<int>) = VariableAddress[x2] :
# 122| m0_8(int) = InitializeParameter[x2] : r0_7
# 122| m0_8(int) = InitializeParameter[x2] : &:r0_7
# 123| r0_9(glval<Point>) = VariableAddress[a] :
# 123| m0_10(Point) = Uninitialized[a] : r0_9
# 123| m0_10(Point) = Uninitialized[a] : &:r0_9
# 123| r0_11(glval<int>) = FieldAddress[x] : r0_9
# 123| r0_12(int) = Constant[0] :
# 123| m0_13(int) = Store : r0_11, r0_12
# 123| m0_14(Point) = Chi : m0_10, m0_13
# 123| m0_13(int) = Store : &:r0_11, r0_12
# 123| m0_14(Point) = Chi : total:m0_10, partial:m0_13
# 123| r0_15(glval<int>) = FieldAddress[y] : r0_9
# 123| r0_16(int) = Constant[0] :
# 123| m0_17(int) = Store : r0_15, r0_16
# 123| m0_18(Point) = Chi : m0_14, m0_17
# 123| m0_17(int) = Store : &:r0_15, r0_16
# 123| m0_18(Point) = Chi : total:m0_14, partial:m0_17
# 124| r0_19(glval<bool>) = VariableAddress[c] :
# 124| r0_20(bool) = Load : r0_19, m0_4
# 124| r0_20(bool) = Load : &:r0_19, m0_4
# 124| v0_21(void) = ConditionalBranch : r0_20
#-----| False -> Block 2
#-----| True -> Block 1
# 125| Block 1
# 125| r1_0(glval<int>) = VariableAddress[x1] :
# 125| r1_1(int) = Load : r1_0, m0_6
# 125| r1_1(int) = Load : &:r1_0, m0_6
# 125| r1_2(glval<Point>) = VariableAddress[a] :
# 125| r1_3(glval<int>) = FieldAddress[x] : r1_2
# 125| m1_4(int) = Store : r1_3, r1_1
# 125| m1_5(Point) = Chi : m0_18, m1_4
# 125| m1_4(int) = Store : &:r1_3, r1_1
# 125| m1_5(Point) = Chi : total:m0_18, partial:m1_4
#-----| Goto -> Block 3
# 128| Block 2
# 128| r2_0(glval<int>) = VariableAddress[x2] :
# 128| r2_1(int) = Load : r2_0, m0_8
# 128| r2_1(int) = Load : &:r2_0, m0_8
# 128| r2_2(glval<Point>) = VariableAddress[a] :
# 128| r2_3(glval<int>) = FieldAddress[x] : r2_2
# 128| m2_4(int) = Store : r2_3, r2_1
# 128| m2_5(Point) = Chi : m0_18, m2_4
# 128| m2_4(int) = Store : &:r2_3, r2_1
# 128| m2_5(Point) = Chi : total:m0_18, partial:m2_4
#-----| Goto -> Block 3
# 130| Block 3
@@ -500,12 +500,12 @@ ssa.cpp:
# 130| r3_1(glval<int>) = VariableAddress[x] :
# 130| r3_2(glval<Point>) = VariableAddress[a] :
# 130| r3_3(glval<int>) = FieldAddress[x] : r3_2
# 130| r3_4(int) = Load : r3_3, m3_0
# 130| m3_5(int) = Store : r3_1, r3_4
# 130| r3_4(int) = Load : &:r3_3, m3_0
# 130| m3_5(int) = Store : &:r3_1, r3_4
# 131| r3_6(glval<Point>) = VariableAddress[b] :
# 131| r3_7(glval<Point>) = VariableAddress[a] :
# 131| r3_8(Point) = Load : r3_7, m3_0
# 131| m3_9(Point) = Store : r3_6, r3_8
# 131| r3_8(Point) = Load : &:r3_7, m3_0
# 131| m3_9(Point) = Store : &:r3_6, r3_8
# 132| v3_10(void) = NoOp :
# 122| v3_11(void) = ReturnVoid :
# 122| v3_12(void) = UnmodeledUse : mu*

View File

@@ -5,78 +5,78 @@ ssa.cpp:
# 13| mu0_1(unknown) = AliasedDefinition :
# 13| mu0_2(unknown) = UnmodeledDefinition :
# 13| r0_3(glval<Point *>) = VariableAddress[p] :
# 13| m0_4(Point *) = InitializeParameter[p] : r0_3
# 13| m0_4(Point *) = InitializeParameter[p] : &:r0_3
# 13| r0_5(glval<bool>) = VariableAddress[which1] :
# 13| m0_6(bool) = InitializeParameter[which1] : r0_5
# 13| m0_6(bool) = InitializeParameter[which1] : &:r0_5
# 13| r0_7(glval<bool>) = VariableAddress[which2] :
# 13| m0_8(bool) = InitializeParameter[which2] : r0_7
# 13| m0_8(bool) = InitializeParameter[which2] : &:r0_7
# 14| r0_9(glval<bool>) = VariableAddress[which1] :
# 14| r0_10(bool) = Load : r0_9, m0_6
# 14| r0_10(bool) = Load : &:r0_9, m0_6
# 14| v0_11(void) = ConditionalBranch : r0_10
#-----| False -> Block 2
#-----| True -> Block 1
# 15| Block 1
# 15| r1_0(glval<Point *>) = VariableAddress[p] :
# 15| r1_1(Point *) = Load : r1_0, m0_4
# 15| r1_1(Point *) = Load : &:r1_0, m0_4
# 15| r1_2(glval<int>) = FieldAddress[x] : r1_1
# 15| r1_3(int) = Load : r1_2, mu0_2
# 15| r1_3(int) = Load : &:r1_2, mu0_2
# 15| r1_4(int) = Constant[1] :
# 15| r1_5(int) = Add : r1_3, r1_4
# 15| mu1_6(int) = Store : r1_2, r1_5
# 15| mu1_6(int) = Store : &:r1_2, r1_5
#-----| Goto -> Block 3
# 18| Block 2
# 18| r2_0(glval<Point *>) = VariableAddress[p] :
# 18| r2_1(Point *) = Load : r2_0, m0_4
# 18| r2_1(Point *) = Load : &:r2_0, m0_4
# 18| r2_2(glval<int>) = FieldAddress[y] : r2_1
# 18| r2_3(int) = Load : r2_2, mu0_2
# 18| r2_3(int) = Load : &:r2_2, mu0_2
# 18| r2_4(int) = Constant[1] :
# 18| r2_5(int) = Add : r2_3, r2_4
# 18| mu2_6(int) = Store : r2_2, r2_5
# 18| mu2_6(int) = Store : &:r2_2, r2_5
#-----| Goto -> Block 3
# 21| Block 3
# 21| r3_0(glval<bool>) = VariableAddress[which2] :
# 21| r3_1(bool) = Load : r3_0, m0_8
# 21| r3_1(bool) = Load : &:r3_0, m0_8
# 21| v3_2(void) = ConditionalBranch : r3_1
#-----| False -> Block 5
#-----| True -> Block 4
# 22| Block 4
# 22| r4_0(glval<Point *>) = VariableAddress[p] :
# 22| r4_1(Point *) = Load : r4_0, m0_4
# 22| r4_1(Point *) = Load : &:r4_0, m0_4
# 22| r4_2(glval<int>) = FieldAddress[x] : r4_1
# 22| r4_3(int) = Load : r4_2, mu0_2
# 22| r4_3(int) = Load : &:r4_2, mu0_2
# 22| r4_4(int) = Constant[1] :
# 22| r4_5(int) = Add : r4_3, r4_4
# 22| mu4_6(int) = Store : r4_2, r4_5
# 22| mu4_6(int) = Store : &:r4_2, r4_5
#-----| Goto -> Block 6
# 25| Block 5
# 25| r5_0(glval<Point *>) = VariableAddress[p] :
# 25| r5_1(Point *) = Load : r5_0, m0_4
# 25| r5_1(Point *) = Load : &:r5_0, m0_4
# 25| r5_2(glval<int>) = FieldAddress[y] : r5_1
# 25| r5_3(int) = Load : r5_2, mu0_2
# 25| r5_3(int) = Load : &:r5_2, mu0_2
# 25| r5_4(int) = Constant[1] :
# 25| r5_5(int) = Add : r5_3, r5_4
# 25| mu5_6(int) = Store : r5_2, r5_5
# 25| mu5_6(int) = Store : &:r5_2, r5_5
#-----| Goto -> Block 6
# 28| Block 6
# 28| r6_0(glval<int>) = VariableAddress[#return] :
# 28| r6_1(glval<Point *>) = VariableAddress[p] :
# 28| r6_2(Point *) = Load : r6_1, m0_4
# 28| r6_2(Point *) = Load : &:r6_1, m0_4
# 28| r6_3(glval<int>) = FieldAddress[x] : r6_2
# 28| r6_4(int) = Load : r6_3, mu0_2
# 28| r6_4(int) = Load : &:r6_3, mu0_2
# 28| r6_5(glval<Point *>) = VariableAddress[p] :
# 28| r6_6(Point *) = Load : r6_5, m0_4
# 28| r6_6(Point *) = Load : &:r6_5, m0_4
# 28| r6_7(glval<int>) = FieldAddress[y] : r6_6
# 28| r6_8(int) = Load : r6_7, mu0_2
# 28| r6_8(int) = Load : &:r6_7, mu0_2
# 28| r6_9(int) = Add : r6_4, r6_8
# 28| m6_10(int) = Store : r6_0, r6_9
# 28| m6_10(int) = Store : &:r6_0, r6_9
# 13| r6_11(glval<int>) = VariableAddress[#return] :
# 13| v6_12(void) = ReturnValue : r6_11, m6_10
# 13| v6_12(void) = ReturnValue : &:r6_11, m6_10
# 13| v6_13(void) = UnmodeledUse : mu*
# 13| v6_14(void) = ExitFunction :
@@ -89,9 +89,9 @@ ssa.cpp:
# 34| v0_4(void) = NoOp :
# 35| r0_5(glval<int>) = VariableAddress[#return] :
# 35| r0_6(int) = Constant[0] :
# 35| m0_7(int) = Store : r0_5, r0_6
# 35| m0_7(int) = Store : &:r0_5, r0_6
# 31| r0_8(glval<int>) = VariableAddress[#return] :
# 31| v0_9(void) = ReturnValue : r0_8, m0_7
# 31| v0_9(void) = ReturnValue : &:r0_8, m0_7
# 31| v0_10(void) = UnmodeledUse : mu*
# 31| v0_11(void) = ExitFunction :
@@ -101,15 +101,15 @@ ssa.cpp:
# 38| mu0_1(unknown) = AliasedDefinition :
# 38| mu0_2(unknown) = UnmodeledDefinition :
# 38| r0_3(glval<bool>) = VariableAddress[b] :
# 38| m0_4(bool) = InitializeParameter[b] : r0_3
# 38| m0_4(bool) = InitializeParameter[b] : &:r0_3
# 39| r0_5(glval<int>) = VariableAddress[x] :
# 39| r0_6(int) = Constant[5] :
# 39| m0_7(int) = Store : r0_5, r0_6
# 39| m0_7(int) = Store : &:r0_5, r0_6
# 40| r0_8(glval<int>) = VariableAddress[y] :
# 40| r0_9(int) = Constant[10] :
# 40| m0_10(int) = Store : r0_8, r0_9
# 40| m0_10(int) = Store : &:r0_8, r0_9
# 41| r0_11(glval<bool>) = VariableAddress[b] :
# 41| r0_12(bool) = Load : r0_11, m0_4
# 41| r0_12(bool) = Load : &:r0_11, m0_4
# 41| v0_13(void) = ConditionalBranch : r0_12
#-----| False -> Block 5
#-----| True -> Block 2
@@ -117,15 +117,15 @@ ssa.cpp:
# 38| Block 1
# 38| m1_0(int) = Phi : from 3:m3_2, from 4:m4_2, from 6:m6_2, from 7:m7_2
# 38| r1_1(glval<int>) = VariableAddress[#return] :
# 38| v1_2(void) = ReturnValue : r1_1, m1_0
# 38| v1_2(void) = ReturnValue : &:r1_1, m1_0
# 38| v1_3(void) = UnmodeledUse : mu*
# 38| v1_4(void) = ExitFunction :
# 42| Block 2
# 42| r2_0(glval<int>) = VariableAddress[x] :
# 42| r2_1(int) = Load : r2_0, m0_7
# 42| r2_1(int) = Load : &:r2_0, m0_7
# 42| r2_2(glval<int>) = VariableAddress[y] :
# 42| r2_3(int) = Load : r2_2, m0_10
# 42| r2_3(int) = Load : &:r2_2, m0_10
# 42| r2_4(bool) = CompareEQ : r2_1, r2_3
# 42| v2_5(void) = ConditionalBranch : r2_4
#-----| False -> Block 4
@@ -134,20 +134,20 @@ ssa.cpp:
# 43| Block 3
# 43| r3_0(glval<int>) = VariableAddress[#return] :
# 43| r3_1(int) = Constant[1] :
# 43| m3_2(int) = Store : r3_0, r3_1
# 43| m3_2(int) = Store : &:r3_0, r3_1
#-----| Goto -> Block 1
# 46| Block 4
# 46| r4_0(glval<int>) = VariableAddress[#return] :
# 46| r4_1(int) = Constant[0] :
# 46| m4_2(int) = Store : r4_0, r4_1
# 46| m4_2(int) = Store : &:r4_0, r4_1
#-----| Goto -> Block 1
# 50| Block 5
# 50| r5_0(glval<int>) = VariableAddress[x] :
# 50| r5_1(int) = Load : r5_0, m0_7
# 50| r5_1(int) = Load : &:r5_0, m0_7
# 50| r5_2(glval<int>) = VariableAddress[y] :
# 50| r5_3(int) = Load : r5_2, m0_10
# 50| r5_3(int) = Load : &:r5_2, m0_10
# 50| r5_4(bool) = CompareLT : r5_1, r5_3
# 50| v5_5(void) = ConditionalBranch : r5_4
#-----| False -> Block 7
@@ -156,13 +156,13 @@ ssa.cpp:
# 51| Block 6
# 51| r6_0(glval<int>) = VariableAddress[#return] :
# 51| r6_1(int) = Constant[0] :
# 51| m6_2(int) = Store : r6_0, r6_1
# 51| m6_2(int) = Store : &:r6_0, r6_1
#-----| Goto -> Block 1
# 54| Block 7
# 54| r7_0(glval<int>) = VariableAddress[#return] :
# 54| r7_1(int) = Constant[1] :
# 54| m7_2(int) = Store : r7_0, r7_1
# 54| m7_2(int) = Store : &:r7_0, r7_1
#-----| Goto -> Block 1
# 59| int DoWhileFalse()
@@ -172,12 +172,12 @@ ssa.cpp:
# 59| mu0_2(unknown) = UnmodeledDefinition :
# 60| r0_3(glval<int>) = VariableAddress[i] :
# 60| r0_4(int) = Constant[0] :
# 60| m0_5(int) = Store : r0_3, r0_4
# 60| m0_5(int) = Store : &:r0_3, r0_4
# 62| r0_6(glval<int>) = VariableAddress[i] :
# 62| r0_7(int) = Load : r0_6, m0_5
# 62| r0_7(int) = Load : &:r0_6, m0_5
# 62| r0_8(int) = Constant[1] :
# 62| r0_9(int) = Add : r0_7, r0_8
# 62| m0_10(int) = Store : r0_6, r0_9
# 62| m0_10(int) = Store : &:r0_6, r0_9
# 63| r0_11(bool) = Constant[0] :
# 63| v0_12(void) = ConditionalBranch : r0_11
#-----| False -> Block 1
@@ -186,10 +186,10 @@ ssa.cpp:
# 65| Block 1
# 65| r1_0(glval<int>) = VariableAddress[#return] :
# 65| r1_1(glval<int>) = VariableAddress[i] :
# 65| r1_2(int) = Load : r1_1, m0_10
# 65| m1_3(int) = Store : r1_0, r1_2
# 65| r1_2(int) = Load : &:r1_1, m0_10
# 65| m1_3(int) = Store : &:r1_0, r1_2
# 59| r1_4(glval<int>) = VariableAddress[#return] :
# 59| v1_5(void) = ReturnValue : r1_4, m1_3
# 59| v1_5(void) = ReturnValue : &:r1_4, m1_3
# 59| v1_6(void) = UnmodeledUse : mu*
# 59| v1_7(void) = ExitFunction :
@@ -202,19 +202,19 @@ ssa.cpp:
# 68| mu0_1(unknown) = AliasedDefinition :
# 68| mu0_2(unknown) = UnmodeledDefinition :
# 68| r0_3(glval<int>) = VariableAddress[n] :
# 68| m0_4(int) = InitializeParameter[n] : r0_3
# 68| m0_4(int) = InitializeParameter[n] : &:r0_3
# 68| r0_5(glval<char *>) = VariableAddress[p] :
# 68| m0_6(char *) = InitializeParameter[p] : r0_5
# 68| m0_6(char *) = InitializeParameter[p] : &:r0_5
#-----| Goto -> Block 3
# 70| Block 1
# 70| r1_0(char) = Constant[0] :
# 70| r1_1(glval<char *>) = VariableAddress[p] :
# 70| r1_2(char *) = Load : r1_1, m3_1
# 70| r1_2(char *) = Load : &:r1_1, m3_1
# 70| r1_3(int) = Constant[1] :
# 70| r1_4(char *) = PointerAdd[1] : r1_2, r1_3
# 70| m1_5(char *) = Store : r1_1, r1_4
# 70| mu1_6(char) = Store : r1_2, r1_0
# 70| m1_5(char *) = Store : &:r1_1, r1_4
# 70| mu1_6(char) = Store : &:r1_2, r1_0
#-----| Goto (back edge) -> Block 3
# 71| Block 2
@@ -227,10 +227,10 @@ ssa.cpp:
# 69| m3_0(int) = Phi : from 0:m0_4, from 1:m3_6
# 69| m3_1(char *) = Phi : from 0:m0_6, from 1:m1_5
# 69| r3_2(glval<int>) = VariableAddress[n] :
# 69| r3_3(int) = Load : r3_2, m3_0
# 69| r3_3(int) = Load : &:r3_2, m3_0
# 69| r3_4(int) = Constant[1] :
# 69| r3_5(int) = Sub : r3_3, r3_4
# 69| m3_6(int) = Store : r3_2, r3_5
# 69| m3_6(int) = Store : &:r3_2, r3_5
# 69| r3_7(int) = Constant[0] :
# 69| r3_8(bool) = CompareGT : r3_3, r3_7
# 69| v3_9(void) = ConditionalBranch : r3_8
@@ -243,18 +243,18 @@ ssa.cpp:
# 75| mu0_1(unknown) = AliasedDefinition :
# 75| mu0_2(unknown) = UnmodeledDefinition :
# 75| r0_3(glval<bool>) = VariableAddress[b] :
# 75| m0_4(bool) = InitializeParameter[b] : r0_3
# 75| m0_4(bool) = InitializeParameter[b] : &:r0_3
# 76| r0_5(glval<int>) = VariableAddress[x] :
# 76| r0_6(int) = Constant[0] :
# 76| m0_7(int) = Store : r0_5, r0_6
# 76| m0_7(int) = Store : &:r0_5, r0_6
# 77| r0_8(glval<int>) = VariableAddress[y] :
# 77| r0_9(int) = Constant[1] :
# 77| m0_10(int) = Store : r0_8, r0_9
# 77| m0_10(int) = Store : &:r0_8, r0_9
# 78| r0_11(glval<int>) = VariableAddress[z] :
# 78| r0_12(int) = Constant[2] :
# 78| m0_13(int) = Store : r0_11, r0_12
# 78| m0_13(int) = Store : &:r0_11, r0_12
# 79| r0_14(glval<bool>) = VariableAddress[b] :
# 79| r0_15(bool) = Load : r0_14, m0_4
# 79| r0_15(bool) = Load : &:r0_14, m0_4
# 79| v0_16(void) = ConditionalBranch : r0_15
#-----| False -> Block 2
#-----| True -> Block 1
@@ -262,16 +262,16 @@ ssa.cpp:
# 80| Block 1
# 80| r1_0(int) = Constant[3] :
# 80| r1_1(glval<int>) = VariableAddress[x] :
# 80| m1_2(int) = Store : r1_1, r1_0
# 80| m1_2(int) = Store : &:r1_1, r1_0
# 81| r1_3(int) = Constant[4] :
# 81| r1_4(glval<int>) = VariableAddress[y] :
# 81| m1_5(int) = Store : r1_4, r1_3
# 81| m1_5(int) = Store : &:r1_4, r1_3
#-----| Goto -> Block 3
# 84| Block 2
# 84| r2_0(int) = Constant[5] :
# 84| r2_1(glval<int>) = VariableAddress[x] :
# 84| m2_2(int) = Store : r2_1, r2_0
# 84| m2_2(int) = Store : &:r2_1, r2_0
#-----| Goto -> Block 3
# 86| Block 3
@@ -279,16 +279,16 @@ ssa.cpp:
# 86| m3_1(int) = Phi : from 1:m1_5, from 2:m0_10
# 86| r3_2(glval<int>) = VariableAddress[x_merge] :
# 86| r3_3(glval<int>) = VariableAddress[x] :
# 86| r3_4(int) = Load : r3_3, m3_0
# 86| m3_5(int) = Store : r3_2, r3_4
# 86| r3_4(int) = Load : &:r3_3, m3_0
# 86| m3_5(int) = Store : &:r3_2, r3_4
# 87| r3_6(glval<int>) = VariableAddress[y_merge] :
# 87| r3_7(glval<int>) = VariableAddress[y] :
# 87| r3_8(int) = Load : r3_7, m3_1
# 87| m3_9(int) = Store : r3_6, r3_8
# 87| r3_8(int) = Load : &:r3_7, m3_1
# 87| m3_9(int) = Store : &:r3_6, r3_8
# 88| r3_10(glval<int>) = VariableAddress[z_merge] :
# 88| r3_11(glval<int>) = VariableAddress[z] :
# 88| r3_12(int) = Load : r3_11, m0_13
# 88| m3_13(int) = Store : r3_10, r3_12
# 88| r3_12(int) = Load : &:r3_11, m0_13
# 88| m3_13(int) = Store : &:r3_10, r3_12
# 89| v3_14(void) = NoOp :
# 75| v3_15(void) = ReturnVoid :
# 75| v3_16(void) = UnmodeledUse : mu*
@@ -300,11 +300,11 @@ ssa.cpp:
# 91| mu0_1(unknown) = AliasedDefinition :
# 91| mu0_2(unknown) = UnmodeledDefinition :
# 91| r0_3(glval<Point>) = VariableAddress[a] :
# 91| m0_4(Point) = InitializeParameter[a] : r0_3
# 91| m0_4(Point) = InitializeParameter[a] : &:r0_3
# 92| r0_5(glval<Point>) = VariableAddress[b] :
# 92| r0_6(glval<Point>) = VariableAddress[a] :
# 92| r0_7(Point) = Load : r0_6, m0_4
# 92| m0_8(Point) = Store : r0_5, r0_7
# 92| r0_7(Point) = Load : &:r0_6, m0_4
# 92| m0_8(Point) = Store : &:r0_5, r0_7
# 93| v0_9(void) = NoOp :
# 91| v0_10(void) = ReturnVoid :
# 91| v0_11(void) = UnmodeledUse : mu*
@@ -316,15 +316,15 @@ ssa.cpp:
# 95| mu0_1(unknown) = AliasedDefinition :
# 95| mu0_2(unknown) = UnmodeledDefinition :
# 95| r0_3(glval<Point>) = VariableAddress[a] :
# 95| mu0_4(Point) = InitializeParameter[a] : r0_3
# 95| mu0_4(Point) = InitializeParameter[a] : &:r0_3
# 96| r0_5(glval<Point>) = VariableAddress[b] :
# 96| r0_6(glval<Point>) = VariableAddress[a] :
# 96| r0_7(Point) = Load : r0_6, mu0_2
# 96| m0_8(Point) = Store : r0_5, r0_7
# 96| r0_7(Point) = Load : &:r0_6, mu0_2
# 96| m0_8(Point) = Store : &:r0_5, r0_7
# 97| r0_9(glval<unknown>) = FunctionAddress[Escape] :
# 97| r0_10(glval<Point>) = VariableAddress[a] :
# 97| r0_11(void *) = Convert : r0_10
# 97| v0_12(void) = Call : r0_9, r0_11
# 97| v0_12(void) = Call : func:r0_9, 0:r0_11
# 97| mu0_13(unknown) = ^CallSideEffect : mu0_2
# 98| v0_14(void) = NoOp :
# 95| v0_15(void) = ReturnVoid :
@@ -337,17 +337,17 @@ ssa.cpp:
# 100| mu0_1(unknown) = AliasedDefinition :
# 100| mu0_2(unknown) = UnmodeledDefinition :
# 100| r0_3(glval<Point>) = VariableAddress[a] :
# 100| mu0_4(Point) = InitializeParameter[a] : r0_3
# 100| mu0_4(Point) = InitializeParameter[a] : &:r0_3
# 101| r0_5(glval<int>) = VariableAddress[x] :
# 101| r0_6(glval<Point>) = VariableAddress[a] :
# 101| r0_7(glval<int>) = FieldAddress[x] : r0_6
# 101| r0_8(int) = Load : r0_7, mu0_2
# 101| m0_9(int) = Store : r0_5, r0_8
# 101| r0_8(int) = Load : &:r0_7, mu0_2
# 101| m0_9(int) = Store : &:r0_5, r0_8
# 102| r0_10(glval<int>) = VariableAddress[y] :
# 102| r0_11(glval<Point>) = VariableAddress[a] :
# 102| r0_12(glval<int>) = FieldAddress[y] : r0_11
# 102| r0_13(int) = Load : r0_12, mu0_2
# 102| m0_14(int) = Store : r0_10, r0_13
# 102| r0_13(int) = Load : &:r0_12, mu0_2
# 102| m0_14(int) = Store : &:r0_10, r0_13
# 103| v0_15(void) = NoOp :
# 100| v0_16(void) = ReturnVoid :
# 100| v0_17(void) = UnmodeledUse : mu*
@@ -359,21 +359,21 @@ ssa.cpp:
# 105| mu0_1(unknown) = AliasedDefinition :
# 105| mu0_2(unknown) = UnmodeledDefinition :
# 105| r0_3(glval<Point>) = VariableAddress[a] :
# 105| mu0_4(Point) = InitializeParameter[a] : r0_3
# 105| mu0_4(Point) = InitializeParameter[a] : &:r0_3
# 106| r0_5(glval<int>) = VariableAddress[x] :
# 106| r0_6(glval<Point>) = VariableAddress[a] :
# 106| r0_7(glval<int>) = FieldAddress[x] : r0_6
# 106| r0_8(int) = Load : r0_7, mu0_2
# 106| m0_9(int) = Store : r0_5, r0_8
# 106| r0_8(int) = Load : &:r0_7, mu0_2
# 106| m0_9(int) = Store : &:r0_5, r0_8
# 107| r0_10(glval<int>) = VariableAddress[y] :
# 107| r0_11(glval<Point>) = VariableAddress[a] :
# 107| r0_12(glval<int>) = FieldAddress[y] : r0_11
# 107| r0_13(int) = Load : r0_12, mu0_2
# 107| m0_14(int) = Store : r0_10, r0_13
# 107| r0_13(int) = Load : &:r0_12, mu0_2
# 107| m0_14(int) = Store : &:r0_10, r0_13
# 108| r0_15(glval<unknown>) = FunctionAddress[Escape] :
# 108| r0_16(glval<Point>) = VariableAddress[a] :
# 108| r0_17(void *) = Convert : r0_16
# 108| v0_18(void) = Call : r0_15, r0_17
# 108| v0_18(void) = Call : func:r0_15, 0:r0_17
# 108| mu0_19(unknown) = ^CallSideEffect : mu0_2
# 109| v0_20(void) = NoOp :
# 105| v0_21(void) = ReturnVoid :
@@ -386,23 +386,23 @@ ssa.cpp:
# 111| mu0_1(unknown) = AliasedDefinition :
# 111| mu0_2(unknown) = UnmodeledDefinition :
# 111| r0_3(glval<int>) = VariableAddress[x] :
# 111| m0_4(int) = InitializeParameter[x] : r0_3
# 111| m0_4(int) = InitializeParameter[x] : &:r0_3
# 111| r0_5(glval<int>) = VariableAddress[y] :
# 111| m0_6(int) = InitializeParameter[y] : r0_5
# 111| m0_6(int) = InitializeParameter[y] : &:r0_5
# 112| r0_7(glval<Point>) = VariableAddress[a] :
# 112| mu0_8(Point) = Uninitialized[a] : r0_7
# 112| mu0_8(Point) = Uninitialized[a] : &:r0_7
# 112| r0_9(glval<int>) = FieldAddress[x] : r0_7
# 112| r0_10(glval<int>) = VariableAddress[x] :
# 112| r0_11(int) = Load : r0_10, m0_4
# 112| mu0_12(int) = Store : r0_9, r0_11
# 112| r0_11(int) = Load : &:r0_10, m0_4
# 112| mu0_12(int) = Store : &:r0_9, r0_11
# 112| r0_13(glval<int>) = FieldAddress[y] : r0_7
# 112| r0_14(glval<int>) = VariableAddress[y] :
# 112| r0_15(int) = Load : r0_14, m0_6
# 112| mu0_16(int) = Store : r0_13, r0_15
# 112| r0_15(int) = Load : &:r0_14, m0_6
# 112| mu0_16(int) = Store : &:r0_13, r0_15
# 113| r0_17(glval<Point>) = VariableAddress[b] :
# 113| r0_18(glval<Point>) = VariableAddress[a] :
# 113| r0_19(Point) = Load : r0_18, mu0_2
# 113| m0_20(Point) = Store : r0_17, r0_19
# 113| r0_19(Point) = Load : &:r0_18, mu0_2
# 113| m0_20(Point) = Store : &:r0_17, r0_19
# 114| v0_21(void) = NoOp :
# 111| v0_22(void) = ReturnVoid :
# 111| v0_23(void) = UnmodeledUse : mu*
@@ -414,27 +414,27 @@ ssa.cpp:
# 116| mu0_1(unknown) = AliasedDefinition :
# 116| mu0_2(unknown) = UnmodeledDefinition :
# 116| r0_3(glval<int>) = VariableAddress[x] :
# 116| m0_4(int) = InitializeParameter[x] : r0_3
# 116| m0_4(int) = InitializeParameter[x] : &:r0_3
# 116| r0_5(glval<int>) = VariableAddress[y] :
# 116| m0_6(int) = InitializeParameter[y] : r0_5
# 116| m0_6(int) = InitializeParameter[y] : &:r0_5
# 117| r0_7(glval<Point>) = VariableAddress[a] :
# 117| mu0_8(Point) = Uninitialized[a] : r0_7
# 117| mu0_8(Point) = Uninitialized[a] : &:r0_7
# 117| r0_9(glval<int>) = FieldAddress[x] : r0_7
# 117| r0_10(glval<int>) = VariableAddress[x] :
# 117| r0_11(int) = Load : r0_10, m0_4
# 117| mu0_12(int) = Store : r0_9, r0_11
# 117| r0_11(int) = Load : &:r0_10, m0_4
# 117| mu0_12(int) = Store : &:r0_9, r0_11
# 117| r0_13(glval<int>) = FieldAddress[y] : r0_7
# 117| r0_14(glval<int>) = VariableAddress[y] :
# 117| r0_15(int) = Load : r0_14, m0_6
# 117| mu0_16(int) = Store : r0_13, r0_15
# 117| r0_15(int) = Load : &:r0_14, m0_6
# 117| mu0_16(int) = Store : &:r0_13, r0_15
# 118| r0_17(glval<Point>) = VariableAddress[b] :
# 118| r0_18(glval<Point>) = VariableAddress[a] :
# 118| r0_19(Point) = Load : r0_18, mu0_2
# 118| m0_20(Point) = Store : r0_17, r0_19
# 118| r0_19(Point) = Load : &:r0_18, mu0_2
# 118| m0_20(Point) = Store : &:r0_17, r0_19
# 119| r0_21(glval<unknown>) = FunctionAddress[Escape] :
# 119| r0_22(glval<Point>) = VariableAddress[a] :
# 119| r0_23(void *) = Convert : r0_22
# 119| v0_24(void) = Call : r0_21, r0_23
# 119| v0_24(void) = Call : func:r0_21, 0:r0_23
# 119| mu0_25(unknown) = ^CallSideEffect : mu0_2
# 120| v0_26(void) = NoOp :
# 116| v0_27(void) = ReturnVoid :
@@ -447,51 +447,51 @@ ssa.cpp:
# 122| mu0_1(unknown) = AliasedDefinition :
# 122| mu0_2(unknown) = UnmodeledDefinition :
# 122| r0_3(glval<bool>) = VariableAddress[c] :
# 122| m0_4(bool) = InitializeParameter[c] : r0_3
# 122| m0_4(bool) = InitializeParameter[c] : &:r0_3
# 122| r0_5(glval<int>) = VariableAddress[x1] :
# 122| m0_6(int) = InitializeParameter[x1] : r0_5
# 122| m0_6(int) = InitializeParameter[x1] : &:r0_5
# 122| r0_7(glval<int>) = VariableAddress[x2] :
# 122| m0_8(int) = InitializeParameter[x2] : r0_7
# 122| m0_8(int) = InitializeParameter[x2] : &:r0_7
# 123| r0_9(glval<Point>) = VariableAddress[a] :
# 123| mu0_10(Point) = Uninitialized[a] : r0_9
# 123| mu0_10(Point) = Uninitialized[a] : &:r0_9
# 123| r0_11(glval<int>) = FieldAddress[x] : r0_9
# 123| r0_12(int) = Constant[0] :
# 123| mu0_13(int) = Store : r0_11, r0_12
# 123| mu0_13(int) = Store : &:r0_11, r0_12
# 123| r0_14(glval<int>) = FieldAddress[y] : r0_9
# 123| r0_15(int) = Constant[0] :
# 123| mu0_16(int) = Store : r0_14, r0_15
# 123| mu0_16(int) = Store : &:r0_14, r0_15
# 124| r0_17(glval<bool>) = VariableAddress[c] :
# 124| r0_18(bool) = Load : r0_17, m0_4
# 124| r0_18(bool) = Load : &:r0_17, m0_4
# 124| v0_19(void) = ConditionalBranch : r0_18
#-----| False -> Block 2
#-----| True -> Block 1
# 125| Block 1
# 125| r1_0(glval<int>) = VariableAddress[x1] :
# 125| r1_1(int) = Load : r1_0, m0_6
# 125| r1_1(int) = Load : &:r1_0, m0_6
# 125| r1_2(glval<Point>) = VariableAddress[a] :
# 125| r1_3(glval<int>) = FieldAddress[x] : r1_2
# 125| mu1_4(int) = Store : r1_3, r1_1
# 125| mu1_4(int) = Store : &:r1_3, r1_1
#-----| Goto -> Block 3
# 128| Block 2
# 128| r2_0(glval<int>) = VariableAddress[x2] :
# 128| r2_1(int) = Load : r2_0, m0_8
# 128| r2_1(int) = Load : &:r2_0, m0_8
# 128| r2_2(glval<Point>) = VariableAddress[a] :
# 128| r2_3(glval<int>) = FieldAddress[x] : r2_2
# 128| mu2_4(int) = Store : r2_3, r2_1
# 128| mu2_4(int) = Store : &:r2_3, r2_1
#-----| Goto -> Block 3
# 130| Block 3
# 130| r3_0(glval<int>) = VariableAddress[x] :
# 130| r3_1(glval<Point>) = VariableAddress[a] :
# 130| r3_2(glval<int>) = FieldAddress[x] : r3_1
# 130| r3_3(int) = Load : r3_2, mu0_2
# 130| m3_4(int) = Store : r3_0, r3_3
# 130| r3_3(int) = Load : &:r3_2, mu0_2
# 130| m3_4(int) = Store : &:r3_0, r3_3
# 131| r3_5(glval<Point>) = VariableAddress[b] :
# 131| r3_6(glval<Point>) = VariableAddress[a] :
# 131| r3_7(Point) = Load : r3_6, mu0_2
# 131| m3_8(Point) = Store : r3_5, r3_7
# 131| r3_7(Point) = Load : &:r3_6, mu0_2
# 131| m3_8(Point) = Store : &:r3_5, r3_7
# 132| v3_9(void) = NoOp :
# 122| v3_10(void) = ReturnVoid :
# 122| v3_11(void) = UnmodeledUse : mu*

View File

@@ -8,64 +8,64 @@ test.cpp:
# 1| valnum = unique
# 1| r0_3(glval<int>) = VariableAddress[p0] :
# 1| valnum = r0_3
# 1| m0_4(int) = InitializeParameter[p0] : r0_3
# 1| m0_4(int) = InitializeParameter[p0] : &:r0_3
# 1| valnum = m0_4
# 1| r0_5(glval<int>) = VariableAddress[p1] :
# 1| valnum = r0_5
# 1| m0_6(int) = InitializeParameter[p1] : r0_5
# 1| m0_6(int) = InitializeParameter[p1] : &:r0_5
# 1| valnum = m0_6
# 2| r0_7(glval<int>) = VariableAddress[x] :
# 2| valnum = r0_7
# 2| m0_8(int) = Uninitialized[x] : r0_7
# 2| m0_8(int) = Uninitialized[x] : &:r0_7
# 2| valnum = unique
# 2| r0_9(glval<int>) = VariableAddress[y] :
# 2| valnum = r0_9
# 2| m0_10(int) = Uninitialized[y] : r0_9
# 2| m0_10(int) = Uninitialized[y] : &:r0_9
# 2| valnum = unique
# 3| r0_11(glval<unsigned char>) = VariableAddress[b] :
# 3| valnum = unique
# 3| m0_12(unsigned char) = Uninitialized[b] : r0_11
# 3| m0_12(unsigned char) = Uninitialized[b] : &:r0_11
# 3| valnum = unique
# 5| r0_13(glval<int>) = VariableAddress[p0] :
# 5| valnum = r0_3
# 5| r0_14(int) = Load : r0_13, m0_4
# 5| r0_14(int) = Load : &:r0_13, m0_4
# 5| valnum = m0_4
# 5| r0_15(glval<int>) = VariableAddress[p1] :
# 5| valnum = r0_5
# 5| r0_16(int) = Load : r0_15, m0_6
# 5| r0_16(int) = Load : &:r0_15, m0_6
# 5| valnum = m0_6
# 5| r0_17(int) = Add : r0_14, r0_16
# 5| valnum = r0_17
# 5| r0_18(glval<int>) = VariableAddress[x] :
# 5| valnum = r0_7
# 5| m0_19(int) = Store : r0_18, r0_17
# 5| m0_19(int) = Store : &:r0_18, r0_17
# 5| valnum = r0_17
# 6| r0_20(glval<int>) = VariableAddress[p0] :
# 6| valnum = r0_3
# 6| r0_21(int) = Load : r0_20, m0_4
# 6| r0_21(int) = Load : &:r0_20, m0_4
# 6| valnum = m0_4
# 6| r0_22(glval<int>) = VariableAddress[p1] :
# 6| valnum = r0_5
# 6| r0_23(int) = Load : r0_22, m0_6
# 6| r0_23(int) = Load : &:r0_22, m0_6
# 6| valnum = m0_6
# 6| r0_24(int) = Add : r0_21, r0_23
# 6| valnum = r0_17
# 6| r0_25(glval<int>) = VariableAddress[x] :
# 6| valnum = r0_7
# 6| m0_26(int) = Store : r0_25, r0_24
# 6| m0_26(int) = Store : &:r0_25, r0_24
# 6| valnum = r0_17
# 7| r0_27(glval<int>) = VariableAddress[x] :
# 7| valnum = r0_7
# 7| r0_28(int) = Load : r0_27, m0_26
# 7| r0_28(int) = Load : &:r0_27, m0_26
# 7| valnum = r0_17
# 7| r0_29(glval<int>) = VariableAddress[y] :
# 7| valnum = r0_9
# 7| m0_30(int) = Store : r0_29, r0_28
# 7| m0_30(int) = Store : &:r0_29, r0_28
# 7| valnum = r0_17
# 8| v0_31(void) = NoOp :
# 1| r0_32(glval<int>) = VariableAddress[#return] :
# 1| valnum = unique
# 1| v0_33(void) = ReturnValue : r0_32
# 1| v0_33(void) = ReturnValue : &:r0_32
# 1| v0_34(void) = UnmodeledUse : mu*
# 1| v0_35(void) = ExitFunction :
@@ -78,76 +78,76 @@ test.cpp:
# 12| valnum = unique
# 12| r0_3(glval<int>) = VariableAddress[p0] :
# 12| valnum = r0_3
# 12| m0_4(int) = InitializeParameter[p0] : r0_3
# 12| m0_4(int) = InitializeParameter[p0] : &:r0_3
# 12| valnum = m0_4
# 12| r0_5(glval<int>) = VariableAddress[p1] :
# 12| valnum = r0_5
# 12| m0_6(int) = InitializeParameter[p1] : r0_5
# 12| m0_6(int) = InitializeParameter[p1] : &:r0_5
# 12| valnum = m0_6
# 13| r0_7(glval<int>) = VariableAddress[x] :
# 13| valnum = r0_7
# 13| m0_8(int) = Uninitialized[x] : r0_7
# 13| m0_8(int) = Uninitialized[x] : &:r0_7
# 13| valnum = unique
# 13| r0_9(glval<int>) = VariableAddress[y] :
# 13| valnum = r0_9
# 13| m0_10(int) = Uninitialized[y] : r0_9
# 13| m0_10(int) = Uninitialized[y] : &:r0_9
# 13| valnum = unique
# 14| r0_11(glval<unsigned char>) = VariableAddress[b] :
# 14| valnum = unique
# 14| m0_12(unsigned char) = Uninitialized[b] : r0_11
# 14| m0_12(unsigned char) = Uninitialized[b] : &:r0_11
# 14| valnum = unique
# 16| r0_13(glval<int>) = VariableAddress[p0] :
# 16| valnum = r0_3
# 16| r0_14(int) = Load : r0_13, m0_4
# 16| r0_14(int) = Load : &:r0_13, m0_4
# 16| valnum = m0_4
# 16| r0_15(glval<int>) = VariableAddress[p1] :
# 16| valnum = r0_5
# 16| r0_16(int) = Load : r0_15, m0_6
# 16| r0_16(int) = Load : &:r0_15, m0_6
# 16| valnum = m0_6
# 16| r0_17(int) = Add : r0_14, r0_16
# 16| valnum = r0_17
# 16| r0_18(glval<int>) = VariableAddress[global01] :
# 16| valnum = r0_18
# 16| r0_19(int) = Load : r0_18, m0_1
# 16| r0_19(int) = Load : &:r0_18, m0_1
# 16| valnum = unique
# 16| r0_20(int) = Add : r0_17, r0_19
# 16| valnum = r0_20
# 16| r0_21(glval<int>) = VariableAddress[x] :
# 16| valnum = r0_7
# 16| m0_22(int) = Store : r0_21, r0_20
# 16| m0_22(int) = Store : &:r0_21, r0_20
# 16| valnum = r0_20
# 17| r0_23(glval<int>) = VariableAddress[p0] :
# 17| valnum = r0_3
# 17| r0_24(int) = Load : r0_23, m0_4
# 17| r0_24(int) = Load : &:r0_23, m0_4
# 17| valnum = m0_4
# 17| r0_25(glval<int>) = VariableAddress[p1] :
# 17| valnum = r0_5
# 17| r0_26(int) = Load : r0_25, m0_6
# 17| r0_26(int) = Load : &:r0_25, m0_6
# 17| valnum = m0_6
# 17| r0_27(int) = Add : r0_24, r0_26
# 17| valnum = r0_17
# 17| r0_28(glval<int>) = VariableAddress[global01] :
# 17| valnum = r0_18
# 17| r0_29(int) = Load : r0_28, m0_1
# 17| r0_29(int) = Load : &:r0_28, m0_1
# 17| valnum = unique
# 17| r0_30(int) = Add : r0_27, r0_29
# 17| valnum = r0_30
# 17| r0_31(glval<int>) = VariableAddress[x] :
# 17| valnum = r0_7
# 17| m0_32(int) = Store : r0_31, r0_30
# 17| m0_32(int) = Store : &:r0_31, r0_30
# 17| valnum = r0_30
# 18| r0_33(glval<int>) = VariableAddress[x] :
# 18| valnum = r0_7
# 18| r0_34(int) = Load : r0_33, m0_32
# 18| r0_34(int) = Load : &:r0_33, m0_32
# 18| valnum = r0_30
# 18| r0_35(glval<int>) = VariableAddress[y] :
# 18| valnum = r0_9
# 18| m0_36(int) = Store : r0_35, r0_34
# 18| m0_36(int) = Store : &:r0_35, r0_34
# 18| valnum = r0_30
# 19| v0_37(void) = NoOp :
# 12| r0_38(glval<int>) = VariableAddress[#return] :
# 12| valnum = unique
# 12| v0_39(void) = ReturnValue : r0_38
# 12| v0_39(void) = ReturnValue : &:r0_38
# 12| v0_40(void) = UnmodeledUse : mu*
# 12| v0_41(void) = ExitFunction :
@@ -160,83 +160,83 @@ test.cpp:
# 25| valnum = unique
# 25| r0_3(glval<int>) = VariableAddress[p0] :
# 25| valnum = r0_3
# 25| m0_4(int) = InitializeParameter[p0] : r0_3
# 25| m0_4(int) = InitializeParameter[p0] : &:r0_3
# 25| valnum = m0_4
# 25| r0_5(glval<int>) = VariableAddress[p1] :
# 25| valnum = r0_5
# 25| m0_6(int) = InitializeParameter[p1] : r0_5
# 25| m0_6(int) = InitializeParameter[p1] : &:r0_5
# 25| valnum = m0_6
# 26| r0_7(glval<int>) = VariableAddress[x] :
# 26| valnum = r0_7
# 26| m0_8(int) = Uninitialized[x] : r0_7
# 26| m0_8(int) = Uninitialized[x] : &:r0_7
# 26| valnum = unique
# 26| r0_9(glval<int>) = VariableAddress[y] :
# 26| valnum = r0_9
# 26| m0_10(int) = Uninitialized[y] : r0_9
# 26| m0_10(int) = Uninitialized[y] : &:r0_9
# 26| valnum = unique
# 27| r0_11(glval<unsigned char>) = VariableAddress[b] :
# 27| valnum = unique
# 27| m0_12(unsigned char) = Uninitialized[b] : r0_11
# 27| m0_12(unsigned char) = Uninitialized[b] : &:r0_11
# 27| valnum = unique
# 29| r0_13(glval<int>) = VariableAddress[p0] :
# 29| valnum = r0_3
# 29| r0_14(int) = Load : r0_13, m0_4
# 29| r0_14(int) = Load : &:r0_13, m0_4
# 29| valnum = m0_4
# 29| r0_15(glval<int>) = VariableAddress[p1] :
# 29| valnum = r0_5
# 29| r0_16(int) = Load : r0_15, m0_6
# 29| r0_16(int) = Load : &:r0_15, m0_6
# 29| valnum = m0_6
# 29| r0_17(int) = Add : r0_14, r0_16
# 29| valnum = r0_17
# 29| r0_18(glval<int>) = VariableAddress[global02] :
# 29| valnum = r0_18
# 29| r0_19(int) = Load : r0_18, m0_1
# 29| r0_19(int) = Load : &:r0_18, m0_1
# 29| valnum = unique
# 29| r0_20(int) = Add : r0_17, r0_19
# 29| valnum = r0_20
# 29| r0_21(glval<int>) = VariableAddress[x] :
# 29| valnum = r0_7
# 29| m0_22(int) = Store : r0_21, r0_20
# 29| m0_22(int) = Store : &:r0_21, r0_20
# 29| valnum = r0_20
# 30| r0_23(glval<unknown>) = FunctionAddress[change_global02] :
# 30| valnum = unique
# 30| v0_24(void) = Call : r0_23
# 30| v0_24(void) = Call : func:r0_23
# 30| m0_25(unknown) = ^CallSideEffect : m0_1
# 30| valnum = unique
# 30| m0_26(unknown) = Chi : m0_1, m0_25
# 30| m0_26(unknown) = Chi : total:m0_1, partial:m0_25
# 30| valnum = unique
# 31| r0_27(glval<int>) = VariableAddress[p0] :
# 31| valnum = r0_3
# 31| r0_28(int) = Load : r0_27, m0_4
# 31| r0_28(int) = Load : &:r0_27, m0_4
# 31| valnum = m0_4
# 31| r0_29(glval<int>) = VariableAddress[p1] :
# 31| valnum = r0_5
# 31| r0_30(int) = Load : r0_29, m0_6
# 31| r0_30(int) = Load : &:r0_29, m0_6
# 31| valnum = m0_6
# 31| r0_31(int) = Add : r0_28, r0_30
# 31| valnum = r0_17
# 31| r0_32(glval<int>) = VariableAddress[global02] :
# 31| valnum = r0_18
# 31| r0_33(int) = Load : r0_32, m0_26
# 31| r0_33(int) = Load : &:r0_32, m0_26
# 31| valnum = unique
# 31| r0_34(int) = Add : r0_31, r0_33
# 31| valnum = r0_34
# 31| r0_35(glval<int>) = VariableAddress[x] :
# 31| valnum = r0_7
# 31| m0_36(int) = Store : r0_35, r0_34
# 31| m0_36(int) = Store : &:r0_35, r0_34
# 31| valnum = r0_34
# 32| r0_37(glval<int>) = VariableAddress[x] :
# 32| valnum = r0_7
# 32| r0_38(int) = Load : r0_37, m0_36
# 32| r0_38(int) = Load : &:r0_37, m0_36
# 32| valnum = r0_34
# 32| r0_39(glval<int>) = VariableAddress[y] :
# 32| valnum = r0_9
# 32| m0_40(int) = Store : r0_39, r0_38
# 32| m0_40(int) = Store : &:r0_39, r0_38
# 32| valnum = r0_34
# 33| v0_41(void) = NoOp :
# 25| r0_42(glval<int>) = VariableAddress[#return] :
# 25| valnum = unique
# 25| v0_43(void) = ReturnValue : r0_42
# 25| v0_43(void) = ReturnValue : &:r0_42
# 25| v0_44(void) = UnmodeledUse : mu*
# 25| v0_45(void) = ExitFunction :
@@ -249,90 +249,90 @@ test.cpp:
# 39| valnum = unique
# 39| r0_3(glval<int>) = VariableAddress[p0] :
# 39| valnum = r0_3
# 39| m0_4(int) = InitializeParameter[p0] : r0_3
# 39| m0_4(int) = InitializeParameter[p0] : &:r0_3
# 39| valnum = m0_4
# 39| r0_5(glval<int>) = VariableAddress[p1] :
# 39| valnum = r0_5
# 39| m0_6(int) = InitializeParameter[p1] : r0_5
# 39| m0_6(int) = InitializeParameter[p1] : &:r0_5
# 39| valnum = m0_6
# 39| r0_7(glval<int *>) = VariableAddress[p2] :
# 39| valnum = r0_7
# 39| m0_8(int *) = InitializeParameter[p2] : r0_7
# 39| m0_8(int *) = InitializeParameter[p2] : &:r0_7
# 39| valnum = m0_8
# 40| r0_9(glval<int>) = VariableAddress[x] :
# 40| valnum = r0_9
# 40| m0_10(int) = Uninitialized[x] : r0_9
# 40| m0_10(int) = Uninitialized[x] : &:r0_9
# 40| valnum = unique
# 40| r0_11(glval<int>) = VariableAddress[y] :
# 40| valnum = r0_11
# 40| m0_12(int) = Uninitialized[y] : r0_11
# 40| m0_12(int) = Uninitialized[y] : &:r0_11
# 40| valnum = unique
# 41| r0_13(glval<unsigned char>) = VariableAddress[b] :
# 41| valnum = unique
# 41| m0_14(unsigned char) = Uninitialized[b] : r0_13
# 41| m0_14(unsigned char) = Uninitialized[b] : &:r0_13
# 41| valnum = unique
# 43| r0_15(glval<int>) = VariableAddress[p0] :
# 43| valnum = r0_3
# 43| r0_16(int) = Load : r0_15, m0_4
# 43| r0_16(int) = Load : &:r0_15, m0_4
# 43| valnum = m0_4
# 43| r0_17(glval<int>) = VariableAddress[p1] :
# 43| valnum = r0_5
# 43| r0_18(int) = Load : r0_17, m0_6
# 43| r0_18(int) = Load : &:r0_17, m0_6
# 43| valnum = m0_6
# 43| r0_19(int) = Add : r0_16, r0_18
# 43| valnum = r0_19
# 43| r0_20(glval<int>) = VariableAddress[global03] :
# 43| valnum = r0_20
# 43| r0_21(int) = Load : r0_20, m0_1
# 43| r0_21(int) = Load : &:r0_20, m0_1
# 43| valnum = unique
# 43| r0_22(int) = Add : r0_19, r0_21
# 43| valnum = r0_22
# 43| r0_23(glval<int>) = VariableAddress[x] :
# 43| valnum = r0_9
# 43| m0_24(int) = Store : r0_23, r0_22
# 43| m0_24(int) = Store : &:r0_23, r0_22
# 43| valnum = r0_22
# 44| r0_25(int) = Constant[0] :
# 44| valnum = r0_25
# 44| r0_26(glval<int *>) = VariableAddress[p2] :
# 44| valnum = r0_7
# 44| r0_27(int *) = Load : r0_26, m0_8
# 44| r0_27(int *) = Load : &:r0_26, m0_8
# 44| valnum = m0_8
# 44| m0_28(int) = Store : r0_27, r0_25
# 44| m0_28(int) = Store : &:r0_27, r0_25
# 44| valnum = r0_25
# 44| m0_29(unknown) = Chi : m0_1, m0_28
# 44| m0_29(unknown) = Chi : total:m0_1, partial:m0_28
# 44| valnum = unique
# 45| r0_30(glval<int>) = VariableAddress[p0] :
# 45| valnum = r0_3
# 45| r0_31(int) = Load : r0_30, m0_4
# 45| r0_31(int) = Load : &:r0_30, m0_4
# 45| valnum = m0_4
# 45| r0_32(glval<int>) = VariableAddress[p1] :
# 45| valnum = r0_5
# 45| r0_33(int) = Load : r0_32, m0_6
# 45| r0_33(int) = Load : &:r0_32, m0_6
# 45| valnum = m0_6
# 45| r0_34(int) = Add : r0_31, r0_33
# 45| valnum = r0_19
# 45| r0_35(glval<int>) = VariableAddress[global03] :
# 45| valnum = r0_20
# 45| r0_36(int) = Load : r0_35, m0_29
# 45| r0_36(int) = Load : &:r0_35, m0_29
# 45| valnum = unique
# 45| r0_37(int) = Add : r0_34, r0_36
# 45| valnum = r0_37
# 45| r0_38(glval<int>) = VariableAddress[x] :
# 45| valnum = r0_9
# 45| m0_39(int) = Store : r0_38, r0_37
# 45| m0_39(int) = Store : &:r0_38, r0_37
# 45| valnum = r0_37
# 46| r0_40(glval<int>) = VariableAddress[x] :
# 46| valnum = r0_9
# 46| r0_41(int) = Load : r0_40, m0_39
# 46| r0_41(int) = Load : &:r0_40, m0_39
# 46| valnum = r0_37
# 46| r0_42(glval<int>) = VariableAddress[y] :
# 46| valnum = r0_11
# 46| m0_43(int) = Store : r0_42, r0_41
# 46| m0_43(int) = Store : &:r0_42, r0_41
# 46| valnum = r0_37
# 47| v0_44(void) = NoOp :
# 39| r0_45(glval<int>) = VariableAddress[#return] :
# 39| valnum = unique
# 39| v0_46(void) = ReturnValue : r0_45
# 39| v0_46(void) = ReturnValue : &:r0_45
# 39| v0_47(void) = UnmodeledUse : mu*
# 39| v0_48(void) = ExitFunction :
@@ -345,21 +345,21 @@ test.cpp:
# 49| valnum = unique
# 49| r0_3(glval<char *>) = VariableAddress[str] :
# 49| valnum = r0_3
# 49| m0_4(char *) = InitializeParameter[str] : r0_3
# 49| m0_4(char *) = InitializeParameter[str] : &:r0_3
# 49| valnum = m0_4
# 49| r0_5(glval<char *>) = VariableAddress[chars] :
# 49| valnum = r0_5
# 49| m0_6(char *) = InitializeParameter[chars] : r0_5
# 49| m0_6(char *) = InitializeParameter[chars] : &:r0_5
# 49| valnum = m0_6
# 50| r0_7(glval<char *>) = VariableAddress[ptr] :
# 50| valnum = r0_7
# 50| m0_8(char *) = Uninitialized[ptr] : r0_7
# 50| m0_8(char *) = Uninitialized[ptr] : &:r0_7
# 50| valnum = unique
# 51| r0_9(glval<unsigned int>) = VariableAddress[result] :
# 51| valnum = r0_9
# 51| r0_10(unsigned int) = Constant[0] :
# 51| valnum = r0_10
# 51| m0_11(unsigned int) = Store : r0_9, r0_10
# 51| m0_11(unsigned int) = Store : &:r0_9, r0_10
# 51| valnum = r0_10
#-----| Goto -> Block 1
@@ -368,9 +368,9 @@ test.cpp:
# 53| valnum = m1_0
# 53| r1_1(glval<char *>) = VariableAddress[str] :
# 53| valnum = r0_3
# 53| r1_2(char *) = Load : r1_1, m0_4
# 53| r1_2(char *) = Load : &:r1_1, m0_4
# 53| valnum = m0_4
# 53| r1_3(char) = Load : r1_2, m0_1
# 53| r1_3(char) = Load : &:r1_2, m0_1
# 53| valnum = unique
# 53| r1_4(int) = Convert : r1_3
# 53| valnum = unique
@@ -385,11 +385,11 @@ test.cpp:
# 55| Block 2
# 55| r2_0(glval<char *>) = VariableAddress[chars] :
# 55| valnum = r0_5
# 55| r2_1(char *) = Load : r2_0, m0_6
# 55| r2_1(char *) = Load : &:r2_0, m0_6
# 55| valnum = m0_6
# 55| r2_2(glval<char *>) = VariableAddress[ptr] :
# 55| valnum = r0_7
# 55| m2_3(char *) = Store : r2_2, r2_1
# 55| m2_3(char *) = Store : &:r2_2, r2_1
# 55| valnum = m0_6
#-----| Goto -> Block 3
@@ -398,17 +398,17 @@ test.cpp:
# 56| valnum = m3_0
# 56| r3_1(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| r3_2(char *) = Load : r3_1, m3_0
# 56| r3_2(char *) = Load : &:r3_1, m3_0
# 56| valnum = m3_0
# 56| r3_3(char) = Load : r3_2, m0_1
# 56| r3_3(char) = Load : &:r3_2, m0_1
# 56| valnum = unique
# 56| r3_4(int) = Convert : r3_3
# 56| valnum = unique
# 56| r3_5(glval<char *>) = VariableAddress[str] :
# 56| valnum = r0_3
# 56| r3_6(char *) = Load : r3_5, m0_4
# 56| r3_6(char *) = Load : &:r3_5, m0_4
# 56| valnum = m0_4
# 56| r3_7(char) = Load : r3_6, m0_1
# 56| r3_7(char) = Load : &:r3_6, m0_1
# 56| valnum = unique
# 56| r3_8(int) = Convert : r3_7
# 56| valnum = unique
@@ -421,9 +421,9 @@ test.cpp:
# 56| Block 4
# 56| r4_0(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| r4_1(char *) = Load : r4_0, m3_0
# 56| r4_1(char *) = Load : &:r4_0, m3_0
# 56| valnum = m3_0
# 56| r4_2(char) = Load : r4_1, m0_1
# 56| r4_2(char) = Load : &:r4_1, m0_1
# 56| valnum = unique
# 56| r4_3(int) = Convert : r4_2
# 56| valnum = unique
@@ -438,22 +438,22 @@ test.cpp:
# 56| Block 5
# 56| r5_0(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r0_7
# 56| r5_1(char *) = Load : r5_0, m3_0
# 56| r5_1(char *) = Load : &:r5_0, m3_0
# 56| valnum = m3_0
# 56| r5_2(int) = Constant[1] :
# 56| valnum = unique
# 56| r5_3(char *) = PointerAdd[1] : r5_1, r5_2
# 56| valnum = r5_3
# 56| m5_4(char *) = Store : r5_0, r5_3
# 56| m5_4(char *) = Store : &:r5_0, r5_3
# 56| valnum = r5_3
#-----| Goto (back edge) -> Block 3
# 59| Block 6
# 59| r6_0(glval<char *>) = VariableAddress[ptr] :
# 59| valnum = r0_7
# 59| r6_1(char *) = Load : r6_0, m3_0
# 59| r6_1(char *) = Load : &:r6_0, m3_0
# 59| valnum = m3_0
# 59| r6_2(char) = Load : r6_1, m0_1
# 59| r6_2(char) = Load : &:r6_1, m0_1
# 59| valnum = unique
# 59| r6_3(int) = Convert : r6_2
# 59| valnum = unique
@@ -472,13 +472,13 @@ test.cpp:
# 62| Block 8
# 62| r8_0(glval<unsigned int>) = VariableAddress[result] :
# 62| valnum = r0_9
# 62| r8_1(unsigned int) = Load : r8_0, m1_0
# 62| r8_1(unsigned int) = Load : &:r8_0, m1_0
# 62| valnum = m1_0
# 62| r8_2(unsigned int) = Constant[1] :
# 62| valnum = unique
# 62| r8_3(unsigned int) = Add : r8_1, r8_2
# 62| valnum = r8_3
# 62| m8_4(unsigned int) = Store : r8_0, r8_3
# 62| m8_4(unsigned int) = Store : &:r8_0, r8_3
# 62| valnum = r8_3
#-----| Goto (back edge) -> Block 1
@@ -488,13 +488,13 @@ test.cpp:
# 65| valnum = r9_1
# 65| r9_2(glval<unsigned int>) = VariableAddress[result] :
# 65| valnum = r0_9
# 65| r9_3(unsigned int) = Load : r9_2, m1_0
# 65| r9_3(unsigned int) = Load : &:r9_2, m1_0
# 65| valnum = m1_0
# 65| m9_4(unsigned int) = Store : r9_1, r9_3
# 65| m9_4(unsigned int) = Store : &:r9_1, r9_3
# 65| valnum = m1_0
# 49| r9_5(glval<unsigned int>) = VariableAddress[#return] :
# 49| valnum = r9_1
# 49| v9_6(void) = ReturnValue : r9_5, m9_4
# 49| v9_6(void) = ReturnValue : &:r9_5, m9_4
# 49| v9_7(void) = UnmodeledUse : mu*
# 49| v9_8(void) = ExitFunction :
@@ -507,45 +507,45 @@ test.cpp:
# 75| valnum = unique
# 75| r0_3(glval<two_values *>) = VariableAddress[vals] :
# 75| valnum = r0_3
# 75| m0_4(two_values *) = InitializeParameter[vals] : r0_3
# 75| m0_4(two_values *) = InitializeParameter[vals] : &:r0_3
# 75| valnum = m0_4
# 77| r0_5(glval<signed short>) = VariableAddress[v] :
# 77| valnum = r0_5
# 77| r0_6(glval<unknown>) = FunctionAddress[getAValue] :
# 77| valnum = unique
# 77| r0_7(int) = Call : r0_6
# 77| r0_7(int) = Call : func:r0_6
# 77| valnum = unique
# 77| m0_8(unknown) = ^CallSideEffect : m0_1
# 77| valnum = unique
# 77| m0_9(unknown) = Chi : m0_1, m0_8
# 77| m0_9(unknown) = Chi : total:m0_1, partial:m0_8
# 77| valnum = unique
# 77| r0_10(signed short) = Convert : r0_7
# 77| valnum = r0_10
# 77| m0_11(signed short) = Store : r0_5, r0_10
# 77| m0_11(signed short) = Store : &:r0_5, r0_10
# 77| valnum = r0_10
# 79| r0_12(glval<signed short>) = VariableAddress[v] :
# 79| valnum = r0_5
# 79| r0_13(signed short) = Load : r0_12, m0_11
# 79| r0_13(signed short) = Load : &:r0_12, m0_11
# 79| valnum = r0_10
# 79| r0_14(int) = Convert : r0_13
# 79| valnum = unique
# 79| r0_15(glval<two_values *>) = VariableAddress[vals] :
# 79| valnum = r0_3
# 79| r0_16(two_values *) = Load : r0_15, m0_4
# 79| r0_16(two_values *) = Load : &:r0_15, m0_4
# 79| valnum = m0_4
# 79| r0_17(glval<signed short>) = FieldAddress[val1] : r0_16
# 79| valnum = unique
# 79| r0_18(signed short) = Load : r0_17, m0_9
# 79| r0_18(signed short) = Load : &:r0_17, m0_9
# 79| valnum = unique
# 79| r0_19(int) = Convert : r0_18
# 79| valnum = unique
# 79| r0_20(glval<two_values *>) = VariableAddress[vals] :
# 79| valnum = r0_3
# 79| r0_21(two_values *) = Load : r0_20, m0_4
# 79| r0_21(two_values *) = Load : &:r0_20, m0_4
# 79| valnum = m0_4
# 79| r0_22(glval<signed short>) = FieldAddress[val2] : r0_21
# 79| valnum = unique
# 79| r0_23(signed short) = Load : r0_22, m0_9
# 79| r0_23(signed short) = Load : &:r0_22, m0_9
# 79| valnum = unique
# 79| r0_24(int) = Convert : r0_23
# 79| valnum = unique
@@ -560,17 +560,17 @@ test.cpp:
# 80| Block 1
# 80| r1_0(glval<unknown>) = FunctionAddress[getAValue] :
# 80| valnum = unique
# 80| r1_1(int) = Call : r1_0
# 80| r1_1(int) = Call : func:r1_0
# 80| valnum = unique
# 80| m1_2(unknown) = ^CallSideEffect : m0_9
# 80| valnum = unique
# 80| m1_3(unknown) = Chi : m0_9, m1_2
# 80| m1_3(unknown) = Chi : total:m0_9, partial:m1_2
# 80| valnum = unique
# 80| r1_4(signed short) = Convert : r1_1
# 80| valnum = r1_4
# 80| r1_5(glval<signed short>) = VariableAddress[v] :
# 80| valnum = r0_5
# 80| m1_6(signed short) = Store : r1_5, r1_4
# 80| m1_6(signed short) = Store : &:r1_5, r1_4
# 80| valnum = r1_4
#-----| Goto -> Block 2
@@ -589,23 +589,23 @@ test.cpp:
# 84| valnum = unique
# 84| r0_3(glval<int>) = VariableAddress[x] :
# 84| valnum = r0_3
# 84| m0_4(int) = InitializeParameter[x] : r0_3
# 84| m0_4(int) = InitializeParameter[x] : &:r0_3
# 84| valnum = m0_4
# 84| r0_5(glval<int>) = VariableAddress[y] :
# 84| valnum = r0_5
# 84| m0_6(int) = InitializeParameter[y] : r0_5
# 84| m0_6(int) = InitializeParameter[y] : &:r0_5
# 84| valnum = m0_6
# 84| r0_7(glval<void *>) = VariableAddress[p] :
# 84| valnum = r0_7
# 84| m0_8(void *) = InitializeParameter[p] : r0_7
# 84| m0_8(void *) = InitializeParameter[p] : &:r0_7
# 84| valnum = m0_8
# 86| r0_9(glval<int>) = VariableAddress[v] :
# 86| valnum = r0_9
# 86| m0_10(int) = Uninitialized[v] : r0_9
# 86| m0_10(int) = Uninitialized[v] : &:r0_9
# 86| valnum = unique
# 88| r0_11(glval<void *>) = VariableAddress[p] :
# 88| valnum = r0_7
# 88| r0_12(void *) = Load : r0_11, m0_8
# 88| r0_12(void *) = Load : &:r0_11, m0_8
# 88| valnum = m0_8
# 88| r0_13(void *) = Constant[0] :
# 88| valnum = unique
@@ -618,22 +618,22 @@ test.cpp:
# 88| Block 1
# 88| r1_0(glval<int>) = VariableAddress[x] :
# 88| valnum = r0_3
# 88| r1_1(int) = Load : r1_0, m0_4
# 88| r1_1(int) = Load : &:r1_0, m0_4
# 88| valnum = m0_4
# 88| r1_2(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r1_2
# 88| m1_3(int) = Store : r1_2, r1_1
# 88| m1_3(int) = Store : &:r1_2, r1_1
# 88| valnum = m0_4
#-----| Goto -> Block 3
# 88| Block 2
# 88| r2_0(glval<int>) = VariableAddress[y] :
# 88| valnum = r0_5
# 88| r2_1(int) = Load : r2_0, m0_6
# 88| r2_1(int) = Load : &:r2_0, m0_6
# 88| valnum = m0_6
# 88| r2_2(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r1_2
# 88| m2_3(int) = Store : r2_2, r2_1
# 88| m2_3(int) = Store : &:r2_2, r2_1
# 88| valnum = m0_6
#-----| Goto -> Block 3
@@ -642,11 +642,11 @@ test.cpp:
# 88| valnum = m3_0
# 88| r3_1(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r1_2
# 88| r3_2(int) = Load : r3_1, m3_0
# 88| r3_2(int) = Load : &:r3_1, m3_0
# 88| valnum = m3_0
# 88| r3_3(glval<int>) = VariableAddress[v] :
# 88| valnum = r0_9
# 88| m3_4(int) = Store : r3_3, r3_2
# 88| m3_4(int) = Store : &:r3_3, r3_2
# 88| valnum = m3_0
# 89| v3_5(void) = NoOp :
# 84| v3_6(void) = ReturnVoid :
@@ -666,21 +666,21 @@ test.cpp:
# 92| valnum = r0_4
# 92| r0_5(glval<int>) = VariableAddress[x] :
# 92| valnum = r0_3
# 92| m0_6(int) = Store : r0_5, r0_4
# 92| m0_6(int) = Store : &:r0_5, r0_4
# 92| valnum = r0_4
# 92| m0_7(int) = Store : r0_3, r0_4
# 92| m0_7(int) = Store : &:r0_3, r0_4
# 92| valnum = r0_4
# 93| r0_8(glval<int>) = VariableAddress[#return] :
# 93| valnum = r0_8
# 93| r0_9(glval<int>) = VariableAddress[x] :
# 93| valnum = r0_3
# 93| r0_10(int) = Load : r0_9, m0_7
# 93| r0_10(int) = Load : &:r0_9, m0_7
# 93| valnum = r0_4
# 93| m0_11(int) = Store : r0_8, r0_10
# 93| m0_11(int) = Store : &:r0_8, r0_10
# 93| valnum = r0_4
# 91| r0_12(glval<int>) = VariableAddress[#return] :
# 91| valnum = r0_8
# 91| v0_13(void) = ReturnValue : r0_12, m0_11
# 91| v0_13(void) = ReturnValue : &:r0_12, m0_11
# 91| v0_14(void) = UnmodeledUse : mu*
# 91| v0_15(void) = ExitFunction :
@@ -693,55 +693,55 @@ test.cpp:
# 104| valnum = unique
# 104| r0_3(glval<Derived *>) = VariableAddress[pd] :
# 104| valnum = r0_3
# 104| m0_4(Derived *) = InitializeParameter[pd] : r0_3
# 104| m0_4(Derived *) = InitializeParameter[pd] : &:r0_3
# 104| valnum = m0_4
# 105| r0_5(glval<int>) = VariableAddress[x] :
# 105| valnum = unique
# 105| r0_6(glval<Derived *>) = VariableAddress[pd] :
# 105| valnum = r0_3
# 105| r0_7(Derived *) = Load : r0_6, m0_4
# 105| r0_7(Derived *) = Load : &:r0_6, m0_4
# 105| valnum = m0_4
# 105| r0_8(Base *) = ConvertToBase[Derived : Base] : r0_7
# 105| valnum = r0_8
# 105| r0_9(glval<int>) = FieldAddress[b] : r0_8
# 105| valnum = r0_9
# 105| r0_10(int) = Load : r0_9, m0_1
# 105| r0_10(int) = Load : &:r0_9, m0_1
# 105| valnum = r0_10
# 105| m0_11(int) = Store : r0_5, r0_10
# 105| m0_11(int) = Store : &:r0_5, r0_10
# 105| valnum = r0_10
# 106| r0_12(glval<Base *>) = VariableAddress[pb] :
# 106| valnum = r0_12
# 106| r0_13(glval<Derived *>) = VariableAddress[pd] :
# 106| valnum = r0_3
# 106| r0_14(Derived *) = Load : r0_13, m0_4
# 106| r0_14(Derived *) = Load : &:r0_13, m0_4
# 106| valnum = m0_4
# 106| r0_15(Base *) = ConvertToBase[Derived : Base] : r0_14
# 106| valnum = r0_8
# 106| m0_16(Base *) = Store : r0_12, r0_15
# 106| m0_16(Base *) = Store : &:r0_12, r0_15
# 106| valnum = r0_8
# 107| r0_17(glval<int>) = VariableAddress[y] :
# 107| valnum = r0_17
# 107| r0_18(glval<Base *>) = VariableAddress[pb] :
# 107| valnum = r0_12
# 107| r0_19(Base *) = Load : r0_18, m0_16
# 107| r0_19(Base *) = Load : &:r0_18, m0_16
# 107| valnum = r0_8
# 107| r0_20(glval<int>) = FieldAddress[b] : r0_19
# 107| valnum = r0_9
# 107| r0_21(int) = Load : r0_20, m0_1
# 107| r0_21(int) = Load : &:r0_20, m0_1
# 107| valnum = r0_21
# 107| m0_22(int) = Store : r0_17, r0_21
# 107| m0_22(int) = Store : &:r0_17, r0_21
# 107| valnum = r0_21
# 109| r0_23(glval<int>) = VariableAddress[#return] :
# 109| valnum = r0_23
# 109| r0_24(glval<int>) = VariableAddress[y] :
# 109| valnum = r0_17
# 109| r0_25(int) = Load : r0_24, m0_22
# 109| r0_25(int) = Load : &:r0_24, m0_22
# 109| valnum = r0_21
# 109| m0_26(int) = Store : r0_23, r0_25
# 109| m0_26(int) = Store : &:r0_23, r0_25
# 109| valnum = r0_21
# 104| r0_27(glval<int>) = VariableAddress[#return] :
# 104| valnum = r0_23
# 104| v0_28(void) = ReturnValue : r0_27, m0_26
# 104| v0_28(void) = ReturnValue : &:r0_27, m0_26
# 104| v0_29(void) = UnmodeledUse : mu*
# 104| v0_30(void) = ExitFunction :