Jump on 'continue' to condition entry points for all loops

This commit is contained in:
Svetlana Isakova
2014-08-29 21:36:16 +04:00
parent 25a0854dbd
commit 0b4f313b6d
18 changed files with 267 additions and 23 deletions
@@ -0,0 +1,19 @@
== test ==
fun test(b: Boolean) {
while (true) {
if (b) break;
continue;
}
}
---------------------
<v0>: Boolean NEW: magic[FAKE_INITIALIZER](b: Boolean) -> <v0>
<v2>: * NEW: magic[VALUE_CONSUMER](true|<v1>) -> <v2>
true <v1>: Boolean NEW: r(true) -> <v1>
b <v3>: Boolean NEW: r(b) -> <v3>
break !<v4>: *
if (b) break <v5>: * NEW: merge(if (b) break|!<v4>) -> <v5>
continue !<v6>: *
{ if (b) break; continue; } !<v6>: * COPY
while (true) { if (b) break; continue; } !<v7>: *
{ while (true) { if (b) break; continue; } } !<v7>: * COPY
=====================