Files
codeql/cpp/ql/test/library-tests/valuenumbering/GlobalValueNumbering/ir_gvn.expected
Mathias Vorreiter Pedersen 4c3a26fea8 Revert "Merge pull request #4558 from rdmarsh2/rdmarsh2/cpp/remove-initialize-nonlocal"
This reverts commit 08efd7fbd9, reversing
changes made to cb8c5e8cca.
2020-11-25 15:51:52 +01:00

1097 lines
62 KiB
Plaintext

test.cpp:
# 1| void test00(int, int)
# 1| Block 0
# 1| v1_1(void) = EnterFunction :
# 1| m1_2(unknown) = AliasedDefinition :
# 1| valnum = unique
# 1| m1_3(unknown) = InitializeNonLocal :
# 1| valnum = unique
# 1| m1_4(unknown) = Chi : total:m1_2, partial:m1_3
# 1| valnum = unique
# 1| r1_5(glval<int>) = VariableAddress[p0] :
# 1| valnum = r1_5, r5_1, r6_1
# 1| m1_6(int) = InitializeParameter[p0] : &:r1_5
# 1| valnum = m1_6, r5_2, r6_2
# 1| r1_7(glval<int>) = VariableAddress[p1] :
# 1| valnum = r1_7, r5_3, r6_3
# 1| m1_8(int) = InitializeParameter[p1] : &:r1_7
# 1| valnum = m1_8, r5_4, r6_4
# 2| r2_1(glval<int>) = VariableAddress[x] :
# 2| valnum = r2_1, r5_6, r6_6, r7_1
# 2| m2_2(int) = Uninitialized[x] : &:r2_1
# 2| valnum = unique
# 2| r2_3(glval<int>) = VariableAddress[y] :
# 2| valnum = r2_3, r7_3
# 2| m2_4(int) = Uninitialized[y] : &:r2_3
# 2| valnum = unique
# 3| r3_1(glval<unsigned char>) = VariableAddress[b] :
# 3| valnum = unique
# 3| m3_2(unsigned char) = Uninitialized[b] : &:r3_1
# 3| valnum = unique
# 5| r5_1(glval<int>) = VariableAddress[p0] :
# 5| valnum = r1_5, r5_1, r6_1
# 5| r5_2(int) = Load[p0] : &:r5_1, m1_6
# 5| valnum = m1_6, r5_2, r6_2
# 5| r5_3(glval<int>) = VariableAddress[p1] :
# 5| valnum = r1_7, r5_3, r6_3
# 5| r5_4(int) = Load[p1] : &:r5_3, m1_8
# 5| valnum = m1_8, r5_4, r6_4
# 5| r5_5(int) = Add : r5_2, r5_4
# 5| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
# 5| r5_6(glval<int>) = VariableAddress[x] :
# 5| valnum = r2_1, r5_6, r6_6, r7_1
# 5| m5_7(int) = Store[x] : &:r5_6, r5_5
# 5| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
# 6| r6_1(glval<int>) = VariableAddress[p0] :
# 6| valnum = r1_5, r5_1, r6_1
# 6| r6_2(int) = Load[p0] : &:r6_1, m1_6
# 6| valnum = m1_6, r5_2, r6_2
# 6| r6_3(glval<int>) = VariableAddress[p1] :
# 6| valnum = r1_7, r5_3, r6_3
# 6| r6_4(int) = Load[p1] : &:r6_3, m1_8
# 6| valnum = m1_8, r5_4, r6_4
# 6| r6_5(int) = Add : r6_2, r6_4
# 6| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
# 6| r6_6(glval<int>) = VariableAddress[x] :
# 6| valnum = r2_1, r5_6, r6_6, r7_1
# 6| m6_7(int) = Store[x] : &:r6_6, r6_5
# 6| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
# 7| r7_1(glval<int>) = VariableAddress[x] :
# 7| valnum = r2_1, r5_6, r6_6, r7_1
# 7| r7_2(int) = Load[x] : &:r7_1, m6_7
# 7| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
# 7| r7_3(glval<int>) = VariableAddress[y] :
# 7| valnum = r2_3, r7_3
# 7| m7_4(int) = Store[y] : &:r7_3, r7_2
# 7| valnum = m5_7, m6_7, m7_4, r5_5, r6_5, r7_2
# 8| v8_1(void) = NoOp :
# 1| v1_9(void) = ReturnVoid :
# 1| v1_10(void) = AliasedUse : m1_3
# 1| v1_11(void) = ExitFunction :
# 12| void test01(int, int)
# 12| Block 0
# 12| v12_1(void) = EnterFunction :
# 12| m12_2(unknown) = AliasedDefinition :
# 12| valnum = unique
# 12| m12_3(unknown) = InitializeNonLocal :
# 12| valnum = unique
# 12| m12_4(unknown) = Chi : total:m12_2, partial:m12_3
# 12| valnum = unique
# 12| r12_5(glval<int>) = VariableAddress[p0] :
# 12| valnum = r12_5, r16_1, r17_1
# 12| m12_6(int) = InitializeParameter[p0] : &:r12_5
# 12| valnum = m12_6, r16_2, r17_2
# 12| r12_7(glval<int>) = VariableAddress[p1] :
# 12| valnum = r12_7, r16_3, r17_3
# 12| m12_8(int) = InitializeParameter[p1] : &:r12_7
# 12| valnum = m12_8, r16_4, r17_4
# 13| r13_1(glval<int>) = VariableAddress[x] :
# 13| valnum = r13_1, r16_9, r17_9, r18_1
# 13| m13_2(int) = Uninitialized[x] : &:r13_1
# 13| valnum = unique
# 13| r13_3(glval<int>) = VariableAddress[y] :
# 13| valnum = r13_3, r18_3
# 13| m13_4(int) = Uninitialized[y] : &:r13_3
# 13| valnum = unique
# 14| r14_1(glval<unsigned char>) = VariableAddress[b] :
# 14| valnum = unique
# 14| m14_2(unsigned char) = Uninitialized[b] : &:r14_1
# 14| valnum = unique
# 16| r16_1(glval<int>) = VariableAddress[p0] :
# 16| valnum = r12_5, r16_1, r17_1
# 16| r16_2(int) = Load[p0] : &:r16_1, m12_6
# 16| valnum = m12_6, r16_2, r17_2
# 16| r16_3(glval<int>) = VariableAddress[p1] :
# 16| valnum = r12_7, r16_3, r17_3
# 16| r16_4(int) = Load[p1] : &:r16_3, m12_8
# 16| valnum = m12_8, r16_4, r17_4
# 16| r16_5(int) = Add : r16_2, r16_4
# 16| valnum = r16_5, r17_5
# 16| r16_6(glval<int>) = VariableAddress[global01] :
# 16| valnum = r16_6, r17_6
# 16| r16_7(int) = Load[global01] : &:r16_6, ~m12_3
# 16| valnum = r16_7, r17_7
# 16| r16_8(int) = Add : r16_5, r16_7
# 16| valnum = m16_10, m17_10, m18_4, r16_8, r17_8, r18_2
# 16| r16_9(glval<int>) = VariableAddress[x] :
# 16| valnum = r13_1, r16_9, r17_9, r18_1
# 16| m16_10(int) = Store[x] : &:r16_9, r16_8
# 16| valnum = m16_10, m17_10, m18_4, r16_8, r17_8, r18_2
# 17| r17_1(glval<int>) = VariableAddress[p0] :
# 17| valnum = r12_5, r16_1, r17_1
# 17| r17_2(int) = Load[p0] : &:r17_1, m12_6
# 17| valnum = m12_6, r16_2, r17_2
# 17| r17_3(glval<int>) = VariableAddress[p1] :
# 17| valnum = r12_7, r16_3, r17_3
# 17| r17_4(int) = Load[p1] : &:r17_3, m12_8
# 17| valnum = m12_8, r16_4, r17_4
# 17| r17_5(int) = Add : r17_2, r17_4
# 17| valnum = r16_5, r17_5
# 17| r17_6(glval<int>) = VariableAddress[global01] :
# 17| valnum = r16_6, r17_6
# 17| r17_7(int) = Load[global01] : &:r17_6, ~m12_3
# 17| valnum = r16_7, r17_7
# 17| r17_8(int) = Add : r17_5, r17_7
# 17| valnum = m16_10, m17_10, m18_4, r16_8, r17_8, r18_2
# 17| r17_9(glval<int>) = VariableAddress[x] :
# 17| valnum = r13_1, r16_9, r17_9, r18_1
# 17| m17_10(int) = Store[x] : &:r17_9, r17_8
# 17| valnum = m16_10, m17_10, m18_4, r16_8, r17_8, r18_2
# 18| r18_1(glval<int>) = VariableAddress[x] :
# 18| valnum = r13_1, r16_9, r17_9, r18_1
# 18| r18_2(int) = Load[x] : &:r18_1, m17_10
# 18| valnum = m16_10, m17_10, m18_4, r16_8, r17_8, r18_2
# 18| r18_3(glval<int>) = VariableAddress[y] :
# 18| valnum = r13_3, r18_3
# 18| m18_4(int) = Store[y] : &:r18_3, r18_2
# 18| valnum = m16_10, m17_10, m18_4, r16_8, r17_8, r18_2
# 19| v19_1(void) = NoOp :
# 12| v12_9(void) = ReturnVoid :
# 12| v12_10(void) = AliasedUse : m12_3
# 12| v12_11(void) = ExitFunction :
# 25| void test02(int, int)
# 25| Block 0
# 25| v25_1(void) = EnterFunction :
# 25| m25_2(unknown) = AliasedDefinition :
# 25| valnum = unique
# 25| m25_3(unknown) = InitializeNonLocal :
# 25| valnum = unique
# 25| m25_4(unknown) = Chi : total:m25_2, partial:m25_3
# 25| valnum = unique
# 25| r25_5(glval<int>) = VariableAddress[p0] :
# 25| valnum = r25_5, r29_1, r31_1
# 25| m25_6(int) = InitializeParameter[p0] : &:r25_5
# 25| valnum = m25_6, r29_2, r31_2
# 25| r25_7(glval<int>) = VariableAddress[p1] :
# 25| valnum = r25_7, r29_3, r31_3
# 25| m25_8(int) = InitializeParameter[p1] : &:r25_7
# 25| valnum = m25_8, r29_4, r31_4
# 26| r26_1(glval<int>) = VariableAddress[x] :
# 26| valnum = r26_1, r29_9, r31_9, r32_1
# 26| m26_2(int) = Uninitialized[x] : &:r26_1
# 26| valnum = unique
# 26| r26_3(glval<int>) = VariableAddress[y] :
# 26| valnum = r26_3, r32_3
# 26| m26_4(int) = Uninitialized[y] : &:r26_3
# 26| valnum = unique
# 27| r27_1(glval<unsigned char>) = VariableAddress[b] :
# 27| valnum = unique
# 27| m27_2(unsigned char) = Uninitialized[b] : &:r27_1
# 27| valnum = unique
# 29| r29_1(glval<int>) = VariableAddress[p0] :
# 29| valnum = r25_5, r29_1, r31_1
# 29| r29_2(int) = Load[p0] : &:r29_1, m25_6
# 29| valnum = m25_6, r29_2, r31_2
# 29| r29_3(glval<int>) = VariableAddress[p1] :
# 29| valnum = r25_7, r29_3, r31_3
# 29| r29_4(int) = Load[p1] : &:r29_3, m25_8
# 29| valnum = m25_8, r29_4, r31_4
# 29| r29_5(int) = Add : r29_2, r29_4
# 29| valnum = r29_5, r31_5
# 29| r29_6(glval<int>) = VariableAddress[global02] :
# 29| valnum = r29_6, r31_6
# 29| r29_7(int) = Load[global02] : &:r29_6, ~m25_3
# 29| valnum = unique
# 29| r29_8(int) = Add : r29_5, r29_7
# 29| valnum = m29_10, r29_8
# 29| r29_9(glval<int>) = VariableAddress[x] :
# 29| valnum = r26_1, r29_9, r31_9, r32_1
# 29| m29_10(int) = Store[x] : &:r29_9, r29_8
# 29| valnum = m29_10, r29_8
# 30| r30_1(glval<unknown>) = FunctionAddress[change_global02] :
# 30| valnum = unique
# 30| v30_2(void) = Call[change_global02] : func:r30_1
# 30| m30_3(unknown) = ^CallSideEffect : ~m25_4
# 30| valnum = unique
# 30| m30_4(unknown) = Chi : total:m25_4, partial:m30_3
# 30| valnum = unique
# 31| r31_1(glval<int>) = VariableAddress[p0] :
# 31| valnum = r25_5, r29_1, r31_1
# 31| r31_2(int) = Load[p0] : &:r31_1, m25_6
# 31| valnum = m25_6, r29_2, r31_2
# 31| r31_3(glval<int>) = VariableAddress[p1] :
# 31| valnum = r25_7, r29_3, r31_3
# 31| r31_4(int) = Load[p1] : &:r31_3, m25_8
# 31| valnum = m25_8, r29_4, r31_4
# 31| r31_5(int) = Add : r31_2, r31_4
# 31| valnum = r29_5, r31_5
# 31| r31_6(glval<int>) = VariableAddress[global02] :
# 31| valnum = r29_6, r31_6
# 31| r31_7(int) = Load[global02] : &:r31_6, ~m30_4
# 31| valnum = unique
# 31| r31_8(int) = Add : r31_5, r31_7
# 31| valnum = m31_10, m32_4, r31_8, r32_2
# 31| r31_9(glval<int>) = VariableAddress[x] :
# 31| valnum = r26_1, r29_9, r31_9, r32_1
# 31| m31_10(int) = Store[x] : &:r31_9, r31_8
# 31| valnum = m31_10, m32_4, r31_8, r32_2
# 32| r32_1(glval<int>) = VariableAddress[x] :
# 32| valnum = r26_1, r29_9, r31_9, r32_1
# 32| r32_2(int) = Load[x] : &:r32_1, m31_10
# 32| valnum = m31_10, m32_4, r31_8, r32_2
# 32| r32_3(glval<int>) = VariableAddress[y] :
# 32| valnum = r26_3, r32_3
# 32| m32_4(int) = Store[y] : &:r32_3, r32_2
# 32| valnum = m31_10, m32_4, r31_8, r32_2
# 33| v33_1(void) = NoOp :
# 25| v25_9(void) = ReturnVoid :
# 25| v25_10(void) = AliasedUse : ~m30_4
# 25| v25_11(void) = ExitFunction :
# 39| void test03(int, int, int*)
# 39| Block 0
# 39| v39_1(void) = EnterFunction :
# 39| m39_2(unknown) = AliasedDefinition :
# 39| valnum = unique
# 39| m39_3(unknown) = InitializeNonLocal :
# 39| valnum = unique
# 39| m39_4(unknown) = Chi : total:m39_2, partial:m39_3
# 39| valnum = unique
# 39| r39_5(glval<int>) = VariableAddress[p0] :
# 39| valnum = r39_5, r43_1, r45_1
# 39| m39_6(int) = InitializeParameter[p0] : &:r39_5
# 39| valnum = m39_6, r43_2, r45_2
# 39| r39_7(glval<int>) = VariableAddress[p1] :
# 39| valnum = r39_7, r43_3, r45_3
# 39| m39_8(int) = InitializeParameter[p1] : &:r39_7
# 39| valnum = m39_8, r43_4, r45_4
# 39| r39_9(glval<int *>) = VariableAddress[p2] :
# 39| valnum = r39_9, r44_2
# 39| m39_10(int *) = InitializeParameter[p2] : &:r39_9
# 39| valnum = m39_10, r39_11, r44_3, r44_4
# 39| r39_11(int *) = Load[p2] : &:r39_9, m39_10
# 39| valnum = m39_10, r39_11, r44_3, r44_4
# 39| m39_12(unknown) = InitializeIndirection[p2] : &:r39_11
# 39| valnum = unique
# 40| r40_1(glval<int>) = VariableAddress[x] :
# 40| valnum = r40_1, r43_9, r45_9, r46_1
# 40| m40_2(int) = Uninitialized[x] : &:r40_1
# 40| valnum = unique
# 40| r40_3(glval<int>) = VariableAddress[y] :
# 40| valnum = r40_3, r46_3
# 40| m40_4(int) = Uninitialized[y] : &:r40_3
# 40| valnum = unique
# 41| r41_1(glval<unsigned char>) = VariableAddress[b] :
# 41| valnum = unique
# 41| m41_2(unsigned char) = Uninitialized[b] : &:r41_1
# 41| valnum = unique
# 43| r43_1(glval<int>) = VariableAddress[p0] :
# 43| valnum = r39_5, r43_1, r45_1
# 43| r43_2(int) = Load[p0] : &:r43_1, m39_6
# 43| valnum = m39_6, r43_2, r45_2
# 43| r43_3(glval<int>) = VariableAddress[p1] :
# 43| valnum = r39_7, r43_3, r45_3
# 43| r43_4(int) = Load[p1] : &:r43_3, m39_8
# 43| valnum = m39_8, r43_4, r45_4
# 43| r43_5(int) = Add : r43_2, r43_4
# 43| valnum = r43_5, r45_5
# 43| r43_6(glval<int>) = VariableAddress[global03] :
# 43| valnum = r43_6, r45_6
# 43| r43_7(int) = Load[global03] : &:r43_6, ~m39_3
# 43| valnum = r43_7, r45_7
# 43| r43_8(int) = Add : r43_5, r43_7
# 43| valnum = m43_10, m45_10, m46_4, r43_8, r45_8, r46_2
# 43| r43_9(glval<int>) = VariableAddress[x] :
# 43| valnum = r40_1, r43_9, r45_9, r46_1
# 43| m43_10(int) = Store[x] : &:r43_9, r43_8
# 43| valnum = m43_10, m45_10, m46_4, r43_8, r45_8, r46_2
# 44| r44_1(int) = Constant[0] :
# 44| valnum = m44_5, r44_1
# 44| r44_2(glval<int *>) = VariableAddress[p2] :
# 44| valnum = r39_9, r44_2
# 44| r44_3(int *) = Load[p2] : &:r44_2, m39_10
# 44| valnum = m39_10, r39_11, r44_3, r44_4
# 44| r44_4(glval<int>) = CopyValue : r44_3
# 44| valnum = m39_10, r39_11, r44_3, r44_4
# 44| m44_5(int) = Store[?] : &:r44_4, r44_1
# 44| valnum = m44_5, r44_1
# 44| m44_6(unknown) = Chi : total:m39_12, partial:m44_5
# 44| valnum = unique
# 45| r45_1(glval<int>) = VariableAddress[p0] :
# 45| valnum = r39_5, r43_1, r45_1
# 45| r45_2(int) = Load[p0] : &:r45_1, m39_6
# 45| valnum = m39_6, r43_2, r45_2
# 45| r45_3(glval<int>) = VariableAddress[p1] :
# 45| valnum = r39_7, r43_3, r45_3
# 45| r45_4(int) = Load[p1] : &:r45_3, m39_8
# 45| valnum = m39_8, r43_4, r45_4
# 45| r45_5(int) = Add : r45_2, r45_4
# 45| valnum = r43_5, r45_5
# 45| r45_6(glval<int>) = VariableAddress[global03] :
# 45| valnum = r43_6, r45_6
# 45| r45_7(int) = Load[global03] : &:r45_6, ~m39_3
# 45| valnum = r43_7, r45_7
# 45| r45_8(int) = Add : r45_5, r45_7
# 45| valnum = m43_10, m45_10, m46_4, r43_8, r45_8, r46_2
# 45| r45_9(glval<int>) = VariableAddress[x] :
# 45| valnum = r40_1, r43_9, r45_9, r46_1
# 45| m45_10(int) = Store[x] : &:r45_9, r45_8
# 45| valnum = m43_10, m45_10, m46_4, r43_8, r45_8, r46_2
# 46| r46_1(glval<int>) = VariableAddress[x] :
# 46| valnum = r40_1, r43_9, r45_9, r46_1
# 46| r46_2(int) = Load[x] : &:r46_1, m45_10
# 46| valnum = m43_10, m45_10, m46_4, r43_8, r45_8, r46_2
# 46| r46_3(glval<int>) = VariableAddress[y] :
# 46| valnum = r40_3, r46_3
# 46| m46_4(int) = Store[y] : &:r46_3, r46_2
# 46| valnum = m43_10, m45_10, m46_4, r43_8, r45_8, r46_2
# 47| v47_1(void) = NoOp :
# 39| v39_13(void) = ReturnIndirection[p2] : &:r39_11, m44_6
# 39| v39_14(void) = ReturnVoid :
# 39| v39_15(void) = AliasedUse : m39_3
# 39| v39_16(void) = ExitFunction :
# 49| unsigned int my_strspn(char const*, char const*)
# 49| Block 0
# 49| v49_1(void) = EnterFunction :
# 49| m49_2(unknown) = AliasedDefinition :
# 49| valnum = unique
# 49| m49_3(unknown) = InitializeNonLocal :
# 49| valnum = unique
# 49| m49_4(unknown) = Chi : total:m49_2, partial:m49_3
# 49| valnum = unique
# 49| r49_5(glval<char *>) = VariableAddress[str] :
# 49| valnum = r49_5, r53_2, r56_6
# 49| m49_6(char *) = InitializeParameter[str] : &:r49_5
# 49| valnum = m49_6, r49_7, r53_3, r56_7
# 49| r49_7(char *) = Load[str] : &:r49_5, m49_6
# 49| valnum = m49_6, r49_7, r53_3, r56_7
# 49| m49_8(unknown) = InitializeIndirection[str] : &:r49_7
# 49| valnum = unique
# 49| r49_9(glval<char *>) = VariableAddress[chars] :
# 49| valnum = r49_9, r55_1
# 49| m49_10(char *) = InitializeParameter[chars] : &:r49_9
# 49| valnum = m49_10, m55_4, r49_11, r55_2
# 49| r49_11(char *) = Load[chars] : &:r49_9, m49_10
# 49| valnum = m49_10, m55_4, r49_11, r55_2
# 49| m49_12(unknown) = InitializeIndirection[chars] : &:r49_11
# 49| valnum = unique
# 50| r50_1(glval<char *>) = VariableAddress[ptr] :
# 50| valnum = r50_1, r55_3, r56_12, r56_19, r56_2, r59_1
# 50| m50_2(char *) = Uninitialized[ptr] : &:r50_1
# 50| valnum = unique
# 51| r51_1(glval<unsigned int>) = VariableAddress[result] :
# 51| valnum = r51_1, r62_1, r65_2
# 51| r51_2(unsigned int) = Constant[0] :
# 51| valnum = m51_3, r51_2
# 51| m51_3(unsigned int) = Store[result] : &:r51_1, r51_2
# 51| valnum = m51_3, r51_2
#-----| Goto -> Block 1
# 53| Block 1
# 53| m53_1(unsigned int) = Phi : from 0:m51_3, from 8:m62_5
# 53| valnum = m53_1, m65_4, r62_2, r65_3
# 53| r53_2(glval<char *>) = VariableAddress[str] :
# 53| valnum = r49_5, r53_2, r56_6
# 53| r53_3(char *) = Load[str] : &:r53_2, m49_6
# 53| valnum = m49_6, r49_7, r53_3, r56_7
# 53| r53_4(char) = Load[?] : &:r53_3, ~m49_8
# 53| valnum = r53_4, r56_8
# 53| r53_5(int) = Convert : r53_4
# 53| valnum = r53_5, r56_9
# 53| r53_6(int) = Constant[0] :
# 53| valnum = r53_6, r56_16, r59_5
# 53| r53_7(bool) = CompareNE : r53_5, r53_6
# 53| valnum = unique
# 53| v53_8(void) = ConditionalBranch : r53_7
#-----| False -> Block 9
#-----| True -> Block 2
# 55| Block 2
# 55| r55_1(glval<char *>) = VariableAddress[chars] :
# 55| valnum = r49_9, r55_1
# 55| r55_2(char *) = Load[chars] : &:r55_1, m49_10
# 55| valnum = m49_10, m55_4, r49_11, r55_2
# 55| r55_3(glval<char *>) = VariableAddress[ptr] :
# 55| valnum = r50_1, r55_3, r56_12, r56_19, r56_2, r59_1
# 55| m55_4(char *) = Store[ptr] : &:r55_3, r55_2
# 55| valnum = m49_10, m55_4, r49_11, r55_2
#-----| Goto -> Block 3
# 56| Block 3
# 56| m56_1(char *) = Phi : from 2:m55_4, from 5:m56_23
# 56| valnum = m56_1, r56_13, r56_20, r56_3, r59_2
# 56| r56_2(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r50_1, r55_3, r56_12, r56_19, r56_2, r59_1
# 56| r56_3(char *) = Load[ptr] : &:r56_2, m56_1
# 56| valnum = m56_1, r56_13, r56_20, r56_3, r59_2
# 56| r56_4(char) = Load[?] : &:r56_3, ~m49_4
# 56| valnum = r56_14, r56_4, r59_3
# 56| r56_5(int) = Convert : r56_4
# 56| valnum = r56_15, r56_5, r59_4
# 56| r56_6(glval<char *>) = VariableAddress[str] :
# 56| valnum = r49_5, r53_2, r56_6
# 56| r56_7(char *) = Load[str] : &:r56_6, m49_6
# 56| valnum = m49_6, r49_7, r53_3, r56_7
# 56| r56_8(char) = Load[?] : &:r56_7, ~m49_8
# 56| valnum = r53_4, r56_8
# 56| r56_9(int) = Convert : r56_8
# 56| valnum = r53_5, r56_9
# 56| r56_10(bool) = CompareNE : r56_5, r56_9
# 56| valnum = unique
# 56| v56_11(void) = ConditionalBranch : r56_10
#-----| False -> Block 6
#-----| True -> Block 4
# 56| Block 4
# 56| r56_12(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r50_1, r55_3, r56_12, r56_19, r56_2, r59_1
# 56| r56_13(char *) = Load[ptr] : &:r56_12, m56_1
# 56| valnum = m56_1, r56_13, r56_20, r56_3, r59_2
# 56| r56_14(char) = Load[?] : &:r56_13, ~m49_4
# 56| valnum = r56_14, r56_4, r59_3
# 56| r56_15(int) = Convert : r56_14
# 56| valnum = r56_15, r56_5, r59_4
# 56| r56_16(int) = Constant[0] :
# 56| valnum = r53_6, r56_16, r59_5
# 56| r56_17(bool) = CompareNE : r56_15, r56_16
# 56| valnum = unique
# 56| v56_18(void) = ConditionalBranch : r56_17
#-----| False -> Block 6
#-----| True -> Block 5
# 56| Block 5
# 56| r56_19(glval<char *>) = VariableAddress[ptr] :
# 56| valnum = r50_1, r55_3, r56_12, r56_19, r56_2, r59_1
# 56| r56_20(char *) = Load[ptr] : &:r56_19, m56_1
# 56| valnum = m56_1, r56_13, r56_20, r56_3, r59_2
# 56| r56_21(int) = Constant[1] :
# 56| valnum = unique
# 56| r56_22(char *) = PointerAdd[1] : r56_20, r56_21
# 56| valnum = m56_23, r56_22
# 56| m56_23(char *) = Store[ptr] : &:r56_19, r56_22
# 56| valnum = m56_23, r56_22
#-----| Goto (back edge) -> Block 3
# 59| Block 6
# 59| r59_1(glval<char *>) = VariableAddress[ptr] :
# 59| valnum = r50_1, r55_3, r56_12, r56_19, r56_2, r59_1
# 59| r59_2(char *) = Load[ptr] : &:r59_1, m56_1
# 59| valnum = m56_1, r56_13, r56_20, r56_3, r59_2
# 59| r59_3(char) = Load[?] : &:r59_2, ~m49_4
# 59| valnum = r56_14, r56_4, r59_3
# 59| r59_4(int) = Convert : r59_3
# 59| valnum = r56_15, r56_5, r59_4
# 59| r59_5(int) = Constant[0] :
# 59| valnum = r53_6, r56_16, r59_5
# 59| r59_6(bool) = CompareEQ : r59_4, r59_5
# 59| valnum = unique
# 59| v59_7(void) = ConditionalBranch : r59_6
#-----| False -> Block 8
#-----| True -> Block 7
# 60| Block 7
# 60| v60_1(void) = NoOp :
#-----| Goto -> Block 9
# 62| Block 8
# 62| r62_1(glval<unsigned int>) = VariableAddress[result] :
# 62| valnum = r51_1, r62_1, r65_2
# 62| r62_2(unsigned int) = Load[result] : &:r62_1, m53_1
# 62| valnum = m53_1, m65_4, r62_2, r65_3
# 62| r62_3(unsigned int) = Constant[1] :
# 62| valnum = unique
# 62| r62_4(unsigned int) = Add : r62_2, r62_3
# 62| valnum = m62_5, r62_4
# 62| m62_5(unsigned int) = Store[result] : &:r62_1, r62_4
# 62| valnum = m62_5, r62_4
#-----| Goto (back edge) -> Block 1
# 63| Block 9
# 63| v63_1(void) = NoOp :
# 65| r65_1(glval<unsigned int>) = VariableAddress[#return] :
# 65| valnum = r49_15, r65_1
# 65| r65_2(glval<unsigned int>) = VariableAddress[result] :
# 65| valnum = r51_1, r62_1, r65_2
# 65| r65_3(unsigned int) = Load[result] : &:r65_2, m53_1
# 65| valnum = m53_1, m65_4, r62_2, r65_3
# 65| m65_4(unsigned int) = Store[#return] : &:r65_1, r65_3
# 65| valnum = m53_1, m65_4, r62_2, r65_3
# 49| v49_13(void) = ReturnIndirection[str] : &:r49_7, m49_8
# 49| v49_14(void) = ReturnIndirection[chars] : &:r49_11, m49_12
# 49| r49_15(glval<unsigned int>) = VariableAddress[#return] :
# 49| valnum = r49_15, r65_1
# 49| v49_16(void) = ReturnValue : &:r49_15, m65_4
# 49| v49_17(void) = AliasedUse : m49_3
# 49| v49_18(void) = ExitFunction :
# 75| void test04(two_values*)
# 75| Block 0
# 75| v75_1(void) = EnterFunction :
# 75| m75_2(unknown) = AliasedDefinition :
# 75| valnum = unique
# 75| m75_3(unknown) = InitializeNonLocal :
# 75| valnum = unique
# 75| m75_4(unknown) = Chi : total:m75_2, partial:m75_3
# 75| valnum = unique
# 75| r75_5(glval<two_values *>) = VariableAddress[vals] :
# 75| valnum = r75_5, r79_4, r79_9
# 75| m75_6(two_values *) = InitializeParameter[vals] : &:r75_5
# 75| valnum = m75_6, r75_7, r79_10, r79_5
# 75| r75_7(two_values *) = Load[vals] : &:r75_5, m75_6
# 75| valnum = m75_6, r75_7, r79_10, r79_5
# 75| m75_8(unknown) = InitializeIndirection[vals] : &:r75_7
# 75| valnum = unique
# 77| r77_1(glval<signed short>) = VariableAddress[v] :
# 77| valnum = r77_1, r79_1, r80_6
# 77| r77_2(glval<unknown>) = FunctionAddress[getAValue] :
# 77| valnum = unique
# 77| r77_3(int) = Call[getAValue] : func:r77_2
# 77| valnum = unique
# 77| m77_4(unknown) = ^CallSideEffect : ~m75_4
# 77| valnum = unique
# 77| m77_5(unknown) = Chi : total:m75_4, partial:m77_4
# 77| valnum = unique
# 77| r77_6(signed short) = Convert : r77_3
# 77| valnum = m77_7, r77_6, r79_2
# 77| m77_7(signed short) = Store[v] : &:r77_1, r77_6
# 77| valnum = m77_7, r77_6, r79_2
# 79| r79_1(glval<signed short>) = VariableAddress[v] :
# 79| valnum = r77_1, r79_1, r80_6
# 79| r79_2(signed short) = Load[v] : &:r79_1, m77_7
# 79| valnum = m77_7, r77_6, r79_2
# 79| r79_3(int) = Convert : r79_2
# 79| valnum = unique
# 79| r79_4(glval<two_values *>) = VariableAddress[vals] :
# 79| valnum = r75_5, r79_4, r79_9
# 79| r79_5(two_values *) = Load[vals] : &:r79_4, m75_6
# 79| valnum = m75_6, r75_7, r79_10, r79_5
# 79| r79_6(glval<signed short>) = FieldAddress[val1] : r79_5
# 79| valnum = unique
# 79| r79_7(signed short) = Load[?] : &:r79_6, ~m75_8
# 79| valnum = unique
# 79| r79_8(int) = Convert : r79_7
# 79| valnum = unique
# 79| r79_9(glval<two_values *>) = VariableAddress[vals] :
# 79| valnum = r75_5, r79_4, r79_9
# 79| r79_10(two_values *) = Load[vals] : &:r79_9, m75_6
# 79| valnum = m75_6, r75_7, r79_10, r79_5
# 79| r79_11(glval<signed short>) = FieldAddress[val2] : r79_10
# 79| valnum = unique
# 79| r79_12(signed short) = Load[?] : &:r79_11, ~m75_8
# 79| valnum = unique
# 79| r79_13(int) = Convert : r79_12
# 79| valnum = unique
# 79| r79_14(int) = Add : r79_8, r79_13
# 79| valnum = unique
# 79| r79_15(bool) = CompareLT : r79_3, r79_14
# 79| valnum = unique
# 79| v79_16(void) = ConditionalBranch : r79_15
#-----| False -> Block 2
#-----| True -> Block 1
# 80| Block 1
# 80| r80_1(glval<unknown>) = FunctionAddress[getAValue] :
# 80| valnum = unique
# 80| r80_2(int) = Call[getAValue] : func:r80_1
# 80| valnum = unique
# 80| m80_3(unknown) = ^CallSideEffect : ~m77_5
# 80| valnum = unique
# 80| m80_4(unknown) = Chi : total:m77_5, partial:m80_3
# 80| valnum = unique
# 80| r80_5(signed short) = Convert : r80_2
# 80| valnum = m80_7, r80_5
# 80| r80_6(glval<signed short>) = VariableAddress[v] :
# 80| valnum = r77_1, r79_1, r80_6
# 80| m80_7(signed short) = Store[v] : &:r80_6, r80_5
# 80| valnum = m80_7, r80_5
#-----| Goto -> Block 2
# 82| Block 2
# 82| m82_1(unknown) = Phi : from 0:~m77_5, from 1:~m80_4
# 82| valnum = unique
# 82| v82_2(void) = NoOp :
# 75| v75_9(void) = ReturnIndirection[vals] : &:r75_7, m75_8
# 75| v75_10(void) = ReturnVoid :
# 75| v75_11(void) = AliasedUse : ~m82_1
# 75| v75_12(void) = ExitFunction :
# 84| void test05(int, int, void*)
# 84| Block 0
# 84| v84_1(void) = EnterFunction :
# 84| m84_2(unknown) = AliasedDefinition :
# 84| valnum = unique
# 84| m84_3(unknown) = InitializeNonLocal :
# 84| valnum = unique
# 84| m84_4(unknown) = Chi : total:m84_2, partial:m84_3
# 84| valnum = unique
# 84| r84_5(glval<int>) = VariableAddress[x] :
# 84| valnum = r84_5, r88_11
# 84| m84_6(int) = InitializeParameter[x] : &:r84_5
# 84| valnum = m84_6, m88_14, r88_12
# 84| r84_7(glval<int>) = VariableAddress[y] :
# 84| valnum = r84_7, r88_15
# 84| m84_8(int) = InitializeParameter[y] : &:r84_7
# 84| valnum = m84_8, m88_18, r88_16
# 84| r84_9(glval<void *>) = VariableAddress[p] :
# 84| valnum = r84_9, r88_1
# 84| m84_10(void *) = InitializeParameter[p] : &:r84_9
# 84| valnum = m84_10, r84_11, r88_2
# 84| r84_11(void *) = Load[p] : &:r84_9, m84_10
# 84| valnum = m84_10, r84_11, r88_2
# 84| m84_12(unknown) = InitializeIndirection[p] : &:r84_11
# 84| valnum = unique
# 86| r86_1(glval<int>) = VariableAddress[v] :
# 86| valnum = r86_1, r88_9
# 86| m86_2(int) = Uninitialized[v] : &:r86_1
# 86| valnum = unique
# 88| r88_1(glval<void *>) = VariableAddress[p] :
# 88| valnum = r84_9, r88_1
# 88| r88_2(void *) = Load[p] : &:r88_1, m84_10
# 88| valnum = m84_10, r84_11, r88_2
# 88| r88_3(void *) = Constant[0] :
# 88| valnum = unique
# 88| r88_4(bool) = CompareNE : r88_2, r88_3
# 88| valnum = unique
# 88| v88_5(void) = ConditionalBranch : r88_4
#-----| False -> Block 3
#-----| True -> Block 2
# 88| Block 1
# 88| m88_6(int) = Phi : from 2:m88_14, from 3:m88_18
# 88| valnum = m88_10, m88_6, r88_8
# 88| r88_7(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r88_13, r88_17, r88_7
# 88| r88_8(int) = Load[#temp88:7] : &:r88_7, m88_6
# 88| valnum = m88_10, m88_6, r88_8
# 88| r88_9(glval<int>) = VariableAddress[v] :
# 88| valnum = r86_1, r88_9
# 88| m88_10(int) = Store[v] : &:r88_9, r88_8
# 88| valnum = m88_10, m88_6, r88_8
# 89| v89_1(void) = NoOp :
# 84| v84_13(void) = ReturnIndirection[p] : &:r84_11, m84_12
# 84| v84_14(void) = ReturnVoid :
# 84| v84_15(void) = AliasedUse : m84_3
# 84| v84_16(void) = ExitFunction :
# 88| Block 2
# 88| r88_11(glval<int>) = VariableAddress[x] :
# 88| valnum = r84_5, r88_11
# 88| r88_12(int) = Load[x] : &:r88_11, m84_6
# 88| valnum = m84_6, m88_14, r88_12
# 88| r88_13(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r88_13, r88_17, r88_7
# 88| m88_14(int) = Store[#temp88:7] : &:r88_13, r88_12
# 88| valnum = m84_6, m88_14, r88_12
#-----| Goto -> Block 1
# 88| Block 3
# 88| r88_15(glval<int>) = VariableAddress[y] :
# 88| valnum = r84_7, r88_15
# 88| r88_16(int) = Load[y] : &:r88_15, m84_8
# 88| valnum = m84_8, m88_18, r88_16
# 88| r88_17(glval<int>) = VariableAddress[#temp88:7] :
# 88| valnum = r88_13, r88_17, r88_7
# 88| m88_18(int) = Store[#temp88:7] : &:r88_17, r88_16
# 88| valnum = m84_8, m88_18, r88_16
#-----| Goto -> Block 1
# 91| int regression_test00()
# 91| Block 0
# 91| v91_1(void) = EnterFunction :
# 91| m91_2(unknown) = AliasedDefinition :
# 91| valnum = unique
# 91| m91_3(unknown) = InitializeNonLocal :
# 91| valnum = unique
# 91| m91_4(unknown) = Chi : total:m91_2, partial:m91_3
# 91| valnum = unique
# 92| r92_1(glval<int>) = VariableAddress[x] :
# 92| valnum = r92_1, r92_3, r93_2
# 92| r92_2(int) = Constant[10] :
# 92| valnum = m92_4, m92_6, m93_4, r92_2, r92_5, r93_3
# 92| r92_3(glval<int>) = VariableAddress[x] :
# 92| valnum = r92_1, r92_3, r93_2
# 92| m92_4(int) = Store[x] : &:r92_3, r92_2
# 92| valnum = m92_4, m92_6, m93_4, r92_2, r92_5, r93_3
# 92| r92_5(int) = CopyValue : r92_2
# 92| valnum = m92_4, m92_6, m93_4, r92_2, r92_5, r93_3
# 92| m92_6(int) = Store[x] : &:r92_1, r92_5
# 92| valnum = m92_4, m92_6, m93_4, r92_2, r92_5, r93_3
# 93| r93_1(glval<int>) = VariableAddress[#return] :
# 93| valnum = r91_5, r93_1
# 93| r93_2(glval<int>) = VariableAddress[x] :
# 93| valnum = r92_1, r92_3, r93_2
# 93| r93_3(int) = Load[x] : &:r93_2, m92_6
# 93| valnum = m92_4, m92_6, m93_4, r92_2, r92_5, r93_3
# 93| m93_4(int) = Store[#return] : &:r93_1, r93_3
# 93| valnum = m92_4, m92_6, m93_4, r92_2, r92_5, r93_3
# 91| r91_5(glval<int>) = VariableAddress[#return] :
# 91| valnum = r91_5, r93_1
# 91| v91_6(void) = ReturnValue : &:r91_5, m93_4
# 91| v91_7(void) = AliasedUse : m91_3
# 91| v91_8(void) = ExitFunction :
# 104| int inheritanceConversions(Derived*)
# 104| Block 0
# 104| v104_1(void) = EnterFunction :
# 104| m104_2(unknown) = AliasedDefinition :
# 104| valnum = unique
# 104| m104_3(unknown) = InitializeNonLocal :
# 104| valnum = unique
# 104| m104_4(unknown) = Chi : total:m104_2, partial:m104_3
# 104| valnum = unique
# 104| r104_5(glval<Derived *>) = VariableAddress[pd] :
# 104| valnum = r104_5, r105_2, r106_2
# 104| m104_6(Derived *) = InitializeParameter[pd] : &:r104_5
# 104| valnum = m104_6, r104_7, r105_3, r106_3
# 104| r104_7(Derived *) = Load[pd] : &:r104_5, m104_6
# 104| valnum = m104_6, r104_7, r105_3, r106_3
# 104| m104_8(unknown) = InitializeIndirection[pd] : &:r104_7
# 104| valnum = unique
# 105| r105_1(glval<int>) = VariableAddress[x] :
# 105| valnum = unique
# 105| r105_2(glval<Derived *>) = VariableAddress[pd] :
# 105| valnum = r104_5, r105_2, r106_2
# 105| r105_3(Derived *) = Load[pd] : &:r105_2, m104_6
# 105| valnum = m104_6, r104_7, r105_3, r106_3
# 105| r105_4(Base *) = ConvertToNonVirtualBase[Derived : Base] : r105_3
# 105| valnum = m106_5, r105_4, r106_4, r107_3
# 105| r105_5(glval<int>) = FieldAddress[b] : r105_4
# 105| valnum = r105_5, r107_4
# 105| r105_6(int) = Load[?] : &:r105_5, ~m104_8
# 105| valnum = m105_7, m107_6, m109_4, r105_6, r107_5, r109_3
# 105| m105_7(int) = Store[x] : &:r105_1, r105_6
# 105| valnum = m105_7, m107_6, m109_4, r105_6, r107_5, r109_3
# 106| r106_1(glval<Base *>) = VariableAddress[pb] :
# 106| valnum = r106_1, r107_2
# 106| r106_2(glval<Derived *>) = VariableAddress[pd] :
# 106| valnum = r104_5, r105_2, r106_2
# 106| r106_3(Derived *) = Load[pd] : &:r106_2, m104_6
# 106| valnum = m104_6, r104_7, r105_3, r106_3
# 106| r106_4(Base *) = ConvertToNonVirtualBase[Derived : Base] : r106_3
# 106| valnum = m106_5, r105_4, r106_4, r107_3
# 106| m106_5(Base *) = Store[pb] : &:r106_1, r106_4
# 106| valnum = m106_5, r105_4, r106_4, r107_3
# 107| r107_1(glval<int>) = VariableAddress[y] :
# 107| valnum = r107_1, r109_2
# 107| r107_2(glval<Base *>) = VariableAddress[pb] :
# 107| valnum = r106_1, r107_2
# 107| r107_3(Base *) = Load[pb] : &:r107_2, m106_5
# 107| valnum = m106_5, r105_4, r106_4, r107_3
# 107| r107_4(glval<int>) = FieldAddress[b] : r107_3
# 107| valnum = r105_5, r107_4
# 107| r107_5(int) = Load[?] : &:r107_4, ~m104_8
# 107| valnum = m105_7, m107_6, m109_4, r105_6, r107_5, r109_3
# 107| m107_6(int) = Store[y] : &:r107_1, r107_5
# 107| valnum = m105_7, m107_6, m109_4, r105_6, r107_5, r109_3
# 109| r109_1(glval<int>) = VariableAddress[#return] :
# 109| valnum = r104_10, r109_1
# 109| r109_2(glval<int>) = VariableAddress[y] :
# 109| valnum = r107_1, r109_2
# 109| r109_3(int) = Load[y] : &:r109_2, m107_6
# 109| valnum = m105_7, m107_6, m109_4, r105_6, r107_5, r109_3
# 109| m109_4(int) = Store[#return] : &:r109_1, r109_3
# 109| valnum = m105_7, m107_6, m109_4, r105_6, r107_5, r109_3
# 104| v104_9(void) = ReturnIndirection[pd] : &:r104_7, m104_8
# 104| r104_10(glval<int>) = VariableAddress[#return] :
# 104| valnum = r104_10, r109_1
# 104| v104_11(void) = ReturnValue : &:r104_10, m109_4
# 104| v104_12(void) = AliasedUse : m104_3
# 104| v104_13(void) = ExitFunction :
# 112| void test06()
# 112| Block 0
# 112| v112_1(void) = EnterFunction :
# 112| m112_2(unknown) = AliasedDefinition :
# 112| valnum = unique
# 112| m112_3(unknown) = InitializeNonLocal :
# 112| valnum = unique
# 112| m112_4(unknown) = Chi : total:m112_2, partial:m112_3
# 112| valnum = unique
# 113| r113_1(glval<char[2]>) = StringConstant["a"] :
# 113| valnum = r113_1, r115_1
# 114| r114_1(glval<char[2]>) = StringConstant["b"] :
# 114| valnum = unique
# 115| r115_1(glval<char[2]>) = StringConstant["a"] :
# 115| valnum = r113_1, r115_1
# 116| r116_1(glval<char[2]>) = StringConstant["c"] :
# 116| valnum = unique
# 117| v117_1(void) = NoOp :
# 112| v112_5(void) = ReturnVoid :
# 112| v112_6(void) = AliasedUse : m112_3
# 112| v112_7(void) = ExitFunction :
# 124| void test_read_arg_same(A*, int)
# 124| Block 0
# 124| v124_1(void) = EnterFunction :
# 124| m124_2(unknown) = AliasedDefinition :
# 124| valnum = unique
# 124| m124_3(unknown) = InitializeNonLocal :
# 124| valnum = unique
# 124| m124_4(unknown) = Chi : total:m124_2, partial:m124_3
# 124| valnum = unique
# 124| r124_5(glval<A *>) = VariableAddress[pa] :
# 124| valnum = r124_5, r125_2, r126_2, r128_3, r129_2
# 124| m124_6(A *) = InitializeParameter[pa] : &:r124_5
# 124| valnum = m124_6, r124_7, r125_3, r126_3, r128_4, r129_3
# 124| r124_7(A *) = Load[pa] : &:r124_5, m124_6
# 124| valnum = m124_6, r124_7, r125_3, r126_3, r128_4, r129_3
# 124| m124_8(unknown) = InitializeIndirection[pa] : &:r124_7
# 124| valnum = unique
# 124| r124_9(glval<int>) = VariableAddress[n] :
# 124| valnum = r124_9, r128_1
# 124| m124_10(int) = InitializeParameter[n] : &:r124_9
# 124| valnum = m124_10, m128_6, m129_6, r128_2, r129_5
# 125| r125_1(glval<int>) = VariableAddress[b] :
# 125| valnum = unique
# 125| r125_2(glval<A *>) = VariableAddress[pa] :
# 125| valnum = r124_5, r125_2, r126_2, r128_3, r129_2
# 125| r125_3(A *) = Load[pa] : &:r125_2, m124_6
# 125| valnum = m124_6, r124_7, r125_3, r126_3, r128_4, r129_3
# 125| r125_4(glval<int>) = FieldAddress[x] : r125_3
# 125| valnum = r125_4, r126_4, r128_5, r129_4
# 125| r125_5(int) = Load[?] : &:r125_4, ~m124_8
# 125| valnum = m125_6, m126_6, r125_5, r126_5
# 125| m125_6(int) = Store[b] : &:r125_1, r125_5
# 125| valnum = m125_6, m126_6, r125_5, r126_5
# 126| r126_1(glval<int>) = VariableAddress[c] :
# 126| valnum = unique
# 126| r126_2(glval<A *>) = VariableAddress[pa] :
# 126| valnum = r124_5, r125_2, r126_2, r128_3, r129_2
# 126| r126_3(A *) = Load[pa] : &:r126_2, m124_6
# 126| valnum = m124_6, r124_7, r125_3, r126_3, r128_4, r129_3
# 126| r126_4(glval<int>) = FieldAddress[x] : r126_3
# 126| valnum = r125_4, r126_4, r128_5, r129_4
# 126| r126_5(int) = Load[?] : &:r126_4, ~m124_8
# 126| valnum = m125_6, m126_6, r125_5, r126_5
# 126| m126_6(int) = Store[c] : &:r126_1, r126_5
# 126| valnum = m125_6, m126_6, r125_5, r126_5
# 128| r128_1(glval<int>) = VariableAddress[n] :
# 128| valnum = r124_9, r128_1
# 128| r128_2(int) = Load[n] : &:r128_1, m124_10
# 128| valnum = m124_10, m128_6, m129_6, r128_2, r129_5
# 128| r128_3(glval<A *>) = VariableAddress[pa] :
# 128| valnum = r124_5, r125_2, r126_2, r128_3, r129_2
# 128| r128_4(A *) = Load[pa] : &:r128_3, m124_6
# 128| valnum = m124_6, r124_7, r125_3, r126_3, r128_4, r129_3
# 128| r128_5(glval<int>) = FieldAddress[x] : r128_4
# 128| valnum = r125_4, r126_4, r128_5, r129_4
# 128| m128_6(int) = Store[?] : &:r128_5, r128_2
# 128| valnum = m124_10, m128_6, m129_6, r128_2, r129_5
# 128| m128_7(unknown) = Chi : total:m124_8, partial:m128_6
# 128| valnum = unique
# 129| r129_1(glval<int>) = VariableAddress[d] :
# 129| valnum = unique
# 129| r129_2(glval<A *>) = VariableAddress[pa] :
# 129| valnum = r124_5, r125_2, r126_2, r128_3, r129_2
# 129| r129_3(A *) = Load[pa] : &:r129_2, m124_6
# 129| valnum = m124_6, r124_7, r125_3, r126_3, r128_4, r129_3
# 129| r129_4(glval<int>) = FieldAddress[x] : r129_3
# 129| valnum = r125_4, r126_4, r128_5, r129_4
# 129| r129_5(int) = Load[?] : &:r129_4, m128_6
# 129| valnum = m124_10, m128_6, m129_6, r128_2, r129_5
# 129| m129_6(int) = Store[d] : &:r129_1, r129_5
# 129| valnum = m124_10, m128_6, m129_6, r128_2, r129_5
# 130| v130_1(void) = NoOp :
# 124| v124_11(void) = ReturnIndirection[pa] : &:r124_7, m128_7
# 124| v124_12(void) = ReturnVoid :
# 124| v124_13(void) = AliasedUse : m124_3
# 124| v124_14(void) = ExitFunction :
# 135| void test_read_global_same()
# 135| Block 0
# 135| v135_1(void) = EnterFunction :
# 135| m135_2(unknown) = AliasedDefinition :
# 135| valnum = unique
# 135| m135_3(unknown) = InitializeNonLocal :
# 135| valnum = unique
# 135| m135_4(unknown) = Chi : total:m135_2, partial:m135_3
# 135| valnum = unique
# 136| r136_1(glval<int>) = VariableAddress[b] :
# 136| valnum = unique
# 136| r136_2(glval<A *>) = VariableAddress[global_a] :
# 136| valnum = r136_2, r137_2, r139_3, r140_2
# 136| r136_3(A *) = Load[global_a] : &:r136_2, ~m135_3
# 136| valnum = r136_3, r137_3, r139_4
# 136| r136_4(glval<int>) = FieldAddress[x] : r136_3
# 136| valnum = r136_4, r137_4, r139_5
# 136| r136_5(int) = Load[?] : &:r136_4, ~m135_4
# 136| valnum = m136_6, m137_6, r136_5, r137_5
# 136| m136_6(int) = Store[b] : &:r136_1, r136_5
# 136| valnum = m136_6, m137_6, r136_5, r137_5
# 137| r137_1(glval<int>) = VariableAddress[c] :
# 137| valnum = unique
# 137| r137_2(glval<A *>) = VariableAddress[global_a] :
# 137| valnum = r136_2, r137_2, r139_3, r140_2
# 137| r137_3(A *) = Load[global_a] : &:r137_2, ~m135_3
# 137| valnum = r136_3, r137_3, r139_4
# 137| r137_4(glval<int>) = FieldAddress[x] : r137_3
# 137| valnum = r136_4, r137_4, r139_5
# 137| r137_5(int) = Load[?] : &:r137_4, ~m135_4
# 137| valnum = m136_6, m137_6, r136_5, r137_5
# 137| m137_6(int) = Store[c] : &:r137_1, r137_5
# 137| valnum = m136_6, m137_6, r136_5, r137_5
# 139| r139_1(glval<int>) = VariableAddress[global_n] :
# 139| valnum = unique
# 139| r139_2(int) = Load[global_n] : &:r139_1, ~m135_3
# 139| valnum = m139_6, r139_2
# 139| r139_3(glval<A *>) = VariableAddress[global_a] :
# 139| valnum = r136_2, r137_2, r139_3, r140_2
# 139| r139_4(A *) = Load[global_a] : &:r139_3, ~m135_3
# 139| valnum = r136_3, r137_3, r139_4
# 139| r139_5(glval<int>) = FieldAddress[x] : r139_4
# 139| valnum = r136_4, r137_4, r139_5
# 139| m139_6(int) = Store[?] : &:r139_5, r139_2
# 139| valnum = m139_6, r139_2
# 139| m139_7(unknown) = Chi : total:m135_4, partial:m139_6
# 139| valnum = unique
# 140| r140_1(glval<int>) = VariableAddress[d] :
# 140| valnum = unique
# 140| r140_2(glval<A *>) = VariableAddress[global_a] :
# 140| valnum = r136_2, r137_2, r139_3, r140_2
# 140| r140_3(A *) = Load[global_a] : &:r140_2, ~m139_7
# 140| valnum = unique
# 140| r140_4(glval<int>) = FieldAddress[x] : r140_3
# 140| valnum = unique
# 140| r140_5(int) = Load[?] : &:r140_4, ~m139_7
# 140| valnum = m140_6, r140_5
# 140| m140_6(int) = Store[d] : &:r140_1, r140_5
# 140| valnum = m140_6, r140_5
# 141| v141_1(void) = NoOp :
# 135| v135_5(void) = ReturnVoid :
# 135| v135_6(void) = AliasedUse : ~m139_7
# 135| v135_7(void) = ExitFunction :
# 143| void test_read_arg_different(A*)
# 143| Block 0
# 143| v143_1(void) = EnterFunction :
# 143| m143_2(unknown) = AliasedDefinition :
# 143| valnum = unique
# 143| m143_3(unknown) = InitializeNonLocal :
# 143| valnum = unique
# 143| m143_4(unknown) = Chi : total:m143_2, partial:m143_3
# 143| valnum = unique
# 143| r143_5(glval<A *>) = VariableAddress[pa] :
# 143| valnum = r143_5, r144_2, r145_2, r147_3, r149_2
# 143| m143_6(A *) = InitializeParameter[pa] : &:r143_5
# 143| valnum = m143_6, r143_7, r144_3, r145_3, r147_4, r149_3
# 143| r143_7(A *) = Load[pa] : &:r143_5, m143_6
# 143| valnum = m143_6, r143_7, r144_3, r145_3, r147_4, r149_3
# 143| m143_8(unknown) = InitializeIndirection[pa] : &:r143_7
# 143| valnum = unique
# 144| r144_1(glval<int>) = VariableAddress[b] :
# 144| valnum = unique
# 144| r144_2(glval<A *>) = VariableAddress[pa] :
# 144| valnum = r143_5, r144_2, r145_2, r147_3, r149_2
# 144| r144_3(A *) = Load[pa] : &:r144_2, m143_6
# 144| valnum = m143_6, r143_7, r144_3, r145_3, r147_4, r149_3
# 144| r144_4(glval<int>) = FieldAddress[x] : r144_3
# 144| valnum = r144_4, r149_4
# 144| r144_5(int) = Load[?] : &:r144_4, ~m143_8
# 144| valnum = m144_6, m149_6, r144_5, r149_5
# 144| m144_6(int) = Store[b] : &:r144_1, r144_5
# 144| valnum = m144_6, m149_6, r144_5, r149_5
# 145| r145_1(glval<int>) = VariableAddress[c] :
# 145| valnum = unique
# 145| r145_2(glval<A *>) = VariableAddress[pa] :
# 145| valnum = r143_5, r144_2, r145_2, r147_3, r149_2
# 145| r145_3(A *) = Load[pa] : &:r145_2, m143_6
# 145| valnum = m143_6, r143_7, r144_3, r145_3, r147_4, r149_3
# 145| r145_4(glval<int>) = FieldAddress[y] : r145_3
# 145| valnum = r145_4, r147_5
# 145| r145_5(int) = Load[?] : &:r145_4, ~m143_8
# 145| valnum = m145_6, r145_5
# 145| m145_6(int) = Store[c] : &:r145_1, r145_5
# 145| valnum = m145_6, r145_5
# 147| r147_1(glval<int>) = VariableAddress[global_n] :
# 147| valnum = unique
# 147| r147_2(int) = Load[global_n] : &:r147_1, ~m143_3
# 147| valnum = m147_6, r147_2
# 147| r147_3(glval<A *>) = VariableAddress[pa] :
# 147| valnum = r143_5, r144_2, r145_2, r147_3, r149_2
# 147| r147_4(A *) = Load[pa] : &:r147_3, m143_6
# 147| valnum = m143_6, r143_7, r144_3, r145_3, r147_4, r149_3
# 147| r147_5(glval<int>) = FieldAddress[y] : r147_4
# 147| valnum = r145_4, r147_5
# 147| m147_6(int) = Store[?] : &:r147_5, r147_2
# 147| valnum = m147_6, r147_2
# 147| m147_7(unknown) = Chi : total:m143_8, partial:m147_6
# 147| valnum = unique
# 149| r149_1(glval<int>) = VariableAddress[d] :
# 149| valnum = unique
# 149| r149_2(glval<A *>) = VariableAddress[pa] :
# 149| valnum = r143_5, r144_2, r145_2, r147_3, r149_2
# 149| r149_3(A *) = Load[pa] : &:r149_2, m143_6
# 149| valnum = m143_6, r143_7, r144_3, r145_3, r147_4, r149_3
# 149| r149_4(glval<int>) = FieldAddress[x] : r149_3
# 149| valnum = r144_4, r149_4
# 149| r149_5(int) = Load[?] : &:r149_4, ~m143_8
# 149| valnum = m144_6, m149_6, r144_5, r149_5
# 149| m149_6(int) = Store[d] : &:r149_1, r149_5
# 149| valnum = m144_6, m149_6, r144_5, r149_5
# 150| v150_1(void) = NoOp :
# 143| v143_9(void) = ReturnIndirection[pa] : &:r143_7, m147_7
# 143| v143_10(void) = ReturnVoid :
# 143| v143_11(void) = AliasedUse : m143_3
# 143| v143_12(void) = ExitFunction :
# 152| void test_read_global_different(int)
# 152| Block 0
# 152| v152_1(void) = EnterFunction :
# 152| m152_2(unknown) = AliasedDefinition :
# 152| valnum = unique
# 152| m152_3(unknown) = InitializeNonLocal :
# 152| valnum = unique
# 152| m152_4(unknown) = Chi : total:m152_2, partial:m152_3
# 152| valnum = unique
# 152| r152_5(glval<int>) = VariableAddress[n] :
# 152| valnum = r152_5, r156_1
# 152| m152_6(int) = InitializeParameter[n] : &:r152_5
# 152| valnum = m152_6, m156_6, r156_2
# 153| r153_1(glval<int>) = VariableAddress[b] :
# 153| valnum = unique
# 153| r153_2(glval<A *>) = VariableAddress[global_a] :
# 153| valnum = r153_2, r154_2, r156_3, r158_2
# 153| r153_3(A *) = Load[global_a] : &:r153_2, ~m152_3
# 153| valnum = r153_3, r154_3, r156_4
# 153| r153_4(glval<int>) = FieldAddress[x] : r153_3
# 153| valnum = r153_4, r154_4
# 153| r153_5(int) = Load[?] : &:r153_4, ~m152_4
# 153| valnum = m153_6, m154_6, r153_5, r154_5
# 153| m153_6(int) = Store[b] : &:r153_1, r153_5
# 153| valnum = m153_6, m154_6, r153_5, r154_5
# 154| r154_1(glval<int>) = VariableAddress[c] :
# 154| valnum = unique
# 154| r154_2(glval<A *>) = VariableAddress[global_a] :
# 154| valnum = r153_2, r154_2, r156_3, r158_2
# 154| r154_3(A *) = Load[global_a] : &:r154_2, ~m152_3
# 154| valnum = r153_3, r154_3, r156_4
# 154| r154_4(glval<int>) = FieldAddress[x] : r154_3
# 154| valnum = r153_4, r154_4
# 154| r154_5(int) = Load[?] : &:r154_4, ~m152_4
# 154| valnum = m153_6, m154_6, r153_5, r154_5
# 154| m154_6(int) = Store[c] : &:r154_1, r154_5
# 154| valnum = m153_6, m154_6, r153_5, r154_5
# 156| r156_1(glval<int>) = VariableAddress[n] :
# 156| valnum = r152_5, r156_1
# 156| r156_2(int) = Load[n] : &:r156_1, m152_6
# 156| valnum = m152_6, m156_6, r156_2
# 156| r156_3(glval<A *>) = VariableAddress[global_a] :
# 156| valnum = r153_2, r154_2, r156_3, r158_2
# 156| r156_4(A *) = Load[global_a] : &:r156_3, ~m152_3
# 156| valnum = r153_3, r154_3, r156_4
# 156| r156_5(glval<int>) = FieldAddress[y] : r156_4
# 156| valnum = unique
# 156| m156_6(int) = Store[?] : &:r156_5, r156_2
# 156| valnum = m152_6, m156_6, r156_2
# 156| m156_7(unknown) = Chi : total:m152_4, partial:m156_6
# 156| valnum = unique
# 158| r158_1(glval<int>) = VariableAddress[d] :
# 158| valnum = unique
# 158| r158_2(glval<A *>) = VariableAddress[global_a] :
# 158| valnum = r153_2, r154_2, r156_3, r158_2
# 158| r158_3(A *) = Load[global_a] : &:r158_2, ~m156_7
# 158| valnum = unique
# 158| r158_4(glval<int>) = FieldAddress[x] : r158_3
# 158| valnum = unique
# 158| r158_5(int) = Load[?] : &:r158_4, ~m156_7
# 158| valnum = m158_6, r158_5
# 158| m158_6(int) = Store[d] : &:r158_1, r158_5
# 158| valnum = m158_6, r158_5
# 159| v159_1(void) = NoOp :
# 152| v152_7(void) = ReturnVoid :
# 152| v152_8(void) = AliasedUse : ~m156_7
# 152| v152_9(void) = ExitFunction :