Updated tests for control flow: call instruction stores call element

instead of callee expression
This commit is contained in:
Svetlana Isakova
2014-07-02 18:27:19 +04:00
parent 72e9822d99
commit aa26db0538
110 changed files with 1084 additions and 1084 deletions
@@ -28,33 +28,33 @@ L0:
mark(2.toLong())
r(2) -> <v3>
mark(toLong())
call(toLong, toLong|<v3>) -> <v4>
call(toLong(), toLong|<v3>) -> <v4>
r(a) -> <v5>
r(3) -> <v6>
mark(foo(a, 3))
call(foo, foo|<v5>, <v6>) -> <v7>
call(foo(a, 3), foo|<v5>, <v6>) -> <v7>
mark(genfun<Any>())
call(genfun, genfun) -> <v8>
call(genfun<Any>(), genfun) -> <v8>
mark({1})
jmp?(L2) NEXT:[r({1}) -> <v9>, d({1})]
d({1}) NEXT:[<SINK>]
L2:
r({1}) -> <v9> PREV:[jmp?(L2)]
mark(flfun {1})
call(flfun, flfun|<v9>) -> <v10>
call(flfun {1}, flfun|<v9>) -> <v10>
mark(3.equals(4))
r(3) -> <v11>
r(4) -> <v12>
mark(equals(4))
call(equals, equals|<v11>, <v12>) -> <v13>
call(equals(4), equals|<v11>, <v12>) -> <v13>
r(3) -> <v14>
r(4) -> <v15>
mark(3 equals 4)
call(equals, equals|<v14>, <v15>) -> <v16>
call(3 equals 4, equals|<v14>, <v15>) -> <v16>
r(1) -> <v17>
r(2) -> <v18>
mark(1 + 2)
call(+, plus|<v17>, <v18>) -> <v19>
call(1 + 2, plus|<v17>, <v18>) -> <v19>
r(a) -> <v20>
jf(L5|<v20>) NEXT:[magic(a && true|<v20>, <v21>) -> <v22>, r(true) -> <v21>]
r(true) -> <v21>
+31 -31
View File
@@ -17,47 +17,47 @@ fun f(a : Boolean) : Unit {
}
---------------------
<v0>: Boolean NEW: magic(a : Boolean) -> <v0>
1 <v1>: * NEW: r(1) -> <v1>
a <v2>: * NEW: r(a) -> <v2>
2 <v3>: {<: Number} NEW: r(2) -> <v3>
toLong() <v4>: * NEW: call(toLong, toLong|<v3>) -> <v4>
2.toLong() <v4>: * COPY
a <v5>: Boolean NEW: r(a) -> <v5>
3 <v6>: Int NEW: r(3) -> <v6>
foo(a, 3) <v7>: * NEW: call(foo, foo|<v5>, <v6>) -> <v7>
genfun<Any>() <v8>: * NEW: call(genfun, genfun) -> <v8>
{1} <v9>: {<: () -> Any} NEW: r({1}) -> <v9>
flfun {1} <v10>: * NEW: call(flfun, flfun|<v9>) -> <v10>
3 <v11>: OR{{<: Any}, {<: Any}} NEW: r(3) -> <v11>
4 <v12>: {<: Any?} NEW: r(4) -> <v12>
equals(4) <v13>: * NEW: call(equals, equals|<v11>, <v12>) -> <v13>
3.equals(4) <v13>: * COPY
3 <v14>: OR{{<: Any}, {<: Any}} NEW: r(3) -> <v14>
4 <v15>: {<: Any?} NEW: r(4) -> <v15>
3 equals 4 <v16>: * NEW: call(equals, equals|<v14>, <v15>) -> <v16>
1 <v17>: Int NEW: r(1) -> <v17>
2 <v18>: Int NEW: r(2) -> <v18>
1 + 2 <v19>: * NEW: call(+, plus|<v17>, <v18>) -> <v19>
a <v20>: Boolean NEW: r(a) -> <v20>
true <v21>: Boolean NEW: r(true) -> <v21>
a && true <v22>: * NEW: magic(a && true|<v20>, <v21>) -> <v22>
a <v23>: Boolean NEW: r(a) -> <v23>
false <v24>: Boolean NEW: r(false) -> <v24>
a || false <v25>: * NEW: magic(a || false|<v23>, <v24>) -> <v25>
{ 1 a 2.toLong() foo(a, 3) genfun<Any>() flfun {1} 3.equals(4) 3 equals 4 1 + 2 a && true a || false } <v25>: * COPY
<v0>: Boolean NEW: magic(a : Boolean) -> <v0>
1 <v1>: * NEW: r(1) -> <v1>
a <v2>: * NEW: r(a) -> <v2>
2 <v3>: {<: Number} NEW: r(2) -> <v3>
toLong() <v4>: * NEW: call(toLong(), toLong|<v3>) -> <v4>
2.toLong() <v4>: * COPY
a <v5>: Boolean NEW: r(a) -> <v5>
3 <v6>: Int NEW: r(3) -> <v6>
foo(a, 3) <v7>: * NEW: call(foo(a, 3), foo|<v5>, <v6>) -> <v7>
genfun<Any>() <v8>: * NEW: call(genfun<Any>(), genfun) -> <v8>
{1} <v9>: {<: () -> Any} NEW: r({1}) -> <v9>
flfun {1} <v10>: * NEW: call(flfun {1}, flfun|<v9>) -> <v10>
3 <v11>: OR{{<: Any}, {<: Any}} NEW: r(3) -> <v11>
4 <v12>: {<: Any?} NEW: r(4) -> <v12>
equals(4) <v13>: * NEW: call(equals(4), equals|<v11>, <v12>) -> <v13>
3.equals(4) <v13>: * COPY
3 <v14>: OR{{<: Any}, {<: Any}} NEW: r(3) -> <v14>
4 <v15>: {<: Any?} NEW: r(4) -> <v15>
3 equals 4 <v16>: * NEW: call(3 equals 4, equals|<v14>, <v15>) -> <v16>
1 <v17>: Int NEW: r(1) -> <v17>
2 <v18>: Int NEW: r(2) -> <v18>
1 + 2 <v19>: * NEW: call(1 + 2, plus|<v17>, <v18>) -> <v19>
a <v20>: Boolean NEW: r(a) -> <v20>
true <v21>: Boolean NEW: r(true) -> <v21>
a && true <v22>: * NEW: magic(a && true|<v20>, <v21>) -> <v22>
a <v23>: Boolean NEW: r(a) -> <v23>
false <v24>: Boolean NEW: r(false) -> <v24>
a || false <v25>: * NEW: magic(a || false|<v23>, <v24>) -> <v25>
{ 1 a 2.toLong() foo(a, 3) genfun<Any>() flfun {1} 3.equals(4) 3 equals 4 1 + 2 a && true a || false } <v25>: * COPY
=====================
== anonymous_0 ==
{1}
---------------------
1 <v0>: Int NEW: r(1) -> <v0>
1 <v0>: Int COPY
1 <v0>: Int COPY
=====================
== foo ==
fun foo(a : Boolean, b : Int) : Unit {}
---------------------
<v0>: Boolean NEW: magic(a : Boolean) -> <v0>
<v1>: Int NEW: magic(b : Int) -> <v1>
<v1>: Int NEW: magic(b : Int) -> <v1>
=====================
== genfun ==
fun genfun<T>() : Unit {}