diff options
Diffstat (limited to 'src/relooper/test.txt')
-rw-r--r-- | src/relooper/test.txt | 350 |
1 files changed, 287 insertions, 63 deletions
diff --git a/src/relooper/test.txt b/src/relooper/test.txt index d657c6af..82b02ad7 100644 --- a/src/relooper/test.txt +++ b/src/relooper/test.txt @@ -4,15 +4,23 @@ -// block A -if (check == 10) { + // block A + switch (the_var) { + check == 10 { atob(); // block B - btoc(); -} else { + switch (the_var) { + default: { + btoc(); + } + } + break; + } + default: { atoc(); -} -// block C + } + } + // block C @@ -20,13 +28,25 @@ if (check == 10) { -// block A -if (check == 15) { + // block A + switch (the_var) { + check == 15 { // block B -} else { + switch (the_var) { + default: { + } + } + break; + } + default: { // block C -} -// block D + switch (the_var) { + default: { + } + } + } + } + // block D @@ -34,46 +54,81 @@ if (check == 15) { -while(1) { + L0: while(1) { // block A var check = maybe(); + switch (the_var) { + default: { + } + } // block B - if (!(check == 41)) { - break; + switch (the_var) { + check == 41 { + break; + } + default: { + break L0; + } } -} -// block C + } + // block C -- Loop with phi to head -// code 1 -var $i_0 = 0;var $x_0 = 5; -while(1) { + // code 1 + switch (the_var) { + default: { + var $i_0 = 0;var $x_0 = 5; + } + } + L1: while(1) { // code 2 - if (!($2)) { - var $x_1 = $x_0; - label = 18; - break; + switch (the_var) { + $2 { + break; + } + default: { + var $x_1 = $x_0; + label = 7; + break L1; + } } // code 3 - if ($6) { - break; - } else { - var $i_0 = $7;var $x_0 = $5; + switch (the_var) { + $6 { + break L1; + break; + } + default: { + var $i_0 = $7;var $x_0 = $5; } -} -if (label == 18) { + } + } + if (label == 7) { // code 7 -} -// code 4 -if ($10) { + } + // code 4 + switch (the_var) { + $10 { // code 5 -} -// code 6 -var $x_1 = $13; -// code 7 + switch (the_var) { + default: { + } + } + break; + } + default: { + } + } + // code 6 + switch (the_var) { + default: { + var $x_1 = $13; + } + } + // code 7 @@ -81,18 +136,30 @@ var $x_1 = $13; -// block A................................................................................................... -if (chak()) { + // block A................................................................................................... + switch (the_var) { + chak() { atob(); // block B................................................................................................... - btod(); + switch (the_var) { + default: { + btod(); + } + } // block D -} else { + break; + } + default: { atoc(); // block C................................................................................................... - ctod2(); + switch (the_var) { + default: { + ctod2(); + } + } // block D -} + } + } @@ -100,14 +167,27 @@ if (chak()) { -// block A -if (!(check == 10)) { + // block A + switch (the_var) { + check == 10 { + break; + } + default: { return C; -} -while(1) { + } + } + while(1) { // block B + switch (the_var) { + default: { + } + } // block D -} + switch (the_var) { + default: { + } + } + } @@ -115,24 +195,168 @@ while(1) { -// block A -do { - if (expensive()) { - label = 33; - } else { - // block B - if (expensive2()) { - label = 33; - break; - } - // block D + // block A + L1: do { + switch (the_var) { + expensive() { + label = 3; + break; + } + default: { + // block B + switch (the_var) { + expensive2() { + label = 3; + break L1; + break; + } + default: { + } + } + // block D + switch (the_var) { + default: { + } + } } -} while(0); -if (label == 33) { + } + } while(0); + if (label == 3) { // block C; -} -while(1) { + switch (the_var) { + default: { + } + } + } + while(1) { // block E + switch (the_var) { + default: { + } + } // block F -} + switch (the_var) { + default: { + } + } + } + + + +-- conditional loop -- + + + + // block A + L1: do { + switch (the_var) { + shouldLoop() { + while(1) { + // block B + switch (the_var) { + moarLoop() { + break; + } + default: { + break L1; + } + } + } + break; + } + default: { + } + } + } while(0); + // block C + + + +-- If pattern, emulated -- + + + + label = 1; + L0: while(1) { + switch(label|0) { + case 3: { + // block C + break; + } + case 1: { + // block A + if (check == 10) { + atob(); + label = 2; + continue L0; + } else { + atoc(); + label = 3; + continue L0; + } + break; + } + case 2: { + // block B + switch (b_check()) { + case 17: { + btoc(); + label = 3; + continue L0; + break; + } + default: { + label = 1; + continue L0; + } + } + break; + } + } + } + + + +-- If pattern, emulated, using MakeOutputBuffer -- + + + + label = 1; + L0: while(1) { + switch(label|0) { + case 3: { + // block C + break; + } + case 1: { + // block A + if (check == 10) { + atob(); + label = 2; + continue L0; + } else { + atoc(); + label = 3; + continue L0; + } + break; + } + case 2: { + // block B + switch (b_check()) { + case 17: { + btoc(); + label = 3; + continue L0; + break; + } + default: { + label = 1; + continue L0; + } + } + break; + } + } + } |