mirror of
https://github.com/github/codeql.git
synced 2026-04-27 09:45:15 +02:00
849 lines
48 KiB
Plaintext
849 lines
48 KiB
Plaintext
ssa.cpp:
|
|
# 13| int ChiPhiNode(Point*, bool, bool)
|
|
# 13| Block 0
|
|
# 13| v0_0(void) = EnterFunction :
|
|
# 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| r0_5(glval<bool>) = VariableAddress[which1] :
|
|
# 13| m0_6(bool) = InitializeParameter[which1] : &:r0_5
|
|
# 13| r0_7(glval<bool>) = VariableAddress[which2] :
|
|
# 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| 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_2(glval<int>) = FieldAddress[x] : r1_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 : 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_2(glval<int>) = FieldAddress[y] : r2_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 : 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| 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_2(glval<int>) = FieldAddress[x] : r4_1
|
|
# 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 : 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_2(glval<int>) = FieldAddress[y] : r5_1
|
|
# 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 : 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_4(glval<int>) = FieldAddress[x] : r6_3
|
|
# 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_8(glval<int>) = FieldAddress[y] : r6_7
|
|
# 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
|
|
# 13| r6_12(glval<int>) = VariableAddress[#return] :
|
|
# 13| v6_13(void) = ReturnValue : &:r6_12, m6_11
|
|
# 13| v6_14(void) = UnmodeledUse : mu*
|
|
# 13| v6_15(void) = ExitFunction :
|
|
|
|
# 31| int UnreachableViaGoto()
|
|
# 31| Block 0
|
|
# 31| v0_0(void) = EnterFunction :
|
|
# 31| m0_1(unknown) = AliasedDefinition :
|
|
# 31| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 32| v0_3(void) = NoOp :
|
|
# 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
|
|
# 31| r0_8(glval<int>) = VariableAddress[#return] :
|
|
# 31| v0_9(void) = ReturnValue : &:r0_8, m0_7
|
|
# 31| v0_10(void) = UnmodeledUse : mu*
|
|
# 31| v0_11(void) = ExitFunction :
|
|
|
|
# 38| int UnreachableIf(bool)
|
|
# 38| Block 0
|
|
# 38| v0_0(void) = EnterFunction :
|
|
# 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
|
|
# 39| r0_5(glval<int>) = VariableAddress[x] :
|
|
# 39| r0_6(int) = Constant[5] :
|
|
# 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
|
|
# 41| r0_11(glval<bool>) = VariableAddress[b] :
|
|
# 41| r0_12(bool) = Load : &:r0_11, m0_4
|
|
# 41| v0_13(void) = ConditionalBranch : r0_12
|
|
#-----| False -> Block 4
|
|
#-----| True -> Block 2
|
|
|
|
# 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_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_2(glval<int>) = VariableAddress[y] :
|
|
# 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
|
|
#-----| True -> Block 6
|
|
|
|
# 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
|
|
#-----| Goto -> Block 1
|
|
|
|
# 50| Block 4
|
|
# 50| r4_0(glval<int>) = VariableAddress[x] :
|
|
# 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_4(bool) = CompareLT : r4_1, r4_3
|
|
# 50| v4_5(void) = ConditionalBranch : r4_4
|
|
#-----| False -> Block 6
|
|
#-----| True -> Block 5
|
|
|
|
# 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
|
|
#-----| Goto -> Block 1
|
|
|
|
# 38| Block 6
|
|
# 38| v6_0(void) = Unreached :
|
|
|
|
# 59| int DoWhileFalse()
|
|
# 59| Block 0
|
|
# 59| v0_0(void) = EnterFunction :
|
|
# 59| m0_1(unknown) = AliasedDefinition :
|
|
# 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
|
|
# 62| r0_6(glval<int>) = VariableAddress[i] :
|
|
# 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
|
|
# 63| r0_11(bool) = Constant[0] :
|
|
# 63| v0_12(void) = ConditionalBranch : r0_11
|
|
#-----| False -> Block 1
|
|
#-----| True -> Block 2
|
|
|
|
# 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
|
|
# 59| r1_4(glval<int>) = VariableAddress[#return] :
|
|
# 59| v1_5(void) = ReturnValue : &:r1_4, m1_3
|
|
# 59| v1_6(void) = UnmodeledUse : mu*
|
|
# 59| v1_7(void) = ExitFunction :
|
|
|
|
# 59| Block 2
|
|
# 59| v2_0(void) = Unreached :
|
|
|
|
# 68| void chiNodeAtEndOfLoop(int, char*)
|
|
# 68| Block 0
|
|
# 68| v0_0(void) = EnterFunction :
|
|
# 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| r0_5(glval<char *>) = VariableAddress[p] :
|
|
# 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_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 : total:m3_0, partial:m1_6
|
|
#-----| Goto (back edge) -> Block 3
|
|
|
|
# 71| Block 2
|
|
# 71| v2_0(void) = NoOp :
|
|
# 68| v2_1(void) = ReturnVoid :
|
|
# 68| v2_2(void) = UnmodeledUse : mu*
|
|
# 68| v2_3(void) = ExitFunction :
|
|
|
|
# 69| Block 3
|
|
# 69| m3_0(unknown) = Phi : from 0:~m0_1, from 1:~m1_7
|
|
# 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_5(int) = Constant[1] :
|
|
# 69| r3_6(int) = Sub : r3_4, r3_5
|
|
# 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
|
|
#-----| False -> Block 2
|
|
#-----| True -> Block 1
|
|
|
|
# 75| void ScalarPhi(bool)
|
|
# 75| Block 0
|
|
# 75| v0_0(void) = EnterFunction :
|
|
# 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
|
|
# 76| r0_5(glval<int>) = VariableAddress[x] :
|
|
# 76| r0_6(int) = Constant[0] :
|
|
# 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
|
|
# 78| r0_11(glval<int>) = VariableAddress[z] :
|
|
# 78| r0_12(int) = Constant[2] :
|
|
# 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| v0_16(void) = ConditionalBranch : r0_15
|
|
#-----| False -> Block 2
|
|
#-----| True -> Block 1
|
|
|
|
# 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
|
|
# 81| r1_3(int) = Constant[4] :
|
|
# 81| r1_4(glval<int>) = VariableAddress[y] :
|
|
# 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
|
|
#-----| Goto -> Block 3
|
|
|
|
# 86| Block 3
|
|
# 86| m3_0(int) = Phi : from 1:m1_2, from 2:m2_2
|
|
# 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
|
|
# 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
|
|
# 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
|
|
# 89| v3_14(void) = NoOp :
|
|
# 75| v3_15(void) = ReturnVoid :
|
|
# 75| v3_16(void) = UnmodeledUse : mu*
|
|
# 75| v3_17(void) = ExitFunction :
|
|
|
|
# 91| void MustExactlyOverlap(Point)
|
|
# 91| Block 0
|
|
# 91| v0_0(void) = EnterFunction :
|
|
# 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
|
|
# 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
|
|
# 93| v0_9(void) = NoOp :
|
|
# 91| v0_10(void) = ReturnVoid :
|
|
# 91| v0_11(void) = UnmodeledUse : mu*
|
|
# 91| v0_12(void) = ExitFunction :
|
|
|
|
# 95| void MustExactlyOverlapEscaped(Point)
|
|
# 95| Block 0
|
|
# 95| v0_0(void) = EnterFunction :
|
|
# 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 : 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_4
|
|
# 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 : func:r0_10, 0:r0_12
|
|
# 97| m0_14(unknown) = ^CallSideEffect : ~m0_5
|
|
# 97| m0_15(unknown) = Chi : total:m0_5, partial:m0_14
|
|
# 97| v0_16(void) = ^IndirectReadSideEffect[0] : &:r0_12, ~m0_15
|
|
# 97| m0_17(unknown) = ^BufferMayWriteSideEffect[0] : &:r0_12
|
|
# 97| m0_18(unknown) = Chi : total:m0_15, partial:m0_17
|
|
# 98| v0_19(void) = NoOp :
|
|
# 95| v0_20(void) = ReturnVoid :
|
|
# 95| v0_21(void) = UnmodeledUse : mu*
|
|
# 95| v0_22(void) = ExitFunction :
|
|
|
|
# 100| void MustTotallyOverlap(Point)
|
|
# 100| Block 0
|
|
# 100| v0_0(void) = EnterFunction :
|
|
# 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
|
|
# 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
|
|
# 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
|
|
# 103| v0_15(void) = NoOp :
|
|
# 100| v0_16(void) = ReturnVoid :
|
|
# 100| v0_17(void) = UnmodeledUse : mu*
|
|
# 100| v0_18(void) = ExitFunction :
|
|
|
|
# 105| void MustTotallyOverlapEscaped(Point)
|
|
# 105| Block 0
|
|
# 105| v0_0(void) = EnterFunction :
|
|
# 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 : 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_4
|
|
# 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_4
|
|
# 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 : func:r0_16, 0:r0_18
|
|
# 108| m0_20(unknown) = ^CallSideEffect : ~m0_5
|
|
# 108| m0_21(unknown) = Chi : total:m0_5, partial:m0_20
|
|
# 108| v0_22(void) = ^IndirectReadSideEffect[0] : &:r0_18, ~m0_21
|
|
# 108| m0_23(unknown) = ^BufferMayWriteSideEffect[0] : &:r0_18
|
|
# 108| m0_24(unknown) = Chi : total:m0_21, partial:m0_23
|
|
# 109| v0_25(void) = NoOp :
|
|
# 105| v0_26(void) = ReturnVoid :
|
|
# 105| v0_27(void) = UnmodeledUse : mu*
|
|
# 105| v0_28(void) = ExitFunction :
|
|
|
|
# 111| void MayPartiallyOverlap(int, int)
|
|
# 111| Block 0
|
|
# 111| v0_0(void) = EnterFunction :
|
|
# 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| r0_5(glval<int>) = VariableAddress[y] :
|
|
# 111| m0_6(int) = InitializeParameter[y] : &:r0_5
|
|
# 112| r0_7(glval<Point>) = VariableAddress[a] :
|
|
# 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 : 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 : 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
|
|
# 114| v0_23(void) = NoOp :
|
|
# 111| v0_24(void) = ReturnVoid :
|
|
# 111| v0_25(void) = UnmodeledUse : mu*
|
|
# 111| v0_26(void) = ExitFunction :
|
|
|
|
# 116| void MayPartiallyOverlapEscaped(int, int)
|
|
# 116| Block 0
|
|
# 116| v0_0(void) = EnterFunction :
|
|
# 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| r0_5(glval<int>) = VariableAddress[y] :
|
|
# 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 : 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 : 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 : 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
|
|
# 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 : func:r0_24, 0:r0_26
|
|
# 119| m0_28(unknown) = ^CallSideEffect : ~m0_19
|
|
# 119| m0_29(unknown) = Chi : total:m0_19, partial:m0_28
|
|
# 119| v0_30(void) = ^IndirectReadSideEffect[0] : &:r0_26, ~m0_29
|
|
# 119| m0_31(unknown) = ^BufferMayWriteSideEffect[0] : &:r0_26
|
|
# 119| m0_32(unknown) = Chi : total:m0_29, partial:m0_31
|
|
# 120| v0_33(void) = NoOp :
|
|
# 116| v0_34(void) = ReturnVoid :
|
|
# 116| v0_35(void) = UnmodeledUse : mu*
|
|
# 116| v0_36(void) = ExitFunction :
|
|
|
|
# 122| void MergeMustExactlyOverlap(bool, int, int)
|
|
# 122| Block 0
|
|
# 122| v0_0(void) = EnterFunction :
|
|
# 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| r0_5(glval<int>) = VariableAddress[x1] :
|
|
# 122| m0_6(int) = InitializeParameter[x1] : &:r0_5
|
|
# 122| r0_7(glval<int>) = VariableAddress[x2] :
|
|
# 122| m0_8(int) = InitializeParameter[x2] : &:r0_7
|
|
# 123| r0_9(glval<Point>) = VariableAddress[a] :
|
|
# 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 : 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 : total:m0_14, partial:m0_17
|
|
# 124| r0_19(glval<bool>) = VariableAddress[c] :
|
|
# 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_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 : 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_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 : total:m0_18, partial:m2_4
|
|
#-----| Goto -> Block 3
|
|
|
|
# 130| Block 3
|
|
# 130| m3_0(Point) = Phi : from 1:~m1_5, from 2:~m2_5
|
|
# 130| m3_1(int) = Phi : from 1:m1_4, from 2:m2_4
|
|
# 130| r3_2(glval<int>) = VariableAddress[x] :
|
|
# 130| r3_3(glval<Point>) = VariableAddress[a] :
|
|
# 130| r3_4(glval<int>) = FieldAddress[x] : r3_3
|
|
# 130| r3_5(int) = Load : &:r3_4, m3_1
|
|
# 130| m3_6(int) = Store : &:r3_2, r3_5
|
|
# 131| r3_7(glval<Point>) = VariableAddress[b] :
|
|
# 131| r3_8(glval<Point>) = VariableAddress[a] :
|
|
# 131| r3_9(Point) = Load : &:r3_8, m3_0
|
|
# 131| m3_10(Point) = Store : &:r3_7, r3_9
|
|
# 132| v3_11(void) = NoOp :
|
|
# 122| v3_12(void) = ReturnVoid :
|
|
# 122| v3_13(void) = UnmodeledUse : mu*
|
|
# 122| v3_14(void) = ExitFunction :
|
|
|
|
# 134| void MergeMustExactlyWithMustTotallyOverlap(bool, Point, int)
|
|
# 134| Block 0
|
|
# 134| v0_0(void) = EnterFunction :
|
|
# 134| m0_1(unknown) = AliasedDefinition :
|
|
# 134| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 134| r0_3(glval<bool>) = VariableAddress[c] :
|
|
# 134| m0_4(bool) = InitializeParameter[c] : &:r0_3
|
|
# 134| r0_5(glval<Point>) = VariableAddress[p] :
|
|
# 134| m0_6(Point) = InitializeParameter[p] : &:r0_5
|
|
# 134| r0_7(glval<int>) = VariableAddress[x1] :
|
|
# 134| m0_8(int) = InitializeParameter[x1] : &:r0_7
|
|
# 135| r0_9(glval<Point>) = VariableAddress[a] :
|
|
# 135| m0_10(Point) = Uninitialized[a] : &:r0_9
|
|
# 135| r0_11(glval<int>) = FieldAddress[x] : r0_9
|
|
# 135| r0_12(int) = Constant[0] :
|
|
# 135| m0_13(int) = Store : &:r0_11, r0_12
|
|
# 135| m0_14(Point) = Chi : total:m0_10, partial:m0_13
|
|
# 135| r0_15(glval<int>) = FieldAddress[y] : r0_9
|
|
# 135| r0_16(int) = Constant[0] :
|
|
# 135| m0_17(int) = Store : &:r0_15, r0_16
|
|
# 135| m0_18(Point) = Chi : total:m0_14, partial:m0_17
|
|
# 136| r0_19(glval<bool>) = VariableAddress[c] :
|
|
# 136| r0_20(bool) = Load : &:r0_19, m0_4
|
|
# 136| v0_21(void) = ConditionalBranch : r0_20
|
|
#-----| False -> Block 2
|
|
#-----| True -> Block 1
|
|
|
|
# 137| Block 1
|
|
# 137| r1_0(glval<int>) = VariableAddress[x1] :
|
|
# 137| r1_1(int) = Load : &:r1_0, m0_8
|
|
# 137| r1_2(glval<Point>) = VariableAddress[a] :
|
|
# 137| r1_3(glval<int>) = FieldAddress[x] : r1_2
|
|
# 137| m1_4(int) = Store : &:r1_3, r1_1
|
|
# 137| m1_5(Point) = Chi : total:m0_18, partial:m1_4
|
|
#-----| Goto -> Block 3
|
|
|
|
# 140| Block 2
|
|
# 140| r2_0(glval<Point>) = VariableAddress[p] :
|
|
# 140| r2_1(Point) = Load : &:r2_0, m0_6
|
|
# 140| r2_2(glval<Point>) = VariableAddress[a] :
|
|
# 140| m2_3(Point) = Store : &:r2_2, r2_1
|
|
#-----| Goto -> Block 3
|
|
|
|
# 142| Block 3
|
|
# 142| m3_0(Point) = Phi : from 1:~m1_5, from 2:m2_3
|
|
# 142| m3_1(int) = Phi : from 1:m1_4, from 2:~m2_3
|
|
# 142| r3_2(glval<int>) = VariableAddress[x] :
|
|
# 142| r3_3(glval<Point>) = VariableAddress[a] :
|
|
# 142| r3_4(glval<int>) = FieldAddress[x] : r3_3
|
|
# 142| r3_5(int) = Load : &:r3_4, m3_1
|
|
# 142| m3_6(int) = Store : &:r3_2, r3_5
|
|
# 143| v3_7(void) = NoOp :
|
|
# 134| v3_8(void) = ReturnVoid :
|
|
# 134| v3_9(void) = UnmodeledUse : mu*
|
|
# 134| v3_10(void) = ExitFunction :
|
|
|
|
# 145| void MergeMustExactlyWithMayPartiallyOverlap(bool, Point, int)
|
|
# 145| Block 0
|
|
# 145| v0_0(void) = EnterFunction :
|
|
# 145| m0_1(unknown) = AliasedDefinition :
|
|
# 145| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 145| r0_3(glval<bool>) = VariableAddress[c] :
|
|
# 145| m0_4(bool) = InitializeParameter[c] : &:r0_3
|
|
# 145| r0_5(glval<Point>) = VariableAddress[p] :
|
|
# 145| m0_6(Point) = InitializeParameter[p] : &:r0_5
|
|
# 145| r0_7(glval<int>) = VariableAddress[x1] :
|
|
# 145| m0_8(int) = InitializeParameter[x1] : &:r0_7
|
|
# 146| r0_9(glval<Point>) = VariableAddress[a] :
|
|
# 146| m0_10(Point) = Uninitialized[a] : &:r0_9
|
|
# 146| r0_11(glval<int>) = FieldAddress[x] : r0_9
|
|
# 146| r0_12(int) = Constant[0] :
|
|
# 146| m0_13(int) = Store : &:r0_11, r0_12
|
|
# 146| m0_14(Point) = Chi : total:m0_10, partial:m0_13
|
|
# 146| r0_15(glval<int>) = FieldAddress[y] : r0_9
|
|
# 146| r0_16(int) = Constant[0] :
|
|
# 146| m0_17(int) = Store : &:r0_15, r0_16
|
|
# 146| m0_18(Point) = Chi : total:m0_14, partial:m0_17
|
|
# 147| r0_19(glval<bool>) = VariableAddress[c] :
|
|
# 147| r0_20(bool) = Load : &:r0_19, m0_4
|
|
# 147| v0_21(void) = ConditionalBranch : r0_20
|
|
#-----| False -> Block 2
|
|
#-----| True -> Block 1
|
|
|
|
# 148| Block 1
|
|
# 148| r1_0(glval<int>) = VariableAddress[x1] :
|
|
# 148| r1_1(int) = Load : &:r1_0, m0_8
|
|
# 148| r1_2(glval<Point>) = VariableAddress[a] :
|
|
# 148| r1_3(glval<int>) = FieldAddress[x] : r1_2
|
|
# 148| m1_4(int) = Store : &:r1_3, r1_1
|
|
# 148| m1_5(Point) = Chi : total:m0_18, partial:m1_4
|
|
#-----| Goto -> Block 3
|
|
|
|
# 151| Block 2
|
|
# 151| r2_0(glval<Point>) = VariableAddress[p] :
|
|
# 151| r2_1(Point) = Load : &:r2_0, m0_6
|
|
# 151| r2_2(glval<Point>) = VariableAddress[a] :
|
|
# 151| m2_3(Point) = Store : &:r2_2, r2_1
|
|
#-----| Goto -> Block 3
|
|
|
|
# 153| Block 3
|
|
# 153| m3_0(Point) = Phi : from 1:~m1_5, from 2:m2_3
|
|
# 153| r3_1(glval<Point>) = VariableAddress[b] :
|
|
# 153| r3_2(glval<Point>) = VariableAddress[a] :
|
|
# 153| r3_3(Point) = Load : &:r3_2, m3_0
|
|
# 153| m3_4(Point) = Store : &:r3_1, r3_3
|
|
# 154| v3_5(void) = NoOp :
|
|
# 145| v3_6(void) = ReturnVoid :
|
|
# 145| v3_7(void) = UnmodeledUse : mu*
|
|
# 145| v3_8(void) = ExitFunction :
|
|
|
|
# 156| void MergeMustTotallyOverlapWithMayPartiallyOverlap(bool, Rect, int)
|
|
# 156| Block 0
|
|
# 156| v0_0(void) = EnterFunction :
|
|
# 156| m0_1(unknown) = AliasedDefinition :
|
|
# 156| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 156| r0_3(glval<bool>) = VariableAddress[c] :
|
|
# 156| m0_4(bool) = InitializeParameter[c] : &:r0_3
|
|
# 156| r0_5(glval<Rect>) = VariableAddress[r] :
|
|
# 156| m0_6(Rect) = InitializeParameter[r] : &:r0_5
|
|
# 156| r0_7(glval<int>) = VariableAddress[x1] :
|
|
# 156| m0_8(int) = InitializeParameter[x1] : &:r0_7
|
|
# 157| r0_9(glval<Rect>) = VariableAddress[a] :
|
|
# 157| m0_10(Rect) = Uninitialized[a] : &:r0_9
|
|
# 157| r0_11(glval<Point>) = FieldAddress[topLeft] : r0_9
|
|
# 157| r0_12(Point) = Constant[0] :
|
|
# 157| m0_13(Point) = Store : &:r0_11, r0_12
|
|
# 157| m0_14(Rect) = Chi : total:m0_10, partial:m0_13
|
|
# 157| r0_15(glval<Point>) = FieldAddress[bottomRight] : r0_9
|
|
# 157| r0_16(Point) = Constant[0] :
|
|
# 157| m0_17(Point) = Store : &:r0_15, r0_16
|
|
# 157| m0_18(Rect) = Chi : total:m0_14, partial:m0_17
|
|
# 158| r0_19(glval<bool>) = VariableAddress[c] :
|
|
# 158| r0_20(bool) = Load : &:r0_19, m0_4
|
|
# 158| v0_21(void) = ConditionalBranch : r0_20
|
|
#-----| False -> Block 2
|
|
#-----| True -> Block 1
|
|
|
|
# 159| Block 1
|
|
# 159| r1_0(glval<int>) = VariableAddress[x1] :
|
|
# 159| r1_1(int) = Load : &:r1_0, m0_8
|
|
# 159| r1_2(glval<Rect>) = VariableAddress[a] :
|
|
# 159| r1_3(glval<Point>) = FieldAddress[topLeft] : r1_2
|
|
# 159| r1_4(glval<int>) = FieldAddress[x] : r1_3
|
|
# 159| m1_5(int) = Store : &:r1_4, r1_1
|
|
# 159| m1_6(Rect) = Chi : total:m0_18, partial:m1_5
|
|
#-----| Goto -> Block 3
|
|
|
|
# 162| Block 2
|
|
# 162| r2_0(glval<Rect>) = VariableAddress[r] :
|
|
# 162| r2_1(Rect) = Load : &:r2_0, m0_6
|
|
# 162| r2_2(glval<Rect>) = VariableAddress[a] :
|
|
# 162| m2_3(Rect) = Store : &:r2_2, r2_1
|
|
#-----| Goto -> Block 3
|
|
|
|
# 164| Block 3
|
|
# 164| m3_0(Rect) = Phi : from 1:~m1_6, from 2:m2_3
|
|
# 164| r3_1(glval<Point>) = VariableAddress[b] :
|
|
# 164| r3_2(glval<Rect>) = VariableAddress[a] :
|
|
# 164| r3_3(glval<Point>) = FieldAddress[topLeft] : r3_2
|
|
# 164| r3_4(Point) = Load : &:r3_3, ~m3_0
|
|
# 164| m3_5(Point) = Store : &:r3_1, r3_4
|
|
# 165| v3_6(void) = NoOp :
|
|
# 156| v3_7(void) = ReturnVoid :
|
|
# 156| v3_8(void) = UnmodeledUse : mu*
|
|
# 156| v3_9(void) = ExitFunction :
|
|
|
|
# 171| void WrapperStruct(Wrapper)
|
|
# 171| Block 0
|
|
# 171| v0_0(void) = EnterFunction :
|
|
# 171| m0_1(unknown) = AliasedDefinition :
|
|
# 171| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 171| r0_3(glval<Wrapper>) = VariableAddress[w] :
|
|
# 171| m0_4(Wrapper) = InitializeParameter[w] : &:r0_3
|
|
# 172| r0_5(glval<Wrapper>) = VariableAddress[x] :
|
|
# 172| r0_6(glval<Wrapper>) = VariableAddress[w] :
|
|
# 172| r0_7(Wrapper) = Load : &:r0_6, m0_4
|
|
# 172| m0_8(Wrapper) = Store : &:r0_5, r0_7
|
|
# 173| r0_9(glval<int>) = VariableAddress[a] :
|
|
# 173| r0_10(glval<Wrapper>) = VariableAddress[w] :
|
|
# 173| r0_11(glval<int>) = FieldAddress[f] : r0_10
|
|
# 173| r0_12(int) = Load : &:r0_11, ~m0_4
|
|
# 173| m0_13(int) = Store : &:r0_9, r0_12
|
|
# 174| r0_14(int) = Constant[5] :
|
|
# 174| r0_15(glval<Wrapper>) = VariableAddress[w] :
|
|
# 174| r0_16(glval<int>) = FieldAddress[f] : r0_15
|
|
# 174| m0_17(int) = Store : &:r0_16, r0_14
|
|
# 175| r0_18(glval<Wrapper>) = VariableAddress[w] :
|
|
# 175| r0_19(glval<int>) = FieldAddress[f] : r0_18
|
|
# 175| r0_20(int) = Load : &:r0_19, m0_17
|
|
# 175| r0_21(glval<int>) = VariableAddress[a] :
|
|
# 175| m0_22(int) = Store : &:r0_21, r0_20
|
|
# 176| r0_23(glval<Wrapper>) = VariableAddress[w] :
|
|
# 176| r0_24(Wrapper) = Load : &:r0_23, ~m0_17
|
|
# 176| r0_25(glval<Wrapper>) = VariableAddress[x] :
|
|
# 176| m0_26(Wrapper) = Store : &:r0_25, r0_24
|
|
# 177| v0_27(void) = NoOp :
|
|
# 171| v0_28(void) = ReturnVoid :
|
|
# 171| v0_29(void) = UnmodeledUse : mu*
|
|
# 171| v0_30(void) = ExitFunction :
|
|
|
|
# 179| int AsmStmt(int*)
|
|
# 179| Block 0
|
|
# 179| v0_0(void) = EnterFunction :
|
|
# 179| m0_1(unknown) = AliasedDefinition :
|
|
# 179| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 179| r0_3(glval<int *>) = VariableAddress[p] :
|
|
# 179| m0_4(int *) = InitializeParameter[p] : &:r0_3
|
|
# 180| m0_5(unknown) = InlineAsm : ~mu0_2
|
|
# 180| m0_6(unknown) = Chi : total:m0_1, partial:m0_5
|
|
# 181| r0_7(glval<int>) = VariableAddress[#return] :
|
|
# 181| r0_8(glval<int *>) = VariableAddress[p] :
|
|
# 181| r0_9(int *) = Load : &:r0_8, m0_4
|
|
# 181| r0_10(int) = Load : &:r0_9, ~m0_6
|
|
# 181| m0_11(int) = Store : &:r0_7, r0_10
|
|
# 179| r0_12(glval<int>) = VariableAddress[#return] :
|
|
# 179| v0_13(void) = ReturnValue : &:r0_12, m0_11
|
|
# 179| v0_14(void) = UnmodeledUse : mu*
|
|
# 179| v0_15(void) = ExitFunction :
|
|
|
|
# 184| void AsmStmtWithOutputs(unsigned int&, unsigned int&, unsigned int&, unsigned int&)
|
|
# 184| Block 0
|
|
# 184| v0_0(void) = EnterFunction :
|
|
# 184| m0_1(unknown) = AliasedDefinition :
|
|
# 184| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 184| r0_3(glval<unsigned int &>) = VariableAddress[a] :
|
|
# 184| m0_4(unsigned int &) = InitializeParameter[a] : &:r0_3
|
|
# 184| m0_5(unknown) = Chi : total:m0_1, partial:m0_4
|
|
# 184| r0_6(glval<unsigned int &>) = VariableAddress[b] :
|
|
# 184| m0_7(unsigned int &) = InitializeParameter[b] : &:r0_6
|
|
# 184| m0_8(unknown) = Chi : total:m0_5, partial:m0_7
|
|
# 184| r0_9(glval<unsigned int &>) = VariableAddress[c] :
|
|
# 184| m0_10(unsigned int &) = InitializeParameter[c] : &:r0_9
|
|
# 184| m0_11(unknown) = Chi : total:m0_8, partial:m0_10
|
|
# 184| r0_12(glval<unsigned int &>) = VariableAddress[d] :
|
|
# 184| m0_13(unsigned int &) = InitializeParameter[d] : &:r0_12
|
|
# 184| m0_14(unknown) = Chi : total:m0_11, partial:m0_13
|
|
# 186| r0_15(glval<unsigned int &>) = VariableAddress[a] :
|
|
# 186| r0_16(glval<unsigned int &>) = VariableAddress[b] :
|
|
# 186| r0_17(glval<unsigned int &>) = VariableAddress[c] :
|
|
# 186| r0_18(glval<unsigned int &>) = VariableAddress[d] :
|
|
# 186| m0_19(unknown) = InlineAsm : ~mu0_2, 0:r0_15, 1:r0_16, 2:r0_17, 3:r0_18
|
|
# 186| m0_20(unknown) = Chi : total:m0_14, partial:m0_19
|
|
# 192| v0_21(void) = NoOp :
|
|
# 184| v0_22(void) = ReturnVoid :
|
|
# 184| v0_23(void) = UnmodeledUse : mu*
|
|
# 184| v0_24(void) = ExitFunction :
|
|
|
|
# 198| int PureFunctions(char*, char*, int)
|
|
# 198| Block 0
|
|
# 198| v0_0(void) = EnterFunction :
|
|
# 198| m0_1(unknown) = AliasedDefinition :
|
|
# 198| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 198| r0_3(glval<char *>) = VariableAddress[str1] :
|
|
# 198| m0_4(char *) = InitializeParameter[str1] : &:r0_3
|
|
# 198| r0_5(glval<char *>) = VariableAddress[str2] :
|
|
# 198| m0_6(char *) = InitializeParameter[str2] : &:r0_5
|
|
# 198| r0_7(glval<int>) = VariableAddress[x] :
|
|
# 198| m0_8(int) = InitializeParameter[x] : &:r0_7
|
|
# 199| r0_9(glval<int>) = VariableAddress[ret] :
|
|
# 199| r0_10(glval<unknown>) = FunctionAddress[strcmp] :
|
|
# 199| r0_11(glval<char *>) = VariableAddress[str1] :
|
|
# 199| r0_12(char *) = Load : &:r0_11, m0_4
|
|
# 199| r0_13(char *) = Convert : r0_12
|
|
# 199| r0_14(glval<char *>) = VariableAddress[str2] :
|
|
# 199| r0_15(char *) = Load : &:r0_14, m0_6
|
|
# 199| r0_16(char *) = Convert : r0_15
|
|
# 199| r0_17(int) = Call : func:r0_10, 0:r0_13, 1:r0_16
|
|
# 199| v0_18(void) = ^CallReadSideEffect : ~m0_1
|
|
# 199| m0_19(int) = Store : &:r0_9, r0_17
|
|
# 200| r0_20(glval<unknown>) = FunctionAddress[strlen] :
|
|
# 200| r0_21(glval<char *>) = VariableAddress[str1] :
|
|
# 200| r0_22(char *) = Load : &:r0_21, m0_4
|
|
# 200| r0_23(char *) = Convert : r0_22
|
|
# 200| r0_24(int) = Call : func:r0_20, 0:r0_23
|
|
# 200| v0_25(void) = ^CallReadSideEffect : ~m0_1
|
|
# 200| r0_26(glval<int>) = VariableAddress[ret] :
|
|
# 200| r0_27(int) = Load : &:r0_26, m0_19
|
|
# 200| r0_28(int) = Add : r0_27, r0_24
|
|
# 200| m0_29(int) = Store : &:r0_26, r0_28
|
|
# 201| r0_30(glval<unknown>) = FunctionAddress[abs] :
|
|
# 201| r0_31(glval<int>) = VariableAddress[x] :
|
|
# 201| r0_32(int) = Load : &:r0_31, m0_8
|
|
# 201| r0_33(int) = Call : func:r0_30, 0:r0_32
|
|
# 201| r0_34(glval<int>) = VariableAddress[ret] :
|
|
# 201| r0_35(int) = Load : &:r0_34, m0_29
|
|
# 201| r0_36(int) = Add : r0_35, r0_33
|
|
# 201| m0_37(int) = Store : &:r0_34, r0_36
|
|
# 202| r0_38(glval<int>) = VariableAddress[#return] :
|
|
# 202| r0_39(glval<int>) = VariableAddress[ret] :
|
|
# 202| r0_40(int) = Load : &:r0_39, m0_37
|
|
# 202| m0_41(int) = Store : &:r0_38, r0_40
|
|
# 198| r0_42(glval<int>) = VariableAddress[#return] :
|
|
# 198| v0_43(void) = ReturnValue : &:r0_42, m0_41
|
|
# 198| v0_44(void) = UnmodeledUse : mu*
|
|
# 198| v0_45(void) = ExitFunction :
|
|
|
|
# 207| int ModeledCallTarget(int)
|
|
# 207| Block 0
|
|
# 207| v0_0(void) = EnterFunction :
|
|
# 207| m0_1(unknown) = AliasedDefinition :
|
|
# 207| mu0_2(unknown) = UnmodeledDefinition :
|
|
# 207| r0_3(glval<int>) = VariableAddress[x] :
|
|
# 207| m0_4(int) = InitializeParameter[x] : &:r0_3
|
|
# 207| m0_5(unknown) = Chi : total:m0_1, partial:m0_4
|
|
# 208| r0_6(glval<int>) = VariableAddress[y] :
|
|
# 208| m0_7(int) = Uninitialized[y] : &:r0_6
|
|
# 208| m0_8(unknown) = Chi : total:m0_5, partial:m0_7
|
|
# 209| r0_9(glval<unknown>) = FunctionAddress[memcpy] :
|
|
# 209| r0_10(glval<int>) = VariableAddress[y] :
|
|
# 209| r0_11(void *) = Convert : r0_10
|
|
# 209| r0_12(glval<int>) = VariableAddress[x] :
|
|
# 209| r0_13(void *) = Convert : r0_12
|
|
# 209| r0_14(int) = Constant[4] :
|
|
# 209| r0_15(void *) = Call : func:r0_9, 0:r0_11, 1:r0_13, 2:r0_14
|
|
# 209| v0_16(void) = ^SizedBufferReadSideEffect[1] : &:r0_13, r0_14, ~mu0_2
|
|
# 209| m0_17(unknown) = ^SizedBufferMustWriteSideEffect[0] : &:r0_11, r0_14
|
|
# 209| m0_18(unknown) = Chi : total:m0_8, partial:m0_17
|
|
# 210| r0_19(glval<int>) = VariableAddress[#return] :
|
|
# 210| r0_20(glval<int>) = VariableAddress[y] :
|
|
# 210| r0_21(int) = Load : &:r0_20, ~m0_18
|
|
# 210| m0_22(int) = Store : &:r0_19, r0_21
|
|
# 207| r0_23(glval<int>) = VariableAddress[#return] :
|
|
# 207| v0_24(void) = ReturnValue : &:r0_23, m0_22
|
|
# 207| v0_25(void) = UnmodeledUse : mu*
|
|
# 207| v0_26(void) = ExitFunction :
|