Pseudocode: Add debug information to magic instructions

This commit is contained in:
Alexey Sedunov
2014-06-26 13:06:28 +04:00
parent d636d362b7
commit 4707f4a5e9
125 changed files with 1204 additions and 1157 deletions
@@ -6,7 +6,7 @@ fun test(array: Array<(Int)->Unit>) {
L0:
1 <START>
v(array: Array<(Int)->Unit>)
magic(array: Array<(Int)->Unit>) -> <v0>
magic[FAKE_INITIALIZER](array: Array<(Int)->Unit>) -> <v0>
w(array|<v0>)
2 mark({ array[11](3) })
mark(array[11])
@@ -18,9 +18,9 @@ L0:
mark(array[11](3))
call(array[11](3), invoke|<v3>, <v4>) -> <v5>
L1:
1 <END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
<SINK> PREV:[<ERROR>, <END>]
=====================
@@ -3,11 +3,11 @@ fun test(array: Array<(Int)->Unit>) {
array[11](3)
}
---------------------
<v0>: {<: Array<(Int) -> Unit>} NEW: magic(array: Array<(Int)->Unit>) -> <v0>
array <v1>: {<: Array<(Int) -> Unit>} NEW: r(array) -> <v1>
11 <v2>: Int NEW: r(11) -> <v2>
array[11] <v3>: {<: (Int) -> Unit} NEW: call(array[11], get|<v1>, <v2>) -> <v3>
3 <v4>: Int NEW: r(3) -> <v4>
array[11](3) <v5>: * NEW: call(array[11](3), invoke|<v3>, <v4>) -> <v5>
{ array[11](3) } <v5>: * COPY
<v0>: {<: Array<(Int) -> Unit>} NEW: magic[FAKE_INITIALIZER](array: Array<(Int)->Unit>) -> <v0>
array <v1>: {<: Array<(Int) -> Unit>} NEW: r(array) -> <v1>
11 <v2>: Int NEW: r(11) -> <v2>
array[11] <v3>: {<: (Int) -> Unit} NEW: call(array[11], get|<v1>, <v2>) -> <v3>
3 <v4>: Int NEW: r(3) -> <v4>
array[11](3) <v5>: * NEW: call(array[11](3), invoke|<v3>, <v4>) -> <v5>
{ array[11](3) } <v5>: * COPY
=====================
@@ -32,7 +32,7 @@ fun test(ab: Ab) {
L0:
1 <START>
v(ab: Ab)
magic(ab: Ab) -> <v0>
magic[FAKE_INITIALIZER](ab: Ab) -> <v0>
w(ab|<v0>)
2 mark({ ab.getArray()[1] })
mark(ab.getArray()[1])
@@ -13,11 +13,11 @@ fun test(ab: Ab) {
ab.getArray()[1]
}
---------------------
<v0>: {<: Ab} NEW: magic(ab: Ab) -> <v0>
ab <v1>: {<: Ab} NEW: r(ab) -> <v1>
getArray() <v2>: {<: Array<Int>} NEW: call(getArray(), getArray|<v1>) -> <v2>
ab.getArray() <v2>: {<: Array<Int>} COPY
1 <v3>: Int NEW: r(1) -> <v3>
<v0>: {<: Ab} NEW: magic[FAKE_INITIALIZER](ab: Ab) -> <v0>
ab <v1>: {<: Ab} NEW: r(ab) -> <v1>
getArray() <v2>: {<: Array<Int>} NEW: call(getArray(), getArray|<v1>) -> <v2>
ab.getArray() <v2>: {<: Array<Int>} COPY
1 <v3>: Int NEW: r(1) -> <v3>
ab.getArray()[1] <v4>: * NEW: call(ab.getArray()[1], get|<v2>, <v3>) -> <v4>
{ ab.getArray()[1] } <v4>: * COPY
=====================
{ ab.getArray()[1] } <v4>: * COPY
=====================
@@ -6,7 +6,7 @@ fun foo(a: Array<Int>) {
L0:
1 <START>
v(a: Array<Int>)
magic(a: Array<Int>) -> <v0>
magic[FAKE_INITIALIZER](a: Array<Int>) -> <v0>
w(a|<v0>)
2 mark({ a[0]++ })
mark(a[0])
@@ -20,9 +20,9 @@ L0:
r(0) -> <v6>
call(a[0]++, set|<v5>, <v6>, <v4>) -> <v7>
L1:
1 <END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
<SINK> PREV:[<ERROR>, <END>]
=====================
+6 -6
View File
@@ -3,10 +3,10 @@ fun foo(a: Array<Int>) {
a[0]++
}
---------------------
<v0>: {<: Array<Int>} NEW: magic(a: Array<Int>) -> <v0>
a <v5>: {<: Array<Int>} NEW: r(a) -> <v5>
0 <v6>: Int NEW: r(0) -> <v6>
a[0] <v3>: Int NEW: call(a[0], get|<v1>, <v2>) -> <v3>
a[0]++ <v3>: Int COPY
{ a[0]++ } <v3>: Int COPY
<v0>: {<: Array<Int>} NEW: magic[FAKE_INITIALIZER](a: Array<Int>) -> <v0>
a <v5>: {<: Array<Int>} NEW: r(a) -> <v5>
0 <v6>: Int NEW: r(0) -> <v6>
a[0] <v3>: Int NEW: call(a[0], get|<v1>, <v2>) -> <v3>
a[0]++ <v3>: Int COPY
{ a[0]++ } <v3>: Int COPY
=====================
@@ -6,7 +6,7 @@ fun foo(a: Array<Int>) {
L0:
1 <START>
v(a: Array<Int>)
magic(a: Array<Int>) -> <v0>
magic[FAKE_INITIALIZER](a: Array<Int>) -> <v0>
w(a|<v0>)
2 mark({ a[1] = 2 })
mark(a[1])
@@ -15,9 +15,9 @@ L0:
r(2) -> <v3>
call(a[1] = 2, set|<v1>, <v2>, <v3>) -> <v4>
L1:
1 <END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
<SINK> PREV:[<ERROR>, <END>]
=====================
+1 -1
View File
@@ -3,7 +3,7 @@ fun foo(a: Array<Int>) {
a[1] = 2
}
---------------------
<v0>: {<: Array<Int>} NEW: magic(a: Array<Int>) -> <v0>
<v0>: {<: Array<Int>} NEW: magic[FAKE_INITIALIZER](a: Array<Int>) -> <v0>
a <v1>: {<: Array<Int>} NEW: r(a) -> <v1>
1 <v2>: Int NEW: r(1) -> <v2>
2 <v3>: Int NEW: r(2) -> <v3>
@@ -6,7 +6,7 @@ fun foo(a: Array<Int>) {
L0:
1 <START>
v(a: Array<Int>)
magic(a: Array<Int>) -> <v0>
magic[FAKE_INITIALIZER](a: Array<Int>) -> <v0>
w(a|<v0>)
2 mark({ a[0] += 1 })
mark(a[0])
@@ -21,9 +21,9 @@ L0:
r(0) -> <v7>
call(a[0] += 1, set|<v6>, <v7>, <v5>) -> <v8>
L1:
1 <END> NEXT:[<SINK>]
1 <END> NEXT:[<SINK>]
error:
<ERROR> PREV:[]
<ERROR> PREV:[]
sink:
<SINK> PREV:[<ERROR>, <END>]
<SINK> PREV:[<ERROR>, <END>]
=====================
@@ -3,11 +3,11 @@ fun foo(a: Array<Int>) {
a[0] += 1
}
---------------------
<v0>: {<: Array<Int>} NEW: magic(a: Array<Int>) -> <v0>
a <v6>: {<: Array<Int>} NEW: r(a) -> <v6>
0 <v7>: Int NEW: r(0) -> <v7>
a[0] <v3>: Int NEW: call(a[0], get|<v1>, <v2>) -> <v3>
1 <v4>: Int NEW: r(1) -> <v4>
a[0] += 1 <v8>: * NEW: call(a[0] += 1, set|<v6>, <v7>, <v5>) -> <v8>
{ a[0] += 1 } <v8>: * COPY
<v0>: {<: Array<Int>} NEW: magic[FAKE_INITIALIZER](a: Array<Int>) -> <v0>
a <v6>: {<: Array<Int>} NEW: r(a) -> <v6>
0 <v7>: Int NEW: r(0) -> <v7>
a[0] <v3>: Int NEW: call(a[0], get|<v1>, <v2>) -> <v3>
1 <v4>: Int NEW: r(1) -> <v4>
a[0] += 1 <v8>: * NEW: call(a[0] += 1, set|<v6>, <v7>, <v5>) -> <v8>
{ a[0] += 1 } <v8>: * COPY
=====================