diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/relooper/Relooper.cpp | 10 | ||||
-rw-r--r-- | src/relooper/test.txt | 108 | ||||
-rw-r--r-- | src/relooper/test2.txt | 12 | ||||
-rw-r--r-- | src/relooper/test3.txt | 34 | ||||
-rw-r--r-- | src/relooper/test4.txt | 24 | ||||
-rw-r--r-- | src/relooper/test5.txt | 46 | ||||
-rw-r--r-- | src/relooper/test6.txt | 12 | ||||
-rw-r--r-- | src/relooper/test_debug.txt | 12 | ||||
-rw-r--r-- | src/relooper/test_fuzz1.txt | 40 | ||||
-rw-r--r-- | src/relooper/test_fuzz2.txt | 10 | ||||
-rw-r--r-- | src/relooper/test_fuzz3.txt | 2 | ||||
-rw-r--r-- | src/relooper/test_fuzz4.txt | 16 | ||||
-rw-r--r-- | src/relooper/test_fuzz5.txt | 82 | ||||
-rw-r--r-- | src/relooper/test_fuzz6.txt | 186 | ||||
-rw-r--r-- | src/relooper/test_inf.txt | 698 |
15 files changed, 647 insertions, 645 deletions
diff --git a/src/relooper/Relooper.cpp b/src/relooper/Relooper.cpp index 7ceeb2f8..aa7e71a1 100644 --- a/src/relooper/Relooper.cpp +++ b/src/relooper/Relooper.cpp @@ -18,6 +18,8 @@ static void PrintDebug(const char *Format, ...); #define DebugDump(x, ...) #endif +#define INDENTATION 1 + struct Indenter { static int CurrIndent; @@ -34,8 +36,8 @@ static int OutputBufferSize = 0; void PrintIndented(const char *Format, ...) { assert(OutputBuffer); - assert(OutputBuffer + Indenter::CurrIndent*2 - OutputBufferRoot < OutputBufferSize); - for (int i = 0; i < Indenter::CurrIndent*2; i++, OutputBuffer++) *OutputBuffer = ' '; + assert(OutputBuffer + Indenter::CurrIndent*INDENTATION - OutputBufferRoot < OutputBufferSize); + for (int i = 0; i < Indenter::CurrIndent*INDENTATION; i++, OutputBuffer++) *OutputBuffer = ' '; va_list Args; va_start(Args, Format); int left = OutputBufferSize - (OutputBuffer - OutputBufferRoot); @@ -47,8 +49,8 @@ void PrintIndented(const char *Format, ...) { void PutIndented(const char *String) { assert(OutputBuffer); - assert(OutputBuffer + Indenter::CurrIndent*2 - OutputBufferRoot < OutputBufferSize); - for (int i = 0; i < Indenter::CurrIndent*2; i++, OutputBuffer++) *OutputBuffer = ' '; + assert(OutputBuffer + Indenter::CurrIndent*INDENTATION - OutputBufferRoot < OutputBufferSize); + for (int i = 0; i < Indenter::CurrIndent*INDENTATION; i++, OutputBuffer++) *OutputBuffer = ' '; int left = OutputBufferSize - (OutputBuffer - OutputBufferRoot); int needed = strlen(String)+1; assert(needed < left); diff --git a/src/relooper/test.txt b/src/relooper/test.txt index b3535592..6c910846 100644 --- a/src/relooper/test.txt +++ b/src/relooper/test.txt @@ -6,11 +6,11 @@ // block A if (check == 10) { - atob(); - // block B - btoc(); + atob(); + // block B + btoc(); } else { - atoc(); + atoc(); } // block C @@ -22,9 +22,9 @@ if (check == 10) { // block A if (check == 15) { - // block B + // block B } else { - // block C + // block C } // block D @@ -35,12 +35,12 @@ if (check == 15) { while(1) { - // block A - var check = maybe(); - // block B - if (!(check == 41)) { - break; - } + // block A + var check = maybe(); + // block B + if (!(check == 41)) { + break; + } } // block C @@ -51,25 +51,25 @@ while(1) { // code 1 var $i_0 = 0;var $x_0 = 5; while(1) { - // code 2 - if (!($2)) { - var $x_1 = $x_0; - label = 18; - break; - } - // code 3 - if ($6) { - break; - } else { - var $i_0 = $7;var $x_0 = $5; - } + // code 2 + if (!($2)) { + var $x_1 = $x_0; + label = 18; + break; + } + // code 3 + if ($6) { + break; + } else { + var $i_0 = $7;var $x_0 = $5; + } } if (label == 18) { - // code 7 + // code 7 } // code 4 if ($10) { - // code 5 + // code 5 } // code 6 var $x_1 = $13; @@ -83,15 +83,15 @@ var $x_1 = $13; // block A................................................................................................... if (chak()) { - atob(); - // block B................................................................................................... - btod(); - // block D + atob(); + // block B................................................................................................... + btod(); + // block D } else { - atoc(); - // block C................................................................................................... - ctod2(); - // block D + atoc(); + // block C................................................................................................... + ctod2(); + // block D } @@ -102,11 +102,11 @@ if (chak()) { // block A if (!(check == 10)) { - return C; + return C; } while(1) { - // block B - // block D + // block B + // block D } @@ -117,23 +117,23 @@ while(1) { // block A do { - if (expensive()) { - label = 33; - } else { - // block B - if (expensive2()) { - label = 33; - break; - } - // block D + if (expensive()) { + label = 33; + } else { + // block B + if (expensive2()) { + label = 33; + break; } + // block D + } } while(0); if (label == 33) { - // block C; + // block C; } while(1) { - // block E - // block F + // block E + // block F } @@ -144,12 +144,12 @@ while(1) { // block A if (shouldLoop()) { - while(1) { - // block B - if (!(moarLoop())) { - break; - } + while(1) { + // block B + if (!(moarLoop())) { + break; } + } } // block C diff --git a/src/relooper/test2.txt b/src/relooper/test2.txt index c77ce491..2f3e5ca1 100644 --- a/src/relooper/test2.txt +++ b/src/relooper/test2.txt @@ -1,12 +1,12 @@ ep do { - if (ep -> LBB1) { - LBB1 - if (!(LBB1 -> LBB2)) { - break; - } - LBB2 + if (ep -> LBB1) { + LBB1 + if (!(LBB1 -> LBB2)) { + break; } + LBB2 + } } while(0); LBB3 diff --git a/src/relooper/test3.txt b/src/relooper/test3.txt index 6049ee48..51199f72 100644 --- a/src/relooper/test3.txt +++ b/src/relooper/test3.txt @@ -1,27 +1,27 @@ ep do { - if (ep -> LBB1) { - LBB1 - if (!(LBB1 -> LBB2)) { - break; - } - LBB2 + if (ep -> LBB1) { + LBB1 + if (!(LBB1 -> LBB2)) { + break; } + LBB2 + } } while(0); LBB3 do { - if (LBB3 -> LBB4) { - LBB4 - if (!(LBB4 -> LBB5)) { - break; - } - while(1) { - LBB5 - if (LBB5 -> LBB6) { - break; - } - } + if (LBB3 -> LBB4) { + LBB4 + if (!(LBB4 -> LBB5)) { + break; } + while(1) { + LBB5 + if (LBB5 -> LBB6) { + break; + } + } + } } while(0); LBB6 diff --git a/src/relooper/test4.txt b/src/relooper/test4.txt index 3427ff18..ab7051c1 100644 --- a/src/relooper/test4.txt +++ b/src/relooper/test4.txt @@ -1,23 +1,23 @@ //19 do { - if ( 1 ) { - //20 - if (!( 1 )) { - label = 4; - break; - } - //21 - } else { - label = 4; + if ( 1 ) { + //20 + if (!( 1 )) { + label = 4; + break; } + //21 + } else { + label = 4; + } } while(0); if (label == 4) { - //22 + //22 } //23 if ( 1 ) { - //24 + //24 } else { - //28 + //28 } diff --git a/src/relooper/test5.txt b/src/relooper/test5.txt index ad769ae7..83755289 100644 --- a/src/relooper/test5.txt +++ b/src/relooper/test5.txt @@ -1,32 +1,32 @@ //0 if (check(0)) { - while(1) { - //1 - if (!(check(1))) { - break; - } + while(1) { + //1 + if (!(check(1))) { + break; } - while(1) { - //2 - if (!(check(2))) { - break; - } + } + while(1) { + //2 + if (!(check(2))) { + break; } - //3 + } + //3 } else { - goingFrom0to4(); - while(1) { - //4 - if (!(check(4))) { - break; - } + goingFrom0to4(); + while(1) { + //4 + if (!(check(4))) { + break; } - while(1) { - //5 - if (check(5)) { - break; - } + } + while(1) { + //5 + if (check(5)) { + break; } - //3 + } + //3 } diff --git a/src/relooper/test6.txt b/src/relooper/test6.txt index c5effd08..4f29f292 100644 --- a/src/relooper/test6.txt +++ b/src/relooper/test6.txt @@ -1,12 +1,12 @@ //0 do { - if (check(0)) { - //1 - if (!(check(1))) { - break; - } - //2 + if (check(0)) { + //1 + if (!(check(1))) { + break; } + //2 + } } while(0); //3 diff --git a/src/relooper/test_debug.txt b/src/relooper/test_debug.txt index d18ed875..4a42e642 100644 --- a/src/relooper/test_debug.txt +++ b/src/relooper/test_debug.txt @@ -116,13 +116,13 @@ int main() { // Fusing Multiple to Simple ep do { - if (ep -> LBB1) { - LBB1 - if (!(LBB1 -> LBB2)) { - break; - } - LBB2 + if (ep -> LBB1) { + LBB1 + if (!(LBB1 -> LBB2)) { + break; } + LBB2 + } } while(0); LBB3 diff --git a/src/relooper/test_fuzz1.txt b/src/relooper/test_fuzz1.txt index b278e240..becbc0d2 100644 --- a/src/relooper/test_fuzz1.txt +++ b/src/relooper/test_fuzz1.txt @@ -4,29 +4,29 @@ print('entry'); var label; var state; var decisions = [4, 1, 7, 2, 6, 6, 8]; var print(5); state = check(); print(6); state = check(); if (state == 7) { - print(7); state = check(); - label = 3; + print(7); state = check(); + label = 3; } L5: while(1) { - if (label == 3) { - label = 0; - print(2); state = check(); + if (label == 3) { + label = 0; + print(2); state = check(); + } + print(1); state = check(); + while(1) { + print(3); state = check(); + if (!(state == 8)) { + continue L5; } - print(1); state = check(); - while(1) { - print(3); state = check(); - if (!(state == 8)) { - continue L5; - } - print(8); state = check(); - if (!(state == 4)) { - label = 3; - continue L5; - } - print(4); state = check(); - if (!(state == 3)) { - continue L5; - } + print(8); state = check(); + if (!(state == 4)) { + label = 3; + continue L5; } + print(4); state = check(); + if (!(state == 3)) { + continue L5; + } + } } diff --git a/src/relooper/test_fuzz2.txt b/src/relooper/test_fuzz2.txt index 572e819d..02b2c83b 100644 --- a/src/relooper/test_fuzz2.txt +++ b/src/relooper/test_fuzz2.txt @@ -2,12 +2,12 @@ print('entry'); var label; var state; var decisions = [4, 1, 4, 3, 4, 1, 2, 5, 1, 3, 5, 5, 1, 5, 2, 4, 4, 3]; var index = 0; function check() { if (index == decisions.length) throw 'HALT'; return decisions[index++] } if (state == 1) { - while(1) { - print(1); state = check(); - } + while(1) { + print(1); state = check(); + } } while(1) { - print(3); state = check(); - print(2); state = check(); + print(3); state = check(); + print(2); state = check(); } diff --git a/src/relooper/test_fuzz3.txt b/src/relooper/test_fuzz3.txt index aeeccf87..b4b1831d 100644 --- a/src/relooper/test_fuzz3.txt +++ b/src/relooper/test_fuzz3.txt @@ -4,6 +4,6 @@ print('entry'); var label; var state; var decisions = [3, 3, 4, 1, 2, 1, 2, 4, 4 print(1); state = check(); print(3); state = check(); while(1) { - print(4); state = check(); + print(4); state = check(); } diff --git a/src/relooper/test_fuzz4.txt b/src/relooper/test_fuzz4.txt index 05a70582..766ebdb6 100644 --- a/src/relooper/test_fuzz4.txt +++ b/src/relooper/test_fuzz4.txt @@ -2,18 +2,18 @@ print('entry'); var label; var state; var decisions = [2, 2, 1, 3, 2, 2, 1, 3, 2, 3, 3, 1, 3, 2, 1]; var index = 0; function check() { if (index == decisions.length) throw 'HALT'; return decisions[index++] } if (state == 2) { - while(1) { - print(2); state = check(); - } + while(1) { + print(2); state = check(); + } } while(1) { - print(4); state = check(); - if (!(state == 4)) { - break; - } + print(4); state = check(); + if (!(state == 4)) { + break; + } } print(3); state = check(); while(1) { - print(1); state = check(); + print(1); state = check(); } diff --git a/src/relooper/test_fuzz5.txt b/src/relooper/test_fuzz5.txt index 29b2dba4..0f76d1ed 100644 --- a/src/relooper/test_fuzz5.txt +++ b/src/relooper/test_fuzz5.txt @@ -2,51 +2,51 @@ print('entry'); var label; var state; var decisions = [133, 98, 134, 143, 162, 187, 130, 87, 91, 49, 102, 47, 9, 132, 179, 176, 157, 25, 64, 161, 57, 107, 16, 167, 185, 45, 191, 180, 23, 131]; var index = 0; function check() { if (index == decisions.length) throw 'HALT'; return decisions[index++] } L1: while(1) { - print(7); state = check(); - if (state % 3 == 1) { - label = 3; - } else if (state % 3 == 0) { - print(8); state = check(); - if (state % 2 == 0) { - label = 5; - } else { - label = 7; - } + print(7); state = check(); + if (state % 3 == 1) { + label = 3; + } else if (state % 3 == 0) { + print(8); state = check(); + if (state % 2 == 0) { + label = 5; } else { - break; + label = 7; } - while(1) { - if (label == 3) { - label = 0; - print(2); state = check(); - print(1); state = check(); - if (state % 2 == 0) { - label = 5; - continue; - } else { - label = 7; - continue; - } - } - else if (label == 5) { - label = 0; - print(4); state = check(); - label = 3; - continue; - } - else if (label == 7) { - label = 0; - print(6); state = check(); - if (state % 2 == 0) { - continue L1; - } else { - label = 7; - continue; - } - } + } else { + break; + } + while(1) { + if (label == 3) { + label = 0; + print(2); state = check(); + print(1); state = check(); + if (state % 2 == 0) { + label = 5; + continue; + } else { + label = 7; + continue; + } } + else if (label == 5) { + label = 0; + print(4); state = check(); + label = 3; + continue; + } + else if (label == 7) { + label = 0; + print(6); state = check(); + if (state % 2 == 0) { + continue L1; + } else { + label = 7; + continue; + } + } + } } while(1) { - print(3); state = check(); + print(3); state = check(); } diff --git a/src/relooper/test_fuzz6.txt b/src/relooper/test_fuzz6.txt index d5a5ab7b..cd93958c 100644 --- a/src/relooper/test_fuzz6.txt +++ b/src/relooper/test_fuzz6.txt @@ -2,107 +2,107 @@ print('entry'); var label; var state; var decisions = [759, 1223, 618, 1805, 277, 512, 204, 1545, 606, 734, 585, 447, 1670, 1031, 665, 1728, 353, 634, 1033, 13, 658, 589, 474, 854, 405, 1111, 1640, 697, 1156, 1357, 317, 618, 990, 1401, 405, 564, 497, 829, 653, 1194, 25, 322, 1178, 198, 1565, 1419, 1608, 486, 368, 606, 813, 22, 148, 141, 261, 375, 472, 964, 1106, 694, 205, 771, 44, 675, 545, 1027, 1528, 240, 1289, 564, 792, 744, 366, 668, 823, 210, 428, 1009, 1662, 1317, 1183, 681, 14, 1334, 712, 506, 224, 695, 401, 1035, 384, 486, 1519, 122, 1186, 1487, 1819, 1702, 463, 1706, 660, 1642, 847, 991, 976, 940, 867, 46, 23, 1449, 56, 1711, 634, 404, 1558, 168, 710, 1581, 1302, 870, 997, 1295, 1739, 769, 1005, 291, 1638, 1771, 842, 659, 1695, 713, 935, 802, 1173, 1572, 850, 607, 996, 55, 1576, 321, 1815, 662, 1044, 1612, 1680, 1050, 844, 553, 278, 1447, 1662, 1094, 1797, 774, 1013, 1204, 907, 340, 1172, 1460, 869, 1264, 111, 1176, 484, 845, 258, 417, 1246, 1017, 745, 189, 333, 1658, 1395, 1764, 1786, 165, 404, 847, 1429, 1574, 403, 718, 1118, 1756, 94, 56, 1498, 1696, 1355, 840, 50, 82, 371, 1087, 875, 1337, 267, 958, 1209, 1167, 1025, 1684, 184, 962, 1496, 201, 127, 372, 1, 1005, 402, 1387, 213, 1143, 1271, 167, 10, 12, 1060, 1390, 1366, 893, 747, 1005, 481, 876, 227, 514, 589, 250, 273, 1188, 1052, 719, 219, 1006, 38, 120, 1454, 489, 672, 149, 534, 1081, 1721, 586, 330, 25, 356, 1743, 1607, 336, 981, 419, 1036, 1293, 1026, 1300, 1453, 792, 22, 45, 420, 409, 1027, 1437, 1421, 795, 136, 1276, 1610, 1593]; var index = 0; function check() { if (index == decisions.length) throw 'HALT'; return decisions[index++] } while(1) { - print(30); state = check();// ................................................................................................................................................................................................................. - if (state % 3 == 1) { - label = 67; - break; - } else if (!(state % 3 == 0)) { - break; - } - print(58); state = check();// ...................................................................................... + print(30); state = check();// ................................................................................................................................................................................................................. + if (state % 3 == 1) { + label = 67; + break; + } else if (!(state % 3 == 0)) { + break; + } + print(58); state = check();// ...................................................................................... } if (label == 67) { - print(66); state = check();// ............................................................................................................... + print(66); state = check();// ............................................................................................................... } print(6); state = check();// ......... while(1) { - print(88); state = check();// .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... - print(70); state = check();// .......................................................................................................................... - L10: while(1) { - print(47); state = check();// .................................................................................................................................... - print(28); state = check();// .............................................................................................................. - while(1) { - print(75); state = check();// ............................................. - print(7); state = check();// ............................................................................................................................................................................................. - if (!(state % 2 == 0)) { - break; - } + print(88); state = check();// .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + print(70); state = check();// .......................................................................................................................... + L10: while(1) { + print(47); state = check();// .................................................................................................................................... + print(28); state = check();// .............................................................................................................. + while(1) { + print(75); state = check();// ............................................. + print(7); state = check();// ............................................................................................................................................................................................. + if (!(state % 2 == 0)) { + break; + } + } + print(89); state = check();// ...................................................................................................................................................................................................................................................................................................................................................... + print(68); state = check();// ...................................................................................................................................................................................................................................................................................................................... + L18: while(1) { + print(51); state = check();// ............................................................................................. + L20: while(1) { + print(36); state = check();// ......................... + if (state % 2 == 0) { + break; } - print(89); state = check();// ...................................................................................................................................................................................................................................................................................................................................................... - print(68); state = check();// ...................................................................................................................................................................................................................................................................................................................... - L18: while(1) { - print(51); state = check();// ............................................................................................. - L20: while(1) { - print(36); state = check();// ......................... - if (state % 2 == 0) { - break; - } - print(16); state = check();// ................................................................................................................................................................................................................................................................................................................................................................ - print(57); state = check();// ........................................................................................................................................................................................................................................................................................................................... - print(39); state = check();// ................ - if (state % 3 == 1) { - label = 74; - } else if (!(state % 3 == 0)) { - label = 32; - break; - } - while(1) { - if (label == 74) { - label = 0; - print(73); state = check();// . - if (state % 3 == 1) { - label = 32; - break L20; - } else if (state % 3 == 0) { - break; - } - print(43); state = check();// ......... - print(32); state = check();// ...................................................................................................... - print(83); state = check();// ........................................................................................ - print(77); state = check();// ........................................................................................................................................................................................................................................................................................... - print(76); state = check();// .............................................................................................................................................................................................................................................................................................................................................................................................................................. - print(22); state = check();// ......................................................................................................... - } - print(72); state = check();// .......................................................................................................... - if (state % 2 == 0) { - label = 92; - break L20; - } - print(80); state = check();// .................................... - if (state % 2 == 0) { - continue L18; - } - print(50); state = check();// ........................................ - print(29); state = check();// ............... - print(8); state = check();// .................................................................................................................................................................................................................................................... - if (state % 2 == 0) { - continue L10; - } - print(19); state = check();// ...................................................................................................................................................................................................................... - print(56); state = check();// .................................................................................................................................................................................................................... - print(34); state = check();// .......................................................................................................................................... - label = 74; - } - print(62); state = check();// ....................................................................................... - } - if (label == 32) { - label = 0; - print(31); state = check();// .......................................................................................................................................................................................................... - } - else if (label == 92) { - label = 0; - print(91); state = check();// .............................................. - print(33); state = check();// .... - } - print(60); state = check();// ...................................................................................................................................................................................................................................... - print(10); state = check();// ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... - print(52); state = check();// .............................................................................. - if (state % 2 == 0) { - break L10; + print(16); state = check();// ................................................................................................................................................................................................................................................................................................................................................................ + print(57); state = check();// ........................................................................................................................................................................................................................................................................................................................... + print(39); state = check();// ................ + if (state % 3 == 1) { + label = 74; + } else if (!(state % 3 == 0)) { + label = 32; + break; + } + while(1) { + if (label == 74) { + label = 0; + print(73); state = check();// . + if (state % 3 == 1) { + label = 32; + break L20; + } else if (state % 3 == 0) { + break; } - print(2); state = check();// ......... + print(43); state = check();// ......... + print(32); state = check();// ...................................................................................................... + print(83); state = check();// ........................................................................................ + print(77); state = check();// ........................................................................................................................................................................................................................................................................................... + print(76); state = check();// .............................................................................................................................................................................................................................................................................................................................................................................................................................. + print(22); state = check();// ......................................................................................................... + } + print(72); state = check();// .......................................................................................................... + if (state % 2 == 0) { + label = 92; + break L20; + } + print(80); state = check();// .................................... + if (state % 2 == 0) { + continue L18; + } + print(50); state = check();// ........................................ + print(29); state = check();// ............... + print(8); state = check();// .................................................................................................................................................................................................................................................... + if (state % 2 == 0) { + continue L10; + } + print(19); state = check();// ...................................................................................................................................................................................................................... + print(56); state = check();// .................................................................................................................................................................................................................... + print(34); state = check();// .......................................................................................................................................... + label = 74; } + print(62); state = check();// ....................................................................................... + } + if (label == 32) { + label = 0; + print(31); state = check();// .......................................................................................................................................................................................................... + } + else if (label == 92) { + label = 0; + print(91); state = check();// .............................................. + print(33); state = check();// .... + } + print(60); state = check();// ...................................................................................................................................................................................................................................... + print(10); state = check();// ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... + print(52); state = check();// .............................................................................. + if (state % 2 == 0) { + break L10; + } + print(2); state = check();// ......... } - print(61); state = check();// ......................................................................................................................................................... + } + print(61); state = check();// ......................................................................................................................................................... } diff --git a/src/relooper/test_inf.txt b/src/relooper/test_inf.txt index 1dff59bb..bc2fad3e 100644 --- a/src/relooper/test_inf.txt +++ b/src/relooper/test_inf.txt @@ -1,385 +1,385 @@ code 0 if (uint(i4) >= uint(i5)) { - code 2 + code 2 } else { - code 1 + code 1 } |