4477a96ca7
(to record corresponding call for later simplification in control flow) Generate code for unmapped arguments in control flow
47 lines
1.1 KiB
Plaintext
Vendored
47 lines
1.1 KiB
Plaintext
Vendored
== foo ==
|
|
fun foo(a: Int, b: Int) = a + b
|
|
---------------------
|
|
L0:
|
|
1 <START>
|
|
v(a: Int)
|
|
magic[FAKE_INITIALIZER](a: Int) -> <v0>
|
|
w(a|<v0>)
|
|
v(b: Int)
|
|
magic[FAKE_INITIALIZER](b: Int) -> <v1>
|
|
w(b|<v1>)
|
|
r(a) -> <v2>
|
|
r(b) -> <v3>
|
|
mark(a + b)
|
|
call(a + b, plus|<v2>, <v3>) -> <v4>
|
|
ret(*|<v4>) L1
|
|
L1:
|
|
<END> NEXT:[<SINK>]
|
|
error:
|
|
<ERROR> PREV:[]
|
|
sink:
|
|
<SINK> PREV:[<ERROR>, <END>]
|
|
=====================
|
|
== bar ==
|
|
fun bar(i: Int) {
|
|
foo(1, 1, i)
|
|
}
|
|
---------------------
|
|
L0:
|
|
1 <START>
|
|
v(i: Int)
|
|
magic[FAKE_INITIALIZER](i: Int) -> <v0>
|
|
w(i|<v0>)
|
|
2 mark({ foo(1, 1, i) })
|
|
r(1) -> <v1>
|
|
r(1) -> <v2>
|
|
r(i) -> <v3>
|
|
magic[VALUE_CONSUMER](i|<v3>) -> <v4>
|
|
mark(foo(1, 1, i))
|
|
call(foo(1, 1, i), foo|<v1>, <v2>) -> <v5>
|
|
L1:
|
|
1 <END> NEXT:[<SINK>]
|
|
error:
|
|
<ERROR> PREV:[]
|
|
sink:
|
|
<SINK> PREV:[<ERROR>, <END>]
|
|
===================== |