Pseudocode: Add valued instructions and unbound values to AbstractPseudoValueTest

This commit is contained in:
Alexey Sedunov
2014-06-25 19:32:20 +04:00
parent 21be468e6c
commit f226d99d36
77 changed files with 897 additions and 777 deletions
+17 -17
View File
@@ -9,21 +9,21 @@ fun foo() {
a[10] += 1
}
---------------------
Array<Int> <v0>: {<: Array<Int>} NEW()
3 <v1>: * NEW()
a <v2>: {<: Array<Int>} NEW()
10 <v3>: Int NEW()
4 <v4>: Int NEW()
a[10] = 4 <v5>: * NEW(<v2>, <v3>, <v4>)
2 <v6>: * NEW()
a <v7>: {<: Array<Int>} NEW()
10 <v8>: Int NEW()
a[10] <v9>: * NEW(<v7>, <v8>)
100 <v10>: * NEW()
a <v16>: {<: Array<Int>} NEW()
10 <v17>: Int NEW()
a[10] <v13>: Int NEW(<v11>, <v12>)
1 <v14>: Int NEW()
a[10] += 1 <v18>: * NEW(<v16>, <v17>, <v15>)
{ val a = Array<Int> 3 a[10] = 4 2 a[10] 100 a[10] += 1 } <v18>: * COPY
Array<Int> <v0>: {<: Array<Int>} NEW: call(Array, <init>) -> <v0>
3 <v1>: * NEW: r(3) -> <v1>
a <v2>: {<: Array<Int>} NEW: r(a) -> <v2>
10 <v3>: Int NEW: r(10) -> <v3>
4 <v4>: Int NEW: r(4) -> <v4>
a[10] = 4 <v5>: * NEW: call(a[10] = 4, set|<v2>, <v3>, <v4>) -> <v5>
2 <v6>: * NEW: r(2) -> <v6>
a <v7>: {<: Array<Int>} NEW: r(a) -> <v7>
10 <v8>: Int NEW: r(10) -> <v8>
a[10] <v9>: * NEW: call(a[10], get|<v7>, <v8>) -> <v9>
100 <v10>: * NEW: r(100) -> <v10>
a <v16>: {<: Array<Int>} NEW: r(a) -> <v16>
10 <v17>: Int NEW: r(10) -> <v17>
a[10] <v13>: Int NEW: call(a[10], get|<v11>, <v12>) -> <v13>
1 <v14>: Int NEW: r(1) -> <v14>
a[10] += 1 <v18>: * NEW: call(a[10] += 1, set|<v16>, <v17>, <v15>) -> <v18>
{ val a = Array<Int> 3 a[10] = 4 2 a[10] 100 a[10] += 1 } <v18>: * COPY
=====================
@@ -3,10 +3,11 @@ fun test(array: Array<(Int)->Unit>) {
array[11](3)
}
---------------------
array <v1>: {<: Array<(Int) -> Unit>} NEW()
11 <v2>: Int NEW()
array[11] <v3>: {<: (Int) -> Unit} NEW(<v1>, <v2>)
3 <v4>: Int NEW()
array[11](3) <v5>: * NEW(<v3>, <v4>)
<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], invoke|<v3>, <v4>) -> <v5>
{ array[11](3) } <v5>: * COPY
=====================
@@ -13,10 +13,11 @@ fun test(ab: Ab) {
ab.getArray()[1]
}
---------------------
ab <v1>: {<: Ab} NEW()
getArray() <v2>: {<: Array<Int>} NEW(<v1>)
ab.getArray() <v2>: {<: Array<Int>} COPY
1 <v3>: Int NEW()
ab.getArray()[1] <v4>: * NEW(<v2>, <v3>)
{ ab.getArray()[1] } <v4>: * COPY
<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>
ab.getArray()[1] <v4>: * NEW: call(ab.getArray()[1], get|<v2>, <v3>) -> <v4>
{ ab.getArray()[1] } <v4>: * COPY
=====================
+4 -3
View File
@@ -3,9 +3,10 @@ fun foo(a: Array<Int>) {
a[0]++
}
---------------------
a <v5>: {<: Array<Int>} NEW()
0 <v6>: Int NEW()
a[0] <v3>: Int NEW(<v1>, <v2>)
<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
=====================
+5 -4
View File
@@ -3,9 +3,10 @@ fun foo(a: Array<Int>) {
a[1] = 2
}
---------------------
a <v1>: {<: Array<Int>} NEW()
1 <v2>: Int NEW()
2 <v3>: Int NEW()
a[1] = 2 <v4>: * NEW(<v1>, <v2>, <v3>)
<v0>: {<: Array<Int>} NEW: magic(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>
a[1] = 2 <v4>: * NEW: call(a[1] = 2, set|<v1>, <v2>, <v3>) -> <v4>
{ a[1] = 2 } <v4>: * COPY
=====================
@@ -3,10 +3,11 @@ fun foo(a: Array<Int>) {
a[0] += 1
}
---------------------
a <v6>: {<: Array<Int>} NEW()
0 <v7>: Int NEW()
a[0] <v3>: Int NEW(<v1>, <v2>)
1 <v4>: Int NEW()
a[0] += 1 <v8>: * NEW(<v6>, <v7>, <v5>)
<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
=====================