d815634233
declared directly in the block)
81 lines
3.2 KiB
Plaintext
Vendored
81 lines
3.2 KiB
Plaintext
Vendored
== test ==
|
|
fun test(b: Boolean): (Int) -> Int {
|
|
if (b) {
|
|
fun(n: Int) = n + 1
|
|
}
|
|
else {
|
|
fun(n: Int) = n - 1
|
|
}
|
|
}
|
|
---------------------
|
|
L0:
|
|
1 <START>
|
|
v(b: Boolean)
|
|
magic[FAKE_INITIALIZER](b: Boolean) -> <v0>
|
|
w(b|<v0>)
|
|
2 mark({ if (b) { fun(n: Int) = n + 1 } else { fun(n: Int) = n - 1 } })
|
|
mark(if (b) { fun(n: Int) = n + 1 } else { fun(n: Int) = n - 1 })
|
|
r(b) -> <v1>
|
|
jf(L2|<v1>) NEXT:[mark({ fun(n: Int) = n - 1 }), mark({ fun(n: Int) = n + 1 })]
|
|
3 mark({ fun(n: Int) = n + 1 })
|
|
jmp?(L3) NEXT:[r(fun(n: Int) = n + 1) -> <v2>, d(fun(n: Int) = n + 1)]
|
|
d(fun(n: Int) = n + 1) NEXT:[<SINK>]
|
|
L3 [after local declaration]:
|
|
r(fun(n: Int) = n + 1) -> <v2> PREV:[jmp?(L3)]
|
|
2 jmp(L6) NEXT:[merge(if (b) { fun(n: Int) = n + 1 } else { fun(n: Int) = n - 1 }|<v2>, <v3>) -> <v4>]
|
|
L2 [else branch]:
|
|
3 mark({ fun(n: Int) = n - 1 }) PREV:[jf(L2|<v1>)]
|
|
jmp?(L7) NEXT:[r(fun(n: Int) = n - 1) -> <v3>, d(fun(n: Int) = n - 1)]
|
|
d(fun(n: Int) = n - 1) NEXT:[<SINK>]
|
|
L7 [after local declaration]:
|
|
r(fun(n: Int) = n - 1) -> <v3> PREV:[jmp?(L7)]
|
|
L6 ['if' expression result]:
|
|
2 merge(if (b) { fun(n: Int) = n + 1 } else { fun(n: Int) = n - 1 }|<v2>, <v3>) -> <v4> PREV:[jmp(L6), r(fun(n: Int) = n - 1) -> <v3>]
|
|
L1:
|
|
1 <END> NEXT:[<SINK>]
|
|
error:
|
|
<ERROR> PREV:[]
|
|
sink:
|
|
<SINK> PREV:[<ERROR>, <END>, d(fun(n: Int) = n + 1), d(fun(n: Int) = n - 1)]
|
|
=====================
|
|
== anonymous_0 ==
|
|
fun(n: Int) = n + 1
|
|
---------------------
|
|
L4:
|
|
4 <START>
|
|
v(n: Int)
|
|
magic[FAKE_INITIALIZER](n: Int) -> <v0>
|
|
w(n|<v0>)
|
|
r(n) -> <v1>
|
|
r(1) -> <v2>
|
|
mark(n + 1)
|
|
call(n + 1, plus|<v1>, <v2>) -> <v3>
|
|
ret(*|<v3>) L5
|
|
L5:
|
|
<END> NEXT:[<SINK>]
|
|
error:
|
|
<ERROR> PREV:[]
|
|
sink:
|
|
<SINK> PREV:[<ERROR>, <END>]
|
|
=====================
|
|
== anonymous_1 ==
|
|
fun(n: Int) = n - 1
|
|
---------------------
|
|
L8:
|
|
4 <START>
|
|
v(n: Int)
|
|
magic[FAKE_INITIALIZER](n: Int) -> <v0>
|
|
w(n|<v0>)
|
|
r(n) -> <v1>
|
|
r(1) -> <v2>
|
|
mark(n - 1)
|
|
call(n - 1, minus|<v1>, <v2>) -> <v3>
|
|
ret(*|<v3>) L9
|
|
L9:
|
|
<END> NEXT:[<SINK>]
|
|
error:
|
|
<ERROR> PREV:[]
|
|
sink:
|
|
<SINK> PREV:[<ERROR>, <END>]
|
|
=====================
|