diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java index 42f0cafe2..38beb96c9 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java @@ -46,6 +46,11 @@ public class TestPrograms { AsmFragmentTemplateUsages.logUsages(log, false, false, false, false, false, false); } + //@Test + //public void testUnrollInfinite() throws IOException, URISyntaxException { + // compileAndCompare("unroll-infinite"); + //} + @Test public void testUnusedBlockProblem() throws IOException, URISyntaxException { compileAndCompare("unusedblockproblem"); diff --git a/src/test/java/dk/camelot64/kickc/test/kc/unroll-infinite.kc b/src/test/java/dk/camelot64/kickc/test/kc/unroll-infinite.kc new file mode 100644 index 000000000..1b5e059f4 --- /dev/null +++ b/src/test/java/dk/camelot64/kickc/test/kc/unroll-infinite.kc @@ -0,0 +1,12 @@ +// Unrolling an infinite loop + +void main() { + byte* SCREEN = $400; + + byte b=0; + inline do { + *SCREEN = b; + b = *SCREEN; + } while(b<10); + +} \ No newline at end of file diff --git a/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for-double.log b/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for-double.log index af3f1fe74..9e9413917 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for-double.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for-double.log @@ -168,43 +168,6 @@ Redundant Phi (byte*) main::SCREEN#2 (const byte*) main::SCREEN#0 Succesful SSA optimization Pass2RedundantPhiElimination Unrolling loop Loop head: main::@2 tails: main::@2 blocks: main::@2 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [0] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [1] (byte) main::line#2 ← phi( main::@1/(const byte) main::line#0 ) - [2] (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::line#2 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [3] (byte*~) main::$1 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$0 - [4] *((byte*~) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - [5] (byte) main::line#1 ← ++ (byte) main::line#2 - [6] if((byte) main::line#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_1 - to:main::@3 -main::@3: scope:[main] from main::@2 main::@2_1 - phi() - [7] (byte) main::x#1 ← ++ (byte) main::x#4 - [8] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [9] return - to:@return -@1: scope:[] from @begin - [10] call main - to:@end -@end: scope:[] from @1 -main::@2_1: scope:[main] from main::@2 main::@2_1 - (byte) main::line#3 ← phi( main::@2/(byte) main::line#1 main::@2_1/(byte) main::line#4 ) - (byte/signed word/word/dword/signed dword~) main::$4 ← (byte) main::line#3 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$5 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$4 - *((byte*~) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#4 ← ++ (byte) main::line#3 - unroll if((byte) main::line#4!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_1 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#2 (const byte) main::line#0 Succesful SSA optimization Pass2RedundantPhiElimination @@ -218,46 +181,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@3 main::@return Unrolling loop Loop head: main::@2_1 tails: main::@2_1 blocks: main::@2_1 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] (byte) main::line#3 ← phi( main::@2/(const byte) main::line#1 ) - [4] (byte/signed word/word/dword/signed dword~) main::$4 ← (byte) main::line#3 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [5] (byte*~) main::$5 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$4 - [6] *((byte*~) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - [7] (byte) main::line#4 ← ++ (byte) main::line#3 - [8] if((byte) main::line#4!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_2 - to:main::@3 -main::@3: scope:[main] from main::@2_1 main::@2_2 - phi() - [9] (byte) main::x#1 ← ++ (byte) main::x#4 - [10] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [11] return - to:@return -main::@2_2: scope:[main] from main::@2_1 main::@2_2 - (byte) main::line#5 ← phi( main::@2_1/(byte) main::line#4 main::@2_2/(byte) main::line#6 ) - (byte/signed word/word/dword/signed dword~) main::$6 ← (byte) main::line#5 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$7 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$6 - *((byte*~) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#6 ← ++ (byte) main::line#5 - unroll if((byte) main::line#6!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_2 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#3 (const byte) main::line#1 Succesful SSA optimization Pass2RedundantPhiElimination @@ -271,49 +194,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@3 main::@return Unrolling loop Loop head: main::@2_2 tails: main::@2_2 blocks: main::@2_2 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] (byte) main::line#5 ← phi( main::@2_1/(const byte) main::line#4 ) - [5] (byte/signed word/word/dword/signed dword~) main::$6 ← (byte) main::line#5 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [6] (byte*~) main::$7 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$6 - [7] *((byte*~) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - [8] (byte) main::line#6 ← ++ (byte) main::line#5 - [9] if((byte) main::line#6!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_3 - to:main::@3 -main::@3: scope:[main] from main::@2_2 main::@2_3 - phi() - [10] (byte) main::x#1 ← ++ (byte) main::x#4 - [11] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [12] return - to:@return -main::@2_3: scope:[main] from main::@2_2 main::@2_3 - (byte) main::line#7 ← phi( main::@2_2/(byte) main::line#6 main::@2_3/(byte) main::line#8 ) - (byte/signed word/word/dword/signed dword~) main::$8 ← (byte) main::line#7 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$9 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$8 - *((byte*~) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#8 ← ++ (byte) main::line#7 - unroll if((byte) main::line#8!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_3 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#5 (const byte) main::line#4 Succesful SSA optimization Pass2RedundantPhiElimination @@ -327,52 +207,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@3 main::@return Unrolling loop Loop head: main::@2_3 tails: main::@2_3 blocks: main::@2_3 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] (byte) main::line#7 ← phi( main::@2_2/(const byte) main::line#6 ) - [6] (byte/signed word/word/dword/signed dword~) main::$8 ← (byte) main::line#7 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [7] (byte*~) main::$9 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$8 - [8] *((byte*~) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - [9] (byte) main::line#8 ← ++ (byte) main::line#7 - [10] if((byte) main::line#8!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_4 - to:main::@3 -main::@3: scope:[main] from main::@2_3 main::@2_4 - phi() - [11] (byte) main::x#1 ← ++ (byte) main::x#4 - [12] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [13] return - to:@return -main::@2_4: scope:[main] from main::@2_3 main::@2_4 - (byte) main::line#9 ← phi( main::@2_3/(byte) main::line#8 main::@2_4/(byte) main::line#10 ) - (byte/signed word/word/dword/signed dword~) main::$10 ← (byte) main::line#9 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$11 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$10 - *((byte*~) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#10 ← ++ (byte) main::line#9 - unroll if((byte) main::line#10!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_4 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#7 (const byte) main::line#6 Succesful SSA optimization Pass2RedundantPhiElimination @@ -386,55 +220,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@3 main::@return Unrolling loop Loop head: main::@2_4 tails: main::@2_4 blocks: main::@2_4 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] *((const byte*) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [6] (byte) main::line#9 ← phi( main::@2_3/(const byte) main::line#8 ) - [7] (byte/signed word/word/dword/signed dword~) main::$10 ← (byte) main::line#9 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [8] (byte*~) main::$11 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$10 - [9] *((byte*~) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - [10] (byte) main::line#10 ← ++ (byte) main::line#9 - [11] if((byte) main::line#10!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_5 - to:main::@3 -main::@3: scope:[main] from main::@2_4 main::@2_5 - phi() - [12] (byte) main::x#1 ← ++ (byte) main::x#4 - [13] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [14] return - to:@return -main::@2_5: scope:[main] from main::@2_4 main::@2_5 - (byte) main::line#11 ← phi( main::@2_4/(byte) main::line#10 main::@2_5/(byte) main::line#12 ) - (byte/signed word/word/dword/signed dword~) main::$12 ← (byte) main::line#11 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$13 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$12 - *((byte*~) main::$13 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#12 ← ++ (byte) main::line#11 - unroll if((byte) main::line#12!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_5 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#9 (const byte) main::line#8 Succesful SSA optimization Pass2RedundantPhiElimination @@ -448,58 +233,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@3 main::@return Unrolling loop Loop head: main::@2_5 tails: main::@2_5 blocks: main::@2_5 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] *((const byte*) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [6] *((const byte*) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [7] (byte) main::line#11 ← phi( main::@2_4/(const byte) main::line#10 ) - [8] (byte/signed word/word/dword/signed dword~) main::$12 ← (byte) main::line#11 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [9] (byte*~) main::$13 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$12 - [10] *((byte*~) main::$13 + (byte) main::x#4) ← (byte) main::x#4 - [11] (byte) main::line#12 ← ++ (byte) main::line#11 - [12] if((byte) main::line#12!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_6 - to:main::@3 -main::@3: scope:[main] from main::@2_5 main::@2_6 - phi() - [13] (byte) main::x#1 ← ++ (byte) main::x#4 - [14] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [15] return - to:@return -main::@2_6: scope:[main] from main::@2_5 main::@2_6 - (byte) main::line#13 ← phi( main::@2_5/(byte) main::line#12 main::@2_6/(byte) main::line#14 ) - (byte/signed word/word/dword/signed dword~) main::$14 ← (byte) main::line#13 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$15 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$14 - *((byte*~) main::$15 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#14 ← ++ (byte) main::line#13 - unroll if((byte) main::line#14!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_6 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#11 (const byte) main::line#10 Succesful SSA optimization Pass2RedundantPhiElimination @@ -513,61 +246,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@3 main::@return Unrolling loop Loop head: main::@2_6 tails: main::@2_6 blocks: main::@2_6 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] *((const byte*) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [6] *((const byte*) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [7] *((const byte*) main::$13 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [8] (byte) main::line#13 ← phi( main::@2_5/(const byte) main::line#12 ) - [9] (byte/signed word/word/dword/signed dword~) main::$14 ← (byte) main::line#13 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [10] (byte*~) main::$15 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$14 - [11] *((byte*~) main::$15 + (byte) main::x#4) ← (byte) main::x#4 - [12] (byte) main::line#14 ← ++ (byte) main::line#13 - [13] if((byte) main::line#14!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_7 - to:main::@3 -main::@3: scope:[main] from main::@2_6 main::@2_7 - phi() - [14] (byte) main::x#1 ← ++ (byte) main::x#4 - [15] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [16] return - to:@return -main::@2_7: scope:[main] from main::@2_6 main::@2_7 - (byte) main::line#15 ← phi( main::@2_6/(byte) main::line#14 main::@2_7/(byte) main::line#16 ) - (byte/signed word/word/dword/signed dword~) main::$16 ← (byte) main::line#15 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$17 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$16 - *((byte*~) main::$17 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#16 ← ++ (byte) main::line#15 - unroll if((byte) main::line#16!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_7 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#13 (const byte) main::line#12 Succesful SSA optimization Pass2RedundantPhiElimination @@ -581,64 +259,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@3 main::@return Unrolling loop Loop head: main::@2_7 tails: main::@2_7 blocks: main::@2_7 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] *((const byte*) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [6] *((const byte*) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [7] *((const byte*) main::$13 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [8] *((const byte*) main::$15 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [9] (byte) main::line#15 ← phi( main::@2_6/(const byte) main::line#14 ) - [10] (byte/signed word/word/dword/signed dword~) main::$16 ← (byte) main::line#15 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [11] (byte*~) main::$17 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$16 - [12] *((byte*~) main::$17 + (byte) main::x#4) ← (byte) main::x#4 - [13] (byte) main::line#16 ← ++ (byte) main::line#15 - [14] if((byte) main::line#16!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_8 - to:main::@3 -main::@3: scope:[main] from main::@2_7 main::@2_8 - phi() - [15] (byte) main::x#1 ← ++ (byte) main::x#4 - [16] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [17] return - to:@return -main::@2_8: scope:[main] from main::@2_7 main::@2_8 - (byte) main::line#17 ← phi( main::@2_7/(byte) main::line#16 main::@2_8/(byte) main::line#18 ) - (byte/signed word/word/dword/signed dword~) main::$18 ← (byte) main::line#17 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$19 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$18 - *((byte*~) main::$19 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#18 ← ++ (byte) main::line#17 - unroll if((byte) main::line#18!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_8 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#15 (const byte) main::line#14 Succesful SSA optimization Pass2RedundantPhiElimination @@ -652,67 +272,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@3 main::@return Unrolling loop Loop head: main::@2_8 tails: main::@2_8 blocks: main::@2_8 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] *((const byte*) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [6] *((const byte*) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [7] *((const byte*) main::$13 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [8] *((const byte*) main::$15 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [9] *((const byte*) main::$17 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [10] (byte) main::line#17 ← phi( main::@2_7/(const byte) main::line#16 ) - [11] (byte/signed word/word/dword/signed dword~) main::$18 ← (byte) main::line#17 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [12] (byte*~) main::$19 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$18 - [13] *((byte*~) main::$19 + (byte) main::x#4) ← (byte) main::x#4 - [14] (byte) main::line#18 ← ++ (byte) main::line#17 - [15] if((byte) main::line#18!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_9 - to:main::@3 -main::@3: scope:[main] from main::@2_8 main::@2_9 - phi() - [16] (byte) main::x#1 ← ++ (byte) main::x#4 - [17] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [18] return - to:@return -main::@2_9: scope:[main] from main::@2_8 main::@2_9 - (byte) main::line#19 ← phi( main::@2_8/(byte) main::line#18 main::@2_9/(byte) main::line#20 ) - (byte/signed word/word/dword/signed dword~) main::$20 ← (byte) main::line#19 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$21 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$20 - *((byte*~) main::$21 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#20 ← ++ (byte) main::line#19 - unroll if((byte) main::line#20!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_9 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#17 (const byte) main::line#16 Succesful SSA optimization Pass2RedundantPhiElimination @@ -726,70 +285,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@3 main::@return Unrolling loop Loop head: main::@2_9 tails: main::@2_9 blocks: main::@2_9 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] *((const byte*) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [6] *((const byte*) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [7] *((const byte*) main::$13 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [8] *((const byte*) main::$15 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [9] *((const byte*) main::$17 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [10] *((const byte*) main::$19 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [11] (byte) main::line#19 ← phi( main::@2_8/(const byte) main::line#18 ) - [12] (byte/signed word/word/dword/signed dword~) main::$20 ← (byte) main::line#19 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [13] (byte*~) main::$21 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$20 - [14] *((byte*~) main::$21 + (byte) main::x#4) ← (byte) main::x#4 - [15] (byte) main::line#20 ← ++ (byte) main::line#19 - [16] if((byte) main::line#20!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_10 - to:main::@3 -main::@3: scope:[main] from main::@2_10 main::@2_9 - phi() - [17] (byte) main::x#1 ← ++ (byte) main::x#4 - [18] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [19] return - to:@return -main::@2_10: scope:[main] from main::@2_10 main::@2_9 - (byte) main::line#21 ← phi( main::@2_9/(byte) main::line#20 main::@2_10/(byte) main::line#22 ) - (byte/signed word/word/dword/signed dword~) main::$22 ← (byte) main::line#21 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$23 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$22 - *((byte*~) main::$23 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#22 ← ++ (byte) main::line#21 - unroll if((byte) main::line#22!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_10 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#19 (const byte) main::line#18 Succesful SSA optimization Pass2RedundantPhiElimination @@ -803,73 +298,6 @@ Succesful SSA optimization Pass2ConstantIfs Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@3 main::@return Unrolling loop Loop head: main::@2_10 tails: main::@2_10 blocks: main::@2_10 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main main::@3 - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 main::@3/(byte) main::x#1 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] *((const byte*) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [6] *((const byte*) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [7] *((const byte*) main::$13 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [8] *((const byte*) main::$15 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [9] *((const byte*) main::$17 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [10] *((const byte*) main::$19 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [11] *((const byte*) main::$21 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [12] (byte) main::line#21 ← phi( main::@2_9/(const byte) main::line#20 ) - [13] (byte/signed word/word/dword/signed dword~) main::$22 ← (byte) main::line#21 * (byte/signed byte/word/signed word/dword/signed dword) 40 - [14] (byte*~) main::$23 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$22 - [15] *((byte*~) main::$23 + (byte) main::x#4) ← (byte) main::x#4 - [16] (byte) main::line#22 ← ++ (byte) main::line#21 - [17] if((byte) main::line#22!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_11 - to:main::@3 -main::@3: scope:[main] from main::@2_10 main::@2_11 - phi() - [18] (byte) main::x#1 ← ++ (byte) main::x#4 - [19] unroll if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@3 - [20] return - to:@return -main::@2_11: scope:[main] from main::@2_10 main::@2_11 - (byte) main::line#23 ← phi( main::@2_10/(byte) main::line#22 main::@2_11/(byte) main::line#24 ) - (byte/signed word/word/dword/signed dword~) main::$24 ← (byte) main::line#23 * (byte/signed byte/word/signed word/dword/signed dword) 40 - (byte*~) main::$25 ← (const byte*) main::SCREEN#0 + (byte/signed word/word/dword/signed dword~) main::$24 - *((byte*~) main::$25 + (byte) main::x#4) ← (byte) main::x#4 - (byte) main::line#24 ← ++ (byte) main::line#23 - unroll if((byte) main::line#24!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@2_11 - to:main::@3 - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#21 (const byte) main::line#20 Succesful SSA optimization Pass2RedundantPhiElimination @@ -892,100 +320,6 @@ Succesful SSA optimization Pass2EliminateUnusedBlocks Block Sequence Planned @begin @1 @end main main::@1 main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@3 main::@return Unrolling loop Loop head: main::@1 tails: main::@3 blocks: main::@3 main::@2_10 main::@2_9 main::@2_8 main::@2_7 main::@2_6 main::@2_5 main::@2_4 main::@2_3 main::@2_2 main::@2_1 main::@2 main::@1 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@1 -main::@1: scope:[main] from main - [1] (byte) main::x#4 ← phi( main/(const byte) main::x#0 ) - to:main::@2 -main::@2: scope:[main] from main::@1 - [2] *((const byte*) main::$1 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [3] *((const byte*) main::$5 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [4] *((const byte*) main::$7 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [5] *((const byte*) main::$9 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [6] *((const byte*) main::$11 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [7] *((const byte*) main::$13 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [8] *((const byte*) main::$15 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [9] *((const byte*) main::$17 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [10] *((const byte*) main::$19 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [11] *((const byte*) main::$21 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [12] *((const byte*) main::$23 + (byte) main::x#4) ← (byte) main::x#4 - to:main::@3 -main::@3: scope:[main] from main::@2_10 - [13] (byte) main::x#1 ← ++ (byte) main::x#4 - [14] if((byte) main::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return -main::@return: scope:[main] from main::@3 main::@3_1 - phi() - [15] return - to:@return -main::@1_1: scope:[main] from main::@3 main::@3_1 - (byte) main::x#5 ← phi( main::@3/(byte) main::x#1 main::@3_1/(byte) main::x#6 ) - to:main::@2_11 -main::@2_11: scope:[main] from main::@1_1 - *((const byte*) main::$1 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - *((const byte*) main::$5 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - *((const byte*) main::$7 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - *((const byte*) main::$9 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - *((const byte*) main::$11 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - *((const byte*) main::$13 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - *((const byte*) main::$15 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - *((const byte*) main::$17 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - *((const byte*) main::$19 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - *((const byte*) main::$21 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - *((const byte*) main::$23 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_21 - (byte) main::x#6 ← ++ (byte) main::x#5 - unroll if((byte) main::x#6!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#4 (const byte) main::x#0 Succesful SSA optimization Pass2RedundantPhiElimination @@ -1011,133 +345,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@1_1 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@3_1 main::@return Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_21 main::@2_20 main::@2_19 main::@2_18 main::@2_17 main::@2_16 main::@2_15 main::@2_14 main::@2_13 main::@2_12 main::@2_11 main::@1_1 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@1_1 -main::@1_1: scope:[main] from main::@2_10 - [12] (byte) main::x#5 ← phi( main::@2_10/(const byte) main::x#1 ) - to:main::@2_11 -main::@2_11: scope:[main] from main::@1_1 - [13] *((const byte*) main::$1 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [14] *((const byte*) main::$5 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [15] *((const byte*) main::$7 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [16] *((const byte*) main::$9 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [17] *((const byte*) main::$11 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [18] *((const byte*) main::$13 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [19] *((const byte*) main::$15 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [20] *((const byte*) main::$17 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [21] *((const byte*) main::$19 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [22] *((const byte*) main::$21 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [23] *((const byte*) main::$23 + (byte) main::x#5) ← (byte) main::x#5 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_21 - [24] (byte) main::x#6 ← ++ (byte) main::x#5 - [25] if((byte) main::x#6!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [26] return - to:@return -main::@1_2: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#7 ← phi( main::@3_1/(byte) main::x#6 main::@3_2/(byte) main::x#8 ) - to:main::@2_22 -main::@2_22: scope:[main] from main::@1_2 - *((const byte*) main::$1 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - *((const byte*) main::$5 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - *((const byte*) main::$7 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - *((const byte*) main::$9 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - *((const byte*) main::$11 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - *((const byte*) main::$13 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - *((const byte*) main::$15 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - *((const byte*) main::$17 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - *((const byte*) main::$19 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - *((const byte*) main::$21 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - *((const byte*) main::$23 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_32 - (byte) main::x#8 ← ++ (byte) main::x#7 - unroll if((byte) main::x#8!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#5 (const byte) main::x#1 Succesful SSA optimization Pass2RedundantPhiElimination @@ -1163,166 +370,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@1_2 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@3_2 main::@return Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_32 main::@2_31 main::@2_30 main::@2_29 main::@2_28 main::@2_27 main::@2_26 main::@2_25 main::@2_24 main::@2_23 main::@2_22 main::@1_2 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@1_2 -main::@1_2: scope:[main] from main::@2_21 - [23] (byte) main::x#7 ← phi( main::@2_21/(const byte) main::x#6 ) - to:main::@2_22 -main::@2_22: scope:[main] from main::@1_2 - [24] *((const byte*) main::$1 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [25] *((const byte*) main::$5 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [26] *((const byte*) main::$7 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [27] *((const byte*) main::$9 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [28] *((const byte*) main::$11 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [29] *((const byte*) main::$13 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [30] *((const byte*) main::$15 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [31] *((const byte*) main::$17 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [32] *((const byte*) main::$19 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [33] *((const byte*) main::$21 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [34] *((const byte*) main::$23 + (byte) main::x#7) ← (byte) main::x#7 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_32 - [35] (byte) main::x#8 ← ++ (byte) main::x#7 - [36] if((byte) main::x#8!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [37] return - to:@return -main::@1_1: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#9 ← phi( main::@3_2/(byte) main::x#8 main::@3_1/(byte) main::x#10 ) - to:main::@2_33 -main::@2_33: scope:[main] from main::@1_1 - *((const byte*) main::$1 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - *((const byte*) main::$5 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - *((const byte*) main::$7 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - *((const byte*) main::$9 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - *((const byte*) main::$11 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - *((const byte*) main::$13 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - *((const byte*) main::$15 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - *((const byte*) main::$17 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - *((const byte*) main::$19 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - *((const byte*) main::$21 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - *((const byte*) main::$23 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_43 - (byte) main::x#10 ← ++ (byte) main::x#9 - unroll if((byte) main::x#10!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#7 (const byte) main::x#6 Succesful SSA optimization Pass2RedundantPhiElimination @@ -1348,199 +395,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@1_1 main::@2_33 main::@2_34 main::@2_35 main::@2_36 main::@2_37 main::@2_38 main::@2_39 main::@2_40 main::@2_41 main::@2_42 main::@2_43 main::@3_1 main::@return Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_43 main::@2_42 main::@2_41 main::@2_40 main::@2_39 main::@2_38 main::@2_37 main::@2_36 main::@2_35 main::@2_34 main::@2_33 main::@1_1 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_22 -main::@2_22: scope:[main] from main::@2_21 - [23] *((const byte*) main::$1+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [24] *((const byte*) main::$5+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [25] *((const byte*) main::$7+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [26] *((const byte*) main::$9+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [27] *((const byte*) main::$11+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [28] *((const byte*) main::$13+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [29] *((const byte*) main::$15+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [30] *((const byte*) main::$17+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [31] *((const byte*) main::$19+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [32] *((const byte*) main::$21+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [33] *((const byte*) main::$23+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@1_1 -main::@1_1: scope:[main] from main::@2_32 - [34] (byte) main::x#9 ← phi( main::@2_32/(const byte) main::x#8 ) - to:main::@2_33 -main::@2_33: scope:[main] from main::@1_1 - [35] *((const byte*) main::$1 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - [36] *((const byte*) main::$5 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - [37] *((const byte*) main::$7 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - [38] *((const byte*) main::$9 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - [39] *((const byte*) main::$11 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - [40] *((const byte*) main::$13 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - [41] *((const byte*) main::$15 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - [42] *((const byte*) main::$17 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - [43] *((const byte*) main::$19 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - [44] *((const byte*) main::$21 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - [45] *((const byte*) main::$23 + (byte) main::x#9) ← (byte) main::x#9 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_43 - [46] (byte) main::x#10 ← ++ (byte) main::x#9 - [47] if((byte) main::x#10!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [48] return - to:@return -main::@1_2: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#11 ← phi( main::@3_1/(byte) main::x#10 main::@3_2/(byte) main::x#12 ) - to:main::@2_44 -main::@2_44: scope:[main] from main::@1_2 - *((const byte*) main::$1 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_45 -main::@2_45: scope:[main] from main::@2_44 - *((const byte*) main::$5 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_46 -main::@2_46: scope:[main] from main::@2_45 - *((const byte*) main::$7 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_47 -main::@2_47: scope:[main] from main::@2_46 - *((const byte*) main::$9 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_48 -main::@2_48: scope:[main] from main::@2_47 - *((const byte*) main::$11 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_49 -main::@2_49: scope:[main] from main::@2_48 - *((const byte*) main::$13 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_50 -main::@2_50: scope:[main] from main::@2_49 - *((const byte*) main::$15 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_51 -main::@2_51: scope:[main] from main::@2_50 - *((const byte*) main::$17 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_52 -main::@2_52: scope:[main] from main::@2_51 - *((const byte*) main::$19 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_53 -main::@2_53: scope:[main] from main::@2_52 - *((const byte*) main::$21 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_54 -main::@2_54: scope:[main] from main::@2_53 - *((const byte*) main::$23 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_54 - (byte) main::x#12 ← ++ (byte) main::x#11 - unroll if((byte) main::x#12!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#9 (const byte) main::x#8 Succesful SSA optimization Pass2RedundantPhiElimination @@ -1566,232 +420,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@2_33 main::@2_34 main::@2_35 main::@2_36 main::@2_37 main::@2_38 main::@2_39 main::@2_40 main::@2_41 main::@2_42 main::@2_43 main::@1_2 main::@2_44 main::@2_45 main::@2_46 main::@2_47 main::@2_48 main::@2_49 main::@2_50 main::@2_51 main::@2_52 main::@2_53 main::@2_54 main::@3_2 main::@return Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_54 main::@2_53 main::@2_52 main::@2_51 main::@2_50 main::@2_49 main::@2_48 main::@2_47 main::@2_46 main::@2_45 main::@2_44 main::@1_2 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_22 -main::@2_22: scope:[main] from main::@2_21 - [23] *((const byte*) main::$1+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [24] *((const byte*) main::$5+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [25] *((const byte*) main::$7+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [26] *((const byte*) main::$9+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [27] *((const byte*) main::$11+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [28] *((const byte*) main::$13+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [29] *((const byte*) main::$15+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [30] *((const byte*) main::$17+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [31] *((const byte*) main::$19+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [32] *((const byte*) main::$21+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [33] *((const byte*) main::$23+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_33 -main::@2_33: scope:[main] from main::@2_32 - [34] *((const byte*) main::$1+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - [35] *((const byte*) main::$5+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - [36] *((const byte*) main::$7+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - [37] *((const byte*) main::$9+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - [38] *((const byte*) main::$11+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - [39] *((const byte*) main::$13+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - [40] *((const byte*) main::$15+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - [41] *((const byte*) main::$17+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - [42] *((const byte*) main::$19+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - [43] *((const byte*) main::$21+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - [44] *((const byte*) main::$23+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@1_2 -main::@1_2: scope:[main] from main::@2_43 - [45] (byte) main::x#11 ← phi( main::@2_43/(const byte) main::x#10 ) - to:main::@2_44 -main::@2_44: scope:[main] from main::@1_2 - [46] *((const byte*) main::$1 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_45 -main::@2_45: scope:[main] from main::@2_44 - [47] *((const byte*) main::$5 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_46 -main::@2_46: scope:[main] from main::@2_45 - [48] *((const byte*) main::$7 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_47 -main::@2_47: scope:[main] from main::@2_46 - [49] *((const byte*) main::$9 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_48 -main::@2_48: scope:[main] from main::@2_47 - [50] *((const byte*) main::$11 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_49 -main::@2_49: scope:[main] from main::@2_48 - [51] *((const byte*) main::$13 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_50 -main::@2_50: scope:[main] from main::@2_49 - [52] *((const byte*) main::$15 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_51 -main::@2_51: scope:[main] from main::@2_50 - [53] *((const byte*) main::$17 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_52 -main::@2_52: scope:[main] from main::@2_51 - [54] *((const byte*) main::$19 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_53 -main::@2_53: scope:[main] from main::@2_52 - [55] *((const byte*) main::$21 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@2_54 -main::@2_54: scope:[main] from main::@2_53 - [56] *((const byte*) main::$23 + (byte) main::x#11) ← (byte) main::x#11 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_54 - [57] (byte) main::x#12 ← ++ (byte) main::x#11 - [58] if((byte) main::x#12!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [59] return - to:@return -main::@1_1: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#13 ← phi( main::@3_2/(byte) main::x#12 main::@3_1/(byte) main::x#14 ) - to:main::@2_55 -main::@2_55: scope:[main] from main::@1_1 - *((const byte*) main::$1 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_56 -main::@2_56: scope:[main] from main::@2_55 - *((const byte*) main::$5 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_57 -main::@2_57: scope:[main] from main::@2_56 - *((const byte*) main::$7 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_58 -main::@2_58: scope:[main] from main::@2_57 - *((const byte*) main::$9 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_59 -main::@2_59: scope:[main] from main::@2_58 - *((const byte*) main::$11 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_60 -main::@2_60: scope:[main] from main::@2_59 - *((const byte*) main::$13 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_61 -main::@2_61: scope:[main] from main::@2_60 - *((const byte*) main::$15 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_62 -main::@2_62: scope:[main] from main::@2_61 - *((const byte*) main::$17 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_63 -main::@2_63: scope:[main] from main::@2_62 - *((const byte*) main::$19 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_64 -main::@2_64: scope:[main] from main::@2_63 - *((const byte*) main::$21 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_65 -main::@2_65: scope:[main] from main::@2_64 - *((const byte*) main::$23 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_65 - (byte) main::x#14 ← ++ (byte) main::x#13 - unroll if((byte) main::x#14!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#11 (const byte) main::x#10 Succesful SSA optimization Pass2RedundantPhiElimination @@ -1817,265 +445,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@2_33 main::@2_34 main::@2_35 main::@2_36 main::@2_37 main::@2_38 main::@2_39 main::@2_40 main::@2_41 main::@2_42 main::@2_43 main::@2_44 main::@2_45 main::@2_46 main::@2_47 main::@2_48 main::@2_49 main::@2_50 main::@2_51 main::@2_52 main::@2_53 main::@2_54 main::@1_1 main::@2_55 main::@2_56 main::@2_57 main::@2_58 main::@2_59 main::@2_60 main::@2_61 main::@2_62 main::@2_63 main::@2_64 main::@2_65 main::@3_1 main::@return Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_65 main::@2_64 main::@2_63 main::@2_62 main::@2_61 main::@2_60 main::@2_59 main::@2_58 main::@2_57 main::@2_56 main::@2_55 main::@1_1 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_22 -main::@2_22: scope:[main] from main::@2_21 - [23] *((const byte*) main::$1+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [24] *((const byte*) main::$5+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [25] *((const byte*) main::$7+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [26] *((const byte*) main::$9+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [27] *((const byte*) main::$11+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [28] *((const byte*) main::$13+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [29] *((const byte*) main::$15+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [30] *((const byte*) main::$17+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [31] *((const byte*) main::$19+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [32] *((const byte*) main::$21+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [33] *((const byte*) main::$23+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_33 -main::@2_33: scope:[main] from main::@2_32 - [34] *((const byte*) main::$1+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - [35] *((const byte*) main::$5+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - [36] *((const byte*) main::$7+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - [37] *((const byte*) main::$9+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - [38] *((const byte*) main::$11+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - [39] *((const byte*) main::$13+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - [40] *((const byte*) main::$15+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - [41] *((const byte*) main::$17+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - [42] *((const byte*) main::$19+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - [43] *((const byte*) main::$21+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - [44] *((const byte*) main::$23+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_44 -main::@2_44: scope:[main] from main::@2_43 - [45] *((const byte*) main::$1+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_45 -main::@2_45: scope:[main] from main::@2_44 - [46] *((const byte*) main::$5+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_46 -main::@2_46: scope:[main] from main::@2_45 - [47] *((const byte*) main::$7+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_47 -main::@2_47: scope:[main] from main::@2_46 - [48] *((const byte*) main::$9+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_48 -main::@2_48: scope:[main] from main::@2_47 - [49] *((const byte*) main::$11+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_49 -main::@2_49: scope:[main] from main::@2_48 - [50] *((const byte*) main::$13+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_50 -main::@2_50: scope:[main] from main::@2_49 - [51] *((const byte*) main::$15+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_51 -main::@2_51: scope:[main] from main::@2_50 - [52] *((const byte*) main::$17+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_52 -main::@2_52: scope:[main] from main::@2_51 - [53] *((const byte*) main::$19+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_53 -main::@2_53: scope:[main] from main::@2_52 - [54] *((const byte*) main::$21+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_54 -main::@2_54: scope:[main] from main::@2_53 - [55] *((const byte*) main::$23+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@1_1 -main::@1_1: scope:[main] from main::@2_54 - [56] (byte) main::x#13 ← phi( main::@2_54/(const byte) main::x#12 ) - to:main::@2_55 -main::@2_55: scope:[main] from main::@1_1 - [57] *((const byte*) main::$1 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_56 -main::@2_56: scope:[main] from main::@2_55 - [58] *((const byte*) main::$5 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_57 -main::@2_57: scope:[main] from main::@2_56 - [59] *((const byte*) main::$7 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_58 -main::@2_58: scope:[main] from main::@2_57 - [60] *((const byte*) main::$9 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_59 -main::@2_59: scope:[main] from main::@2_58 - [61] *((const byte*) main::$11 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_60 -main::@2_60: scope:[main] from main::@2_59 - [62] *((const byte*) main::$13 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_61 -main::@2_61: scope:[main] from main::@2_60 - [63] *((const byte*) main::$15 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_62 -main::@2_62: scope:[main] from main::@2_61 - [64] *((const byte*) main::$17 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_63 -main::@2_63: scope:[main] from main::@2_62 - [65] *((const byte*) main::$19 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_64 -main::@2_64: scope:[main] from main::@2_63 - [66] *((const byte*) main::$21 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@2_65 -main::@2_65: scope:[main] from main::@2_64 - [67] *((const byte*) main::$23 + (byte) main::x#13) ← (byte) main::x#13 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_65 - [68] (byte) main::x#14 ← ++ (byte) main::x#13 - [69] if((byte) main::x#14!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [70] return - to:@return -main::@1_2: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#15 ← phi( main::@3_1/(byte) main::x#14 main::@3_2/(byte) main::x#16 ) - to:main::@2_66 -main::@2_66: scope:[main] from main::@1_2 - *((const byte*) main::$1 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_67 -main::@2_67: scope:[main] from main::@2_66 - *((const byte*) main::$5 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_68 -main::@2_68: scope:[main] from main::@2_67 - *((const byte*) main::$7 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_69 -main::@2_69: scope:[main] from main::@2_68 - *((const byte*) main::$9 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_70 -main::@2_70: scope:[main] from main::@2_69 - *((const byte*) main::$11 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_71 -main::@2_71: scope:[main] from main::@2_70 - *((const byte*) main::$13 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_72 -main::@2_72: scope:[main] from main::@2_71 - *((const byte*) main::$15 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_73 -main::@2_73: scope:[main] from main::@2_72 - *((const byte*) main::$17 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_74 -main::@2_74: scope:[main] from main::@2_73 - *((const byte*) main::$19 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_75 -main::@2_75: scope:[main] from main::@2_74 - *((const byte*) main::$21 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_76 -main::@2_76: scope:[main] from main::@2_75 - *((const byte*) main::$23 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_76 - (byte) main::x#16 ← ++ (byte) main::x#15 - unroll if((byte) main::x#16!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#13 (const byte) main::x#12 Succesful SSA optimization Pass2RedundantPhiElimination @@ -2101,298 +470,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@2_33 main::@2_34 main::@2_35 main::@2_36 main::@2_37 main::@2_38 main::@2_39 main::@2_40 main::@2_41 main::@2_42 main::@2_43 main::@2_44 main::@2_45 main::@2_46 main::@2_47 main::@2_48 main::@2_49 main::@2_50 main::@2_51 main::@2_52 main::@2_53 main::@2_54 main::@2_55 main::@2_56 main::@2_57 main::@2_58 main::@2_59 main::@2_60 main::@2_61 main::@2_62 main::@2_63 main::@2_64 main::@2_65 main::@1_2 main::@2_66 main::@2_67 main::@2_68 main::@2_69 main::@2_70 main::@2_71 main::@2_72 main::@2_73 main::@2_74 main::@2_75 main::@2_76 main::@3_2 main::@return Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_76 main::@2_75 main::@2_74 main::@2_73 main::@2_72 main::@2_71 main::@2_70 main::@2_69 main::@2_68 main::@2_67 main::@2_66 main::@1_2 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_22 -main::@2_22: scope:[main] from main::@2_21 - [23] *((const byte*) main::$1+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [24] *((const byte*) main::$5+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [25] *((const byte*) main::$7+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [26] *((const byte*) main::$9+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [27] *((const byte*) main::$11+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [28] *((const byte*) main::$13+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [29] *((const byte*) main::$15+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [30] *((const byte*) main::$17+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [31] *((const byte*) main::$19+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [32] *((const byte*) main::$21+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [33] *((const byte*) main::$23+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_33 -main::@2_33: scope:[main] from main::@2_32 - [34] *((const byte*) main::$1+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - [35] *((const byte*) main::$5+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - [36] *((const byte*) main::$7+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - [37] *((const byte*) main::$9+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - [38] *((const byte*) main::$11+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - [39] *((const byte*) main::$13+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - [40] *((const byte*) main::$15+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - [41] *((const byte*) main::$17+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - [42] *((const byte*) main::$19+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - [43] *((const byte*) main::$21+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - [44] *((const byte*) main::$23+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_44 -main::@2_44: scope:[main] from main::@2_43 - [45] *((const byte*) main::$1+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_45 -main::@2_45: scope:[main] from main::@2_44 - [46] *((const byte*) main::$5+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_46 -main::@2_46: scope:[main] from main::@2_45 - [47] *((const byte*) main::$7+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_47 -main::@2_47: scope:[main] from main::@2_46 - [48] *((const byte*) main::$9+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_48 -main::@2_48: scope:[main] from main::@2_47 - [49] *((const byte*) main::$11+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_49 -main::@2_49: scope:[main] from main::@2_48 - [50] *((const byte*) main::$13+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_50 -main::@2_50: scope:[main] from main::@2_49 - [51] *((const byte*) main::$15+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_51 -main::@2_51: scope:[main] from main::@2_50 - [52] *((const byte*) main::$17+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_52 -main::@2_52: scope:[main] from main::@2_51 - [53] *((const byte*) main::$19+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_53 -main::@2_53: scope:[main] from main::@2_52 - [54] *((const byte*) main::$21+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_54 -main::@2_54: scope:[main] from main::@2_53 - [55] *((const byte*) main::$23+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_55 -main::@2_55: scope:[main] from main::@2_54 - [56] *((const byte*) main::$1+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_56 -main::@2_56: scope:[main] from main::@2_55 - [57] *((const byte*) main::$5+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_57 -main::@2_57: scope:[main] from main::@2_56 - [58] *((const byte*) main::$7+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_58 -main::@2_58: scope:[main] from main::@2_57 - [59] *((const byte*) main::$9+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_59 -main::@2_59: scope:[main] from main::@2_58 - [60] *((const byte*) main::$11+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_60 -main::@2_60: scope:[main] from main::@2_59 - [61] *((const byte*) main::$13+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_61 -main::@2_61: scope:[main] from main::@2_60 - [62] *((const byte*) main::$15+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_62 -main::@2_62: scope:[main] from main::@2_61 - [63] *((const byte*) main::$17+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_63 -main::@2_63: scope:[main] from main::@2_62 - [64] *((const byte*) main::$19+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_64 -main::@2_64: scope:[main] from main::@2_63 - [65] *((const byte*) main::$21+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_65 -main::@2_65: scope:[main] from main::@2_64 - [66] *((const byte*) main::$23+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@1_2 -main::@1_2: scope:[main] from main::@2_65 - [67] (byte) main::x#15 ← phi( main::@2_65/(const byte) main::x#14 ) - to:main::@2_66 -main::@2_66: scope:[main] from main::@1_2 - [68] *((const byte*) main::$1 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_67 -main::@2_67: scope:[main] from main::@2_66 - [69] *((const byte*) main::$5 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_68 -main::@2_68: scope:[main] from main::@2_67 - [70] *((const byte*) main::$7 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_69 -main::@2_69: scope:[main] from main::@2_68 - [71] *((const byte*) main::$9 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_70 -main::@2_70: scope:[main] from main::@2_69 - [72] *((const byte*) main::$11 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_71 -main::@2_71: scope:[main] from main::@2_70 - [73] *((const byte*) main::$13 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_72 -main::@2_72: scope:[main] from main::@2_71 - [74] *((const byte*) main::$15 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_73 -main::@2_73: scope:[main] from main::@2_72 - [75] *((const byte*) main::$17 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_74 -main::@2_74: scope:[main] from main::@2_73 - [76] *((const byte*) main::$19 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_75 -main::@2_75: scope:[main] from main::@2_74 - [77] *((const byte*) main::$21 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@2_76 -main::@2_76: scope:[main] from main::@2_75 - [78] *((const byte*) main::$23 + (byte) main::x#15) ← (byte) main::x#15 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_76 - [79] (byte) main::x#16 ← ++ (byte) main::x#15 - [80] if((byte) main::x#16!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [81] return - to:@return -main::@1_1: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#17 ← phi( main::@3_2/(byte) main::x#16 main::@3_1/(byte) main::x#18 ) - to:main::@2_77 -main::@2_77: scope:[main] from main::@1_1 - *((const byte*) main::$1 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_78 -main::@2_78: scope:[main] from main::@2_77 - *((const byte*) main::$5 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_79 -main::@2_79: scope:[main] from main::@2_78 - *((const byte*) main::$7 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_80 -main::@2_80: scope:[main] from main::@2_79 - *((const byte*) main::$9 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_81 -main::@2_81: scope:[main] from main::@2_80 - *((const byte*) main::$11 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_82 -main::@2_82: scope:[main] from main::@2_81 - *((const byte*) main::$13 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_83 -main::@2_83: scope:[main] from main::@2_82 - *((const byte*) main::$15 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_84 -main::@2_84: scope:[main] from main::@2_83 - *((const byte*) main::$17 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_85 -main::@2_85: scope:[main] from main::@2_84 - *((const byte*) main::$19 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_86 -main::@2_86: scope:[main] from main::@2_85 - *((const byte*) main::$21 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_87 -main::@2_87: scope:[main] from main::@2_86 - *((const byte*) main::$23 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_87 - (byte) main::x#18 ← ++ (byte) main::x#17 - unroll if((byte) main::x#18!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#15 (const byte) main::x#14 Succesful SSA optimization Pass2RedundantPhiElimination @@ -2418,331 +495,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@2_33 main::@2_34 main::@2_35 main::@2_36 main::@2_37 main::@2_38 main::@2_39 main::@2_40 main::@2_41 main::@2_42 main::@2_43 main::@2_44 main::@2_45 main::@2_46 main::@2_47 main::@2_48 main::@2_49 main::@2_50 main::@2_51 main::@2_52 main::@2_53 main::@2_54 main::@2_55 main::@2_56 main::@2_57 main::@2_58 main::@2_59 main::@2_60 main::@2_61 main::@2_62 main::@2_63 main::@2_64 main::@2_65 main::@2_66 main::@2_67 main::@2_68 main::@2_69 main::@2_70 main::@2_71 main::@2_72 main::@2_73 main::@2_74 main::@2_75 main::@2_76 main::@1_1 main::@2_77 main::@2_78 main::@2_79 main::@2_80 main::@2_81 main::@2_82 main::@2_83 main::@2_84 main::@2_85 main::@2_86 main::@2_87 main::@3_1 main::@return Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_87 main::@2_86 main::@2_85 main::@2_84 main::@2_83 main::@2_82 main::@2_81 main::@2_80 main::@2_79 main::@2_78 main::@2_77 main::@1_1 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_22 -main::@2_22: scope:[main] from main::@2_21 - [23] *((const byte*) main::$1+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [24] *((const byte*) main::$5+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [25] *((const byte*) main::$7+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [26] *((const byte*) main::$9+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [27] *((const byte*) main::$11+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [28] *((const byte*) main::$13+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [29] *((const byte*) main::$15+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [30] *((const byte*) main::$17+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [31] *((const byte*) main::$19+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [32] *((const byte*) main::$21+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [33] *((const byte*) main::$23+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_33 -main::@2_33: scope:[main] from main::@2_32 - [34] *((const byte*) main::$1+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - [35] *((const byte*) main::$5+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - [36] *((const byte*) main::$7+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - [37] *((const byte*) main::$9+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - [38] *((const byte*) main::$11+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - [39] *((const byte*) main::$13+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - [40] *((const byte*) main::$15+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - [41] *((const byte*) main::$17+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - [42] *((const byte*) main::$19+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - [43] *((const byte*) main::$21+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - [44] *((const byte*) main::$23+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_44 -main::@2_44: scope:[main] from main::@2_43 - [45] *((const byte*) main::$1+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_45 -main::@2_45: scope:[main] from main::@2_44 - [46] *((const byte*) main::$5+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_46 -main::@2_46: scope:[main] from main::@2_45 - [47] *((const byte*) main::$7+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_47 -main::@2_47: scope:[main] from main::@2_46 - [48] *((const byte*) main::$9+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_48 -main::@2_48: scope:[main] from main::@2_47 - [49] *((const byte*) main::$11+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_49 -main::@2_49: scope:[main] from main::@2_48 - [50] *((const byte*) main::$13+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_50 -main::@2_50: scope:[main] from main::@2_49 - [51] *((const byte*) main::$15+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_51 -main::@2_51: scope:[main] from main::@2_50 - [52] *((const byte*) main::$17+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_52 -main::@2_52: scope:[main] from main::@2_51 - [53] *((const byte*) main::$19+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_53 -main::@2_53: scope:[main] from main::@2_52 - [54] *((const byte*) main::$21+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_54 -main::@2_54: scope:[main] from main::@2_53 - [55] *((const byte*) main::$23+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_55 -main::@2_55: scope:[main] from main::@2_54 - [56] *((const byte*) main::$1+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_56 -main::@2_56: scope:[main] from main::@2_55 - [57] *((const byte*) main::$5+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_57 -main::@2_57: scope:[main] from main::@2_56 - [58] *((const byte*) main::$7+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_58 -main::@2_58: scope:[main] from main::@2_57 - [59] *((const byte*) main::$9+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_59 -main::@2_59: scope:[main] from main::@2_58 - [60] *((const byte*) main::$11+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_60 -main::@2_60: scope:[main] from main::@2_59 - [61] *((const byte*) main::$13+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_61 -main::@2_61: scope:[main] from main::@2_60 - [62] *((const byte*) main::$15+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_62 -main::@2_62: scope:[main] from main::@2_61 - [63] *((const byte*) main::$17+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_63 -main::@2_63: scope:[main] from main::@2_62 - [64] *((const byte*) main::$19+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_64 -main::@2_64: scope:[main] from main::@2_63 - [65] *((const byte*) main::$21+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_65 -main::@2_65: scope:[main] from main::@2_64 - [66] *((const byte*) main::$23+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_66 -main::@2_66: scope:[main] from main::@2_65 - [67] *((const byte*) main::$1+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_67 -main::@2_67: scope:[main] from main::@2_66 - [68] *((const byte*) main::$5+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_68 -main::@2_68: scope:[main] from main::@2_67 - [69] *((const byte*) main::$7+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_69 -main::@2_69: scope:[main] from main::@2_68 - [70] *((const byte*) main::$9+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_70 -main::@2_70: scope:[main] from main::@2_69 - [71] *((const byte*) main::$11+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_71 -main::@2_71: scope:[main] from main::@2_70 - [72] *((const byte*) main::$13+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_72 -main::@2_72: scope:[main] from main::@2_71 - [73] *((const byte*) main::$15+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_73 -main::@2_73: scope:[main] from main::@2_72 - [74] *((const byte*) main::$17+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_74 -main::@2_74: scope:[main] from main::@2_73 - [75] *((const byte*) main::$19+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_75 -main::@2_75: scope:[main] from main::@2_74 - [76] *((const byte*) main::$21+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_76 -main::@2_76: scope:[main] from main::@2_75 - [77] *((const byte*) main::$23+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@1_1 -main::@1_1: scope:[main] from main::@2_76 - [78] (byte) main::x#17 ← phi( main::@2_76/(const byte) main::x#16 ) - to:main::@2_77 -main::@2_77: scope:[main] from main::@1_1 - [79] *((const byte*) main::$1 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_78 -main::@2_78: scope:[main] from main::@2_77 - [80] *((const byte*) main::$5 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_79 -main::@2_79: scope:[main] from main::@2_78 - [81] *((const byte*) main::$7 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_80 -main::@2_80: scope:[main] from main::@2_79 - [82] *((const byte*) main::$9 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_81 -main::@2_81: scope:[main] from main::@2_80 - [83] *((const byte*) main::$11 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_82 -main::@2_82: scope:[main] from main::@2_81 - [84] *((const byte*) main::$13 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_83 -main::@2_83: scope:[main] from main::@2_82 - [85] *((const byte*) main::$15 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_84 -main::@2_84: scope:[main] from main::@2_83 - [86] *((const byte*) main::$17 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_85 -main::@2_85: scope:[main] from main::@2_84 - [87] *((const byte*) main::$19 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_86 -main::@2_86: scope:[main] from main::@2_85 - [88] *((const byte*) main::$21 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@2_87 -main::@2_87: scope:[main] from main::@2_86 - [89] *((const byte*) main::$23 + (byte) main::x#17) ← (byte) main::x#17 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_87 - [90] (byte) main::x#18 ← ++ (byte) main::x#17 - [91] if((byte) main::x#18!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [92] return - to:@return -main::@1_2: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#19 ← phi( main::@3_1/(byte) main::x#18 main::@3_2/(byte) main::x#20 ) - to:main::@2_88 -main::@2_88: scope:[main] from main::@1_2 - *((const byte*) main::$1 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_89 -main::@2_89: scope:[main] from main::@2_88 - *((const byte*) main::$5 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_90 -main::@2_90: scope:[main] from main::@2_89 - *((const byte*) main::$7 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_91 -main::@2_91: scope:[main] from main::@2_90 - *((const byte*) main::$9 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_92 -main::@2_92: scope:[main] from main::@2_91 - *((const byte*) main::$11 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_93 -main::@2_93: scope:[main] from main::@2_92 - *((const byte*) main::$13 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_94 -main::@2_94: scope:[main] from main::@2_93 - *((const byte*) main::$15 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_95 -main::@2_95: scope:[main] from main::@2_94 - *((const byte*) main::$17 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_96 -main::@2_96: scope:[main] from main::@2_95 - *((const byte*) main::$19 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_97 -main::@2_97: scope:[main] from main::@2_96 - *((const byte*) main::$21 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_98 -main::@2_98: scope:[main] from main::@2_97 - *((const byte*) main::$23 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_98 - (byte) main::x#20 ← ++ (byte) main::x#19 - unroll if((byte) main::x#20!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#17 (const byte) main::x#16 Succesful SSA optimization Pass2RedundantPhiElimination @@ -2768,364 +520,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@2_33 main::@2_34 main::@2_35 main::@2_36 main::@2_37 main::@2_38 main::@2_39 main::@2_40 main::@2_41 main::@2_42 main::@2_43 main::@2_44 main::@2_45 main::@2_46 main::@2_47 main::@2_48 main::@2_49 main::@2_50 main::@2_51 main::@2_52 main::@2_53 main::@2_54 main::@2_55 main::@2_56 main::@2_57 main::@2_58 main::@2_59 main::@2_60 main::@2_61 main::@2_62 main::@2_63 main::@2_64 main::@2_65 main::@2_66 main::@2_67 main::@2_68 main::@2_69 main::@2_70 main::@2_71 main::@2_72 main::@2_73 main::@2_74 main::@2_75 main::@2_76 main::@2_77 main::@2_78 main::@2_79 main::@2_80 main::@2_81 main::@2_82 main::@2_83 main::@2_84 main::@2_85 main::@2_86 main::@2_87 main::@1_2 main::@2_88 main::@2_89 main::@2_90 main::@2_91 main::@2_92 main::@2_93 main::@2_94 main::@2_95 main::@2_96 main::@2_97 main::@2_98 main::@3_2 main::@return Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_98 main::@2_97 main::@2_96 main::@2_95 main::@2_94 main::@2_93 main::@2_92 main::@2_91 main::@2_90 main::@2_89 main::@2_88 main::@1_2 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_22 -main::@2_22: scope:[main] from main::@2_21 - [23] *((const byte*) main::$1+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [24] *((const byte*) main::$5+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [25] *((const byte*) main::$7+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [26] *((const byte*) main::$9+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [27] *((const byte*) main::$11+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [28] *((const byte*) main::$13+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [29] *((const byte*) main::$15+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [30] *((const byte*) main::$17+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [31] *((const byte*) main::$19+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [32] *((const byte*) main::$21+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [33] *((const byte*) main::$23+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_33 -main::@2_33: scope:[main] from main::@2_32 - [34] *((const byte*) main::$1+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - [35] *((const byte*) main::$5+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - [36] *((const byte*) main::$7+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - [37] *((const byte*) main::$9+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - [38] *((const byte*) main::$11+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - [39] *((const byte*) main::$13+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - [40] *((const byte*) main::$15+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - [41] *((const byte*) main::$17+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - [42] *((const byte*) main::$19+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - [43] *((const byte*) main::$21+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - [44] *((const byte*) main::$23+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_44 -main::@2_44: scope:[main] from main::@2_43 - [45] *((const byte*) main::$1+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_45 -main::@2_45: scope:[main] from main::@2_44 - [46] *((const byte*) main::$5+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_46 -main::@2_46: scope:[main] from main::@2_45 - [47] *((const byte*) main::$7+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_47 -main::@2_47: scope:[main] from main::@2_46 - [48] *((const byte*) main::$9+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_48 -main::@2_48: scope:[main] from main::@2_47 - [49] *((const byte*) main::$11+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_49 -main::@2_49: scope:[main] from main::@2_48 - [50] *((const byte*) main::$13+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_50 -main::@2_50: scope:[main] from main::@2_49 - [51] *((const byte*) main::$15+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_51 -main::@2_51: scope:[main] from main::@2_50 - [52] *((const byte*) main::$17+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_52 -main::@2_52: scope:[main] from main::@2_51 - [53] *((const byte*) main::$19+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_53 -main::@2_53: scope:[main] from main::@2_52 - [54] *((const byte*) main::$21+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_54 -main::@2_54: scope:[main] from main::@2_53 - [55] *((const byte*) main::$23+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_55 -main::@2_55: scope:[main] from main::@2_54 - [56] *((const byte*) main::$1+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_56 -main::@2_56: scope:[main] from main::@2_55 - [57] *((const byte*) main::$5+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_57 -main::@2_57: scope:[main] from main::@2_56 - [58] *((const byte*) main::$7+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_58 -main::@2_58: scope:[main] from main::@2_57 - [59] *((const byte*) main::$9+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_59 -main::@2_59: scope:[main] from main::@2_58 - [60] *((const byte*) main::$11+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_60 -main::@2_60: scope:[main] from main::@2_59 - [61] *((const byte*) main::$13+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_61 -main::@2_61: scope:[main] from main::@2_60 - [62] *((const byte*) main::$15+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_62 -main::@2_62: scope:[main] from main::@2_61 - [63] *((const byte*) main::$17+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_63 -main::@2_63: scope:[main] from main::@2_62 - [64] *((const byte*) main::$19+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_64 -main::@2_64: scope:[main] from main::@2_63 - [65] *((const byte*) main::$21+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_65 -main::@2_65: scope:[main] from main::@2_64 - [66] *((const byte*) main::$23+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_66 -main::@2_66: scope:[main] from main::@2_65 - [67] *((const byte*) main::$1+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_67 -main::@2_67: scope:[main] from main::@2_66 - [68] *((const byte*) main::$5+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_68 -main::@2_68: scope:[main] from main::@2_67 - [69] *((const byte*) main::$7+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_69 -main::@2_69: scope:[main] from main::@2_68 - [70] *((const byte*) main::$9+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_70 -main::@2_70: scope:[main] from main::@2_69 - [71] *((const byte*) main::$11+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_71 -main::@2_71: scope:[main] from main::@2_70 - [72] *((const byte*) main::$13+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_72 -main::@2_72: scope:[main] from main::@2_71 - [73] *((const byte*) main::$15+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_73 -main::@2_73: scope:[main] from main::@2_72 - [74] *((const byte*) main::$17+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_74 -main::@2_74: scope:[main] from main::@2_73 - [75] *((const byte*) main::$19+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_75 -main::@2_75: scope:[main] from main::@2_74 - [76] *((const byte*) main::$21+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_76 -main::@2_76: scope:[main] from main::@2_75 - [77] *((const byte*) main::$23+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_77 -main::@2_77: scope:[main] from main::@2_76 - [78] *((const byte*) main::$1+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_78 -main::@2_78: scope:[main] from main::@2_77 - [79] *((const byte*) main::$5+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_79 -main::@2_79: scope:[main] from main::@2_78 - [80] *((const byte*) main::$7+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_80 -main::@2_80: scope:[main] from main::@2_79 - [81] *((const byte*) main::$9+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_81 -main::@2_81: scope:[main] from main::@2_80 - [82] *((const byte*) main::$11+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_82 -main::@2_82: scope:[main] from main::@2_81 - [83] *((const byte*) main::$13+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_83 -main::@2_83: scope:[main] from main::@2_82 - [84] *((const byte*) main::$15+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_84 -main::@2_84: scope:[main] from main::@2_83 - [85] *((const byte*) main::$17+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_85 -main::@2_85: scope:[main] from main::@2_84 - [86] *((const byte*) main::$19+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_86 -main::@2_86: scope:[main] from main::@2_85 - [87] *((const byte*) main::$21+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_87 -main::@2_87: scope:[main] from main::@2_86 - [88] *((const byte*) main::$23+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@1_2 -main::@1_2: scope:[main] from main::@2_87 - [89] (byte) main::x#19 ← phi( main::@2_87/(const byte) main::x#18 ) - to:main::@2_88 -main::@2_88: scope:[main] from main::@1_2 - [90] *((const byte*) main::$1 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_89 -main::@2_89: scope:[main] from main::@2_88 - [91] *((const byte*) main::$5 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_90 -main::@2_90: scope:[main] from main::@2_89 - [92] *((const byte*) main::$7 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_91 -main::@2_91: scope:[main] from main::@2_90 - [93] *((const byte*) main::$9 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_92 -main::@2_92: scope:[main] from main::@2_91 - [94] *((const byte*) main::$11 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_93 -main::@2_93: scope:[main] from main::@2_92 - [95] *((const byte*) main::$13 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_94 -main::@2_94: scope:[main] from main::@2_93 - [96] *((const byte*) main::$15 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_95 -main::@2_95: scope:[main] from main::@2_94 - [97] *((const byte*) main::$17 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_96 -main::@2_96: scope:[main] from main::@2_95 - [98] *((const byte*) main::$19 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_97 -main::@2_97: scope:[main] from main::@2_96 - [99] *((const byte*) main::$21 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@2_98 -main::@2_98: scope:[main] from main::@2_97 - [100] *((const byte*) main::$23 + (byte) main::x#19) ← (byte) main::x#19 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_98 - [101] (byte) main::x#20 ← ++ (byte) main::x#19 - [102] if((byte) main::x#20!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [103] return - to:@return -main::@1_1: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#21 ← phi( main::@3_2/(byte) main::x#20 main::@3_1/(byte) main::x#22 ) - to:main::@2_99 -main::@2_99: scope:[main] from main::@1_1 - *((const byte*) main::$1 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_100 -main::@2_100: scope:[main] from main::@2_99 - *((const byte*) main::$5 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_101 -main::@2_101: scope:[main] from main::@2_100 - *((const byte*) main::$7 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_102 -main::@2_102: scope:[main] from main::@2_101 - *((const byte*) main::$9 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_103 -main::@2_103: scope:[main] from main::@2_102 - *((const byte*) main::$11 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_104 -main::@2_104: scope:[main] from main::@2_103 - *((const byte*) main::$13 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_105 -main::@2_105: scope:[main] from main::@2_104 - *((const byte*) main::$15 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_106 -main::@2_106: scope:[main] from main::@2_105 - *((const byte*) main::$17 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_107 -main::@2_107: scope:[main] from main::@2_106 - *((const byte*) main::$19 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_108 -main::@2_108: scope:[main] from main::@2_107 - *((const byte*) main::$21 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_109 -main::@2_109: scope:[main] from main::@2_108 - *((const byte*) main::$23 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_109 - (byte) main::x#22 ← ++ (byte) main::x#21 - unroll if((byte) main::x#22!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#19 (const byte) main::x#18 Succesful SSA optimization Pass2RedundantPhiElimination @@ -3151,397 +545,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@2_33 main::@2_34 main::@2_35 main::@2_36 main::@2_37 main::@2_38 main::@2_39 main::@2_40 main::@2_41 main::@2_42 main::@2_43 main::@2_44 main::@2_45 main::@2_46 main::@2_47 main::@2_48 main::@2_49 main::@2_50 main::@2_51 main::@2_52 main::@2_53 main::@2_54 main::@2_55 main::@2_56 main::@2_57 main::@2_58 main::@2_59 main::@2_60 main::@2_61 main::@2_62 main::@2_63 main::@2_64 main::@2_65 main::@2_66 main::@2_67 main::@2_68 main::@2_69 main::@2_70 main::@2_71 main::@2_72 main::@2_73 main::@2_74 main::@2_75 main::@2_76 main::@2_77 main::@2_78 main::@2_79 main::@2_80 main::@2_81 main::@2_82 main::@2_83 main::@2_84 main::@2_85 main::@2_86 main::@2_87 main::@2_88 main::@2_89 main::@2_90 main::@2_91 main::@2_92 main::@2_93 main::@2_94 main::@2_95 main::@2_96 main::@2_97 main::@2_98 main::@1_1 main::@2_99 main::@2_100 main::@2_101 main::@2_102 main::@2_103 main::@2_104 main::@2_105 main::@2_106 main::@2_107 main::@2_108 main::@2_109 main::@3_1 main::@return Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_109 main::@2_108 main::@2_107 main::@2_106 main::@2_105 main::@2_104 main::@2_103 main::@2_102 main::@2_101 main::@2_100 main::@2_99 main::@1_1 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_22 -main::@2_22: scope:[main] from main::@2_21 - [23] *((const byte*) main::$1+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [24] *((const byte*) main::$5+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [25] *((const byte*) main::$7+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [26] *((const byte*) main::$9+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [27] *((const byte*) main::$11+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [28] *((const byte*) main::$13+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [29] *((const byte*) main::$15+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [30] *((const byte*) main::$17+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [31] *((const byte*) main::$19+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [32] *((const byte*) main::$21+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [33] *((const byte*) main::$23+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_33 -main::@2_33: scope:[main] from main::@2_32 - [34] *((const byte*) main::$1+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - [35] *((const byte*) main::$5+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - [36] *((const byte*) main::$7+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - [37] *((const byte*) main::$9+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - [38] *((const byte*) main::$11+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - [39] *((const byte*) main::$13+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - [40] *((const byte*) main::$15+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - [41] *((const byte*) main::$17+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - [42] *((const byte*) main::$19+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - [43] *((const byte*) main::$21+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - [44] *((const byte*) main::$23+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_44 -main::@2_44: scope:[main] from main::@2_43 - [45] *((const byte*) main::$1+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_45 -main::@2_45: scope:[main] from main::@2_44 - [46] *((const byte*) main::$5+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_46 -main::@2_46: scope:[main] from main::@2_45 - [47] *((const byte*) main::$7+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_47 -main::@2_47: scope:[main] from main::@2_46 - [48] *((const byte*) main::$9+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_48 -main::@2_48: scope:[main] from main::@2_47 - [49] *((const byte*) main::$11+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_49 -main::@2_49: scope:[main] from main::@2_48 - [50] *((const byte*) main::$13+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_50 -main::@2_50: scope:[main] from main::@2_49 - [51] *((const byte*) main::$15+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_51 -main::@2_51: scope:[main] from main::@2_50 - [52] *((const byte*) main::$17+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_52 -main::@2_52: scope:[main] from main::@2_51 - [53] *((const byte*) main::$19+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_53 -main::@2_53: scope:[main] from main::@2_52 - [54] *((const byte*) main::$21+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_54 -main::@2_54: scope:[main] from main::@2_53 - [55] *((const byte*) main::$23+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_55 -main::@2_55: scope:[main] from main::@2_54 - [56] *((const byte*) main::$1+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_56 -main::@2_56: scope:[main] from main::@2_55 - [57] *((const byte*) main::$5+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_57 -main::@2_57: scope:[main] from main::@2_56 - [58] *((const byte*) main::$7+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_58 -main::@2_58: scope:[main] from main::@2_57 - [59] *((const byte*) main::$9+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_59 -main::@2_59: scope:[main] from main::@2_58 - [60] *((const byte*) main::$11+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_60 -main::@2_60: scope:[main] from main::@2_59 - [61] *((const byte*) main::$13+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_61 -main::@2_61: scope:[main] from main::@2_60 - [62] *((const byte*) main::$15+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_62 -main::@2_62: scope:[main] from main::@2_61 - [63] *((const byte*) main::$17+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_63 -main::@2_63: scope:[main] from main::@2_62 - [64] *((const byte*) main::$19+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_64 -main::@2_64: scope:[main] from main::@2_63 - [65] *((const byte*) main::$21+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_65 -main::@2_65: scope:[main] from main::@2_64 - [66] *((const byte*) main::$23+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_66 -main::@2_66: scope:[main] from main::@2_65 - [67] *((const byte*) main::$1+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_67 -main::@2_67: scope:[main] from main::@2_66 - [68] *((const byte*) main::$5+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_68 -main::@2_68: scope:[main] from main::@2_67 - [69] *((const byte*) main::$7+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_69 -main::@2_69: scope:[main] from main::@2_68 - [70] *((const byte*) main::$9+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_70 -main::@2_70: scope:[main] from main::@2_69 - [71] *((const byte*) main::$11+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_71 -main::@2_71: scope:[main] from main::@2_70 - [72] *((const byte*) main::$13+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_72 -main::@2_72: scope:[main] from main::@2_71 - [73] *((const byte*) main::$15+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_73 -main::@2_73: scope:[main] from main::@2_72 - [74] *((const byte*) main::$17+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_74 -main::@2_74: scope:[main] from main::@2_73 - [75] *((const byte*) main::$19+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_75 -main::@2_75: scope:[main] from main::@2_74 - [76] *((const byte*) main::$21+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_76 -main::@2_76: scope:[main] from main::@2_75 - [77] *((const byte*) main::$23+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_77 -main::@2_77: scope:[main] from main::@2_76 - [78] *((const byte*) main::$1+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_78 -main::@2_78: scope:[main] from main::@2_77 - [79] *((const byte*) main::$5+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_79 -main::@2_79: scope:[main] from main::@2_78 - [80] *((const byte*) main::$7+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_80 -main::@2_80: scope:[main] from main::@2_79 - [81] *((const byte*) main::$9+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_81 -main::@2_81: scope:[main] from main::@2_80 - [82] *((const byte*) main::$11+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_82 -main::@2_82: scope:[main] from main::@2_81 - [83] *((const byte*) main::$13+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_83 -main::@2_83: scope:[main] from main::@2_82 - [84] *((const byte*) main::$15+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_84 -main::@2_84: scope:[main] from main::@2_83 - [85] *((const byte*) main::$17+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_85 -main::@2_85: scope:[main] from main::@2_84 - [86] *((const byte*) main::$19+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_86 -main::@2_86: scope:[main] from main::@2_85 - [87] *((const byte*) main::$21+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_87 -main::@2_87: scope:[main] from main::@2_86 - [88] *((const byte*) main::$23+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_88 -main::@2_88: scope:[main] from main::@2_87 - [89] *((const byte*) main::$1+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_89 -main::@2_89: scope:[main] from main::@2_88 - [90] *((const byte*) main::$5+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_90 -main::@2_90: scope:[main] from main::@2_89 - [91] *((const byte*) main::$7+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_91 -main::@2_91: scope:[main] from main::@2_90 - [92] *((const byte*) main::$9+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_92 -main::@2_92: scope:[main] from main::@2_91 - [93] *((const byte*) main::$11+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_93 -main::@2_93: scope:[main] from main::@2_92 - [94] *((const byte*) main::$13+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_94 -main::@2_94: scope:[main] from main::@2_93 - [95] *((const byte*) main::$15+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_95 -main::@2_95: scope:[main] from main::@2_94 - [96] *((const byte*) main::$17+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_96 -main::@2_96: scope:[main] from main::@2_95 - [97] *((const byte*) main::$19+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_97 -main::@2_97: scope:[main] from main::@2_96 - [98] *((const byte*) main::$21+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_98 -main::@2_98: scope:[main] from main::@2_97 - [99] *((const byte*) main::$23+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@1_1 -main::@1_1: scope:[main] from main::@2_98 - [100] (byte) main::x#21 ← phi( main::@2_98/(const byte) main::x#20 ) - to:main::@2_99 -main::@2_99: scope:[main] from main::@1_1 - [101] *((const byte*) main::$1 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_100 -main::@2_100: scope:[main] from main::@2_99 - [102] *((const byte*) main::$5 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_101 -main::@2_101: scope:[main] from main::@2_100 - [103] *((const byte*) main::$7 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_102 -main::@2_102: scope:[main] from main::@2_101 - [104] *((const byte*) main::$9 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_103 -main::@2_103: scope:[main] from main::@2_102 - [105] *((const byte*) main::$11 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_104 -main::@2_104: scope:[main] from main::@2_103 - [106] *((const byte*) main::$13 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_105 -main::@2_105: scope:[main] from main::@2_104 - [107] *((const byte*) main::$15 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_106 -main::@2_106: scope:[main] from main::@2_105 - [108] *((const byte*) main::$17 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_107 -main::@2_107: scope:[main] from main::@2_106 - [109] *((const byte*) main::$19 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_108 -main::@2_108: scope:[main] from main::@2_107 - [110] *((const byte*) main::$21 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@2_109 -main::@2_109: scope:[main] from main::@2_108 - [111] *((const byte*) main::$23 + (byte) main::x#21) ← (byte) main::x#21 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_109 - [112] (byte) main::x#22 ← ++ (byte) main::x#21 - [113] if((byte) main::x#22!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [114] return - to:@return -main::@1_2: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#23 ← phi( main::@3_1/(byte) main::x#22 main::@3_2/(byte) main::x#24 ) - to:main::@2_110 -main::@2_110: scope:[main] from main::@1_2 - *((const byte*) main::$1 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_111 -main::@2_111: scope:[main] from main::@2_110 - *((const byte*) main::$5 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_112 -main::@2_112: scope:[main] from main::@2_111 - *((const byte*) main::$7 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_113 -main::@2_113: scope:[main] from main::@2_112 - *((const byte*) main::$9 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_114 -main::@2_114: scope:[main] from main::@2_113 - *((const byte*) main::$11 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_115 -main::@2_115: scope:[main] from main::@2_114 - *((const byte*) main::$13 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_116 -main::@2_116: scope:[main] from main::@2_115 - *((const byte*) main::$15 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_117 -main::@2_117: scope:[main] from main::@2_116 - *((const byte*) main::$17 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_118 -main::@2_118: scope:[main] from main::@2_117 - *((const byte*) main::$19 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_119 -main::@2_119: scope:[main] from main::@2_118 - *((const byte*) main::$21 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_120 -main::@2_120: scope:[main] from main::@2_119 - *((const byte*) main::$23 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_120 - (byte) main::x#24 ← ++ (byte) main::x#23 - unroll if((byte) main::x#24!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_2 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#21 (const byte) main::x#20 Succesful SSA optimization Pass2RedundantPhiElimination @@ -3567,430 +570,6 @@ Succesful SSA optimization Pass2CullEmptyBlocks Block Sequence Planned @begin @1 @end main main::@2 main::@2_1 main::@2_2 main::@2_3 main::@2_4 main::@2_5 main::@2_6 main::@2_7 main::@2_8 main::@2_9 main::@2_10 main::@2_11 main::@2_12 main::@2_13 main::@2_14 main::@2_15 main::@2_16 main::@2_17 main::@2_18 main::@2_19 main::@2_20 main::@2_21 main::@2_22 main::@2_23 main::@2_24 main::@2_25 main::@2_26 main::@2_27 main::@2_28 main::@2_29 main::@2_30 main::@2_31 main::@2_32 main::@2_33 main::@2_34 main::@2_35 main::@2_36 main::@2_37 main::@2_38 main::@2_39 main::@2_40 main::@2_41 main::@2_42 main::@2_43 main::@2_44 main::@2_45 main::@2_46 main::@2_47 main::@2_48 main::@2_49 main::@2_50 main::@2_51 main::@2_52 main::@2_53 main::@2_54 main::@2_55 main::@2_56 main::@2_57 main::@2_58 main::@2_59 main::@2_60 main::@2_61 main::@2_62 main::@2_63 main::@2_64 main::@2_65 main::@2_66 main::@2_67 main::@2_68 main::@2_69 main::@2_70 main::@2_71 main::@2_72 main::@2_73 main::@2_74 main::@2_75 main::@2_76 main::@2_77 main::@2_78 main::@2_79 main::@2_80 main::@2_81 main::@2_82 main::@2_83 main::@2_84 main::@2_85 main::@2_86 main::@2_87 main::@2_88 main::@2_89 main::@2_90 main::@2_91 main::@2_92 main::@2_93 main::@2_94 main::@2_95 main::@2_96 main::@2_97 main::@2_98 main::@2_99 main::@2_100 main::@2_101 main::@2_102 main::@2_103 main::@2_104 main::@2_105 main::@2_106 main::@2_107 main::@2_108 main::@2_109 main::@1_2 main::@2_110 main::@2_111 main::@2_112 main::@2_113 main::@2_114 main::@2_115 main::@2_116 main::@2_117 main::@2_118 main::@2_119 main::@2_120 main::@3_2 main::@return Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_120 main::@2_119 main::@2_118 main::@2_117 main::@2_116 main::@2_115 main::@2_114 main::@2_113 main::@2_112 main::@2_111 main::@2_110 main::@1_2 Successful SSA optimization Pass2LoopUnroll -UNROLLED CONTROL FLOW GRAPH -@begin: scope:[] from - to:@1 -@1: scope:[] from @begin - [0] call main - to:@end -@end: scope:[] from @1 -main: scope:[main] from @1 - to:main::@2 -main::@2: scope:[main] from main - [1] *((const byte*) main::$1+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_1 -main::@2_1: scope:[main] from main::@2 - [2] *((const byte*) main::$5+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_2 -main::@2_2: scope:[main] from main::@2_1 - [3] *((const byte*) main::$7+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_3 -main::@2_3: scope:[main] from main::@2_2 - [4] *((const byte*) main::$9+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_4 -main::@2_4: scope:[main] from main::@2_3 - [5] *((const byte*) main::$11+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_5 -main::@2_5: scope:[main] from main::@2_4 - [6] *((const byte*) main::$13+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_6 -main::@2_6: scope:[main] from main::@2_5 - [7] *((const byte*) main::$15+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_7 -main::@2_7: scope:[main] from main::@2_6 - [8] *((const byte*) main::$17+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_8 -main::@2_8: scope:[main] from main::@2_7 - [9] *((const byte*) main::$19+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_9 -main::@2_9: scope:[main] from main::@2_8 - [10] *((const byte*) main::$21+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_10 -main::@2_10: scope:[main] from main::@2_9 - [11] *((const byte*) main::$23+(const byte) main::x#0) ← (const byte) main::x#0 - to:main::@2_11 -main::@2_11: scope:[main] from main::@2_10 - [12] *((const byte*) main::$1+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_12 -main::@2_12: scope:[main] from main::@2_11 - [13] *((const byte*) main::$5+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_13 -main::@2_13: scope:[main] from main::@2_12 - [14] *((const byte*) main::$7+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_14 -main::@2_14: scope:[main] from main::@2_13 - [15] *((const byte*) main::$9+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_15 -main::@2_15: scope:[main] from main::@2_14 - [16] *((const byte*) main::$11+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_16 -main::@2_16: scope:[main] from main::@2_15 - [17] *((const byte*) main::$13+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_17 -main::@2_17: scope:[main] from main::@2_16 - [18] *((const byte*) main::$15+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_18 -main::@2_18: scope:[main] from main::@2_17 - [19] *((const byte*) main::$17+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_19 -main::@2_19: scope:[main] from main::@2_18 - [20] *((const byte*) main::$19+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_20 -main::@2_20: scope:[main] from main::@2_19 - [21] *((const byte*) main::$21+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_21 -main::@2_21: scope:[main] from main::@2_20 - [22] *((const byte*) main::$23+(const byte) main::x#1) ← (const byte) main::x#1 - to:main::@2_22 -main::@2_22: scope:[main] from main::@2_21 - [23] *((const byte*) main::$1+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_23 -main::@2_23: scope:[main] from main::@2_22 - [24] *((const byte*) main::$5+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_24 -main::@2_24: scope:[main] from main::@2_23 - [25] *((const byte*) main::$7+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_25 -main::@2_25: scope:[main] from main::@2_24 - [26] *((const byte*) main::$9+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_26 -main::@2_26: scope:[main] from main::@2_25 - [27] *((const byte*) main::$11+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_27 -main::@2_27: scope:[main] from main::@2_26 - [28] *((const byte*) main::$13+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_28 -main::@2_28: scope:[main] from main::@2_27 - [29] *((const byte*) main::$15+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_29 -main::@2_29: scope:[main] from main::@2_28 - [30] *((const byte*) main::$17+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_30 -main::@2_30: scope:[main] from main::@2_29 - [31] *((const byte*) main::$19+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_31 -main::@2_31: scope:[main] from main::@2_30 - [32] *((const byte*) main::$21+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_32 -main::@2_32: scope:[main] from main::@2_31 - [33] *((const byte*) main::$23+(const byte) main::x#6) ← (const byte) main::x#6 - to:main::@2_33 -main::@2_33: scope:[main] from main::@2_32 - [34] *((const byte*) main::$1+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_34 -main::@2_34: scope:[main] from main::@2_33 - [35] *((const byte*) main::$5+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_35 -main::@2_35: scope:[main] from main::@2_34 - [36] *((const byte*) main::$7+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_36 -main::@2_36: scope:[main] from main::@2_35 - [37] *((const byte*) main::$9+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_37 -main::@2_37: scope:[main] from main::@2_36 - [38] *((const byte*) main::$11+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_38 -main::@2_38: scope:[main] from main::@2_37 - [39] *((const byte*) main::$13+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_39 -main::@2_39: scope:[main] from main::@2_38 - [40] *((const byte*) main::$15+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_40 -main::@2_40: scope:[main] from main::@2_39 - [41] *((const byte*) main::$17+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_41 -main::@2_41: scope:[main] from main::@2_40 - [42] *((const byte*) main::$19+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_42 -main::@2_42: scope:[main] from main::@2_41 - [43] *((const byte*) main::$21+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_43 -main::@2_43: scope:[main] from main::@2_42 - [44] *((const byte*) main::$23+(const byte) main::x#8) ← (const byte) main::x#8 - to:main::@2_44 -main::@2_44: scope:[main] from main::@2_43 - [45] *((const byte*) main::$1+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_45 -main::@2_45: scope:[main] from main::@2_44 - [46] *((const byte*) main::$5+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_46 -main::@2_46: scope:[main] from main::@2_45 - [47] *((const byte*) main::$7+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_47 -main::@2_47: scope:[main] from main::@2_46 - [48] *((const byte*) main::$9+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_48 -main::@2_48: scope:[main] from main::@2_47 - [49] *((const byte*) main::$11+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_49 -main::@2_49: scope:[main] from main::@2_48 - [50] *((const byte*) main::$13+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_50 -main::@2_50: scope:[main] from main::@2_49 - [51] *((const byte*) main::$15+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_51 -main::@2_51: scope:[main] from main::@2_50 - [52] *((const byte*) main::$17+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_52 -main::@2_52: scope:[main] from main::@2_51 - [53] *((const byte*) main::$19+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_53 -main::@2_53: scope:[main] from main::@2_52 - [54] *((const byte*) main::$21+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_54 -main::@2_54: scope:[main] from main::@2_53 - [55] *((const byte*) main::$23+(const byte) main::x#10) ← (const byte) main::x#10 - to:main::@2_55 -main::@2_55: scope:[main] from main::@2_54 - [56] *((const byte*) main::$1+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_56 -main::@2_56: scope:[main] from main::@2_55 - [57] *((const byte*) main::$5+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_57 -main::@2_57: scope:[main] from main::@2_56 - [58] *((const byte*) main::$7+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_58 -main::@2_58: scope:[main] from main::@2_57 - [59] *((const byte*) main::$9+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_59 -main::@2_59: scope:[main] from main::@2_58 - [60] *((const byte*) main::$11+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_60 -main::@2_60: scope:[main] from main::@2_59 - [61] *((const byte*) main::$13+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_61 -main::@2_61: scope:[main] from main::@2_60 - [62] *((const byte*) main::$15+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_62 -main::@2_62: scope:[main] from main::@2_61 - [63] *((const byte*) main::$17+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_63 -main::@2_63: scope:[main] from main::@2_62 - [64] *((const byte*) main::$19+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_64 -main::@2_64: scope:[main] from main::@2_63 - [65] *((const byte*) main::$21+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_65 -main::@2_65: scope:[main] from main::@2_64 - [66] *((const byte*) main::$23+(const byte) main::x#12) ← (const byte) main::x#12 - to:main::@2_66 -main::@2_66: scope:[main] from main::@2_65 - [67] *((const byte*) main::$1+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_67 -main::@2_67: scope:[main] from main::@2_66 - [68] *((const byte*) main::$5+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_68 -main::@2_68: scope:[main] from main::@2_67 - [69] *((const byte*) main::$7+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_69 -main::@2_69: scope:[main] from main::@2_68 - [70] *((const byte*) main::$9+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_70 -main::@2_70: scope:[main] from main::@2_69 - [71] *((const byte*) main::$11+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_71 -main::@2_71: scope:[main] from main::@2_70 - [72] *((const byte*) main::$13+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_72 -main::@2_72: scope:[main] from main::@2_71 - [73] *((const byte*) main::$15+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_73 -main::@2_73: scope:[main] from main::@2_72 - [74] *((const byte*) main::$17+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_74 -main::@2_74: scope:[main] from main::@2_73 - [75] *((const byte*) main::$19+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_75 -main::@2_75: scope:[main] from main::@2_74 - [76] *((const byte*) main::$21+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_76 -main::@2_76: scope:[main] from main::@2_75 - [77] *((const byte*) main::$23+(const byte) main::x#14) ← (const byte) main::x#14 - to:main::@2_77 -main::@2_77: scope:[main] from main::@2_76 - [78] *((const byte*) main::$1+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_78 -main::@2_78: scope:[main] from main::@2_77 - [79] *((const byte*) main::$5+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_79 -main::@2_79: scope:[main] from main::@2_78 - [80] *((const byte*) main::$7+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_80 -main::@2_80: scope:[main] from main::@2_79 - [81] *((const byte*) main::$9+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_81 -main::@2_81: scope:[main] from main::@2_80 - [82] *((const byte*) main::$11+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_82 -main::@2_82: scope:[main] from main::@2_81 - [83] *((const byte*) main::$13+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_83 -main::@2_83: scope:[main] from main::@2_82 - [84] *((const byte*) main::$15+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_84 -main::@2_84: scope:[main] from main::@2_83 - [85] *((const byte*) main::$17+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_85 -main::@2_85: scope:[main] from main::@2_84 - [86] *((const byte*) main::$19+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_86 -main::@2_86: scope:[main] from main::@2_85 - [87] *((const byte*) main::$21+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_87 -main::@2_87: scope:[main] from main::@2_86 - [88] *((const byte*) main::$23+(const byte) main::x#16) ← (const byte) main::x#16 - to:main::@2_88 -main::@2_88: scope:[main] from main::@2_87 - [89] *((const byte*) main::$1+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_89 -main::@2_89: scope:[main] from main::@2_88 - [90] *((const byte*) main::$5+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_90 -main::@2_90: scope:[main] from main::@2_89 - [91] *((const byte*) main::$7+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_91 -main::@2_91: scope:[main] from main::@2_90 - [92] *((const byte*) main::$9+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_92 -main::@2_92: scope:[main] from main::@2_91 - [93] *((const byte*) main::$11+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_93 -main::@2_93: scope:[main] from main::@2_92 - [94] *((const byte*) main::$13+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_94 -main::@2_94: scope:[main] from main::@2_93 - [95] *((const byte*) main::$15+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_95 -main::@2_95: scope:[main] from main::@2_94 - [96] *((const byte*) main::$17+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_96 -main::@2_96: scope:[main] from main::@2_95 - [97] *((const byte*) main::$19+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_97 -main::@2_97: scope:[main] from main::@2_96 - [98] *((const byte*) main::$21+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_98 -main::@2_98: scope:[main] from main::@2_97 - [99] *((const byte*) main::$23+(const byte) main::x#18) ← (const byte) main::x#18 - to:main::@2_99 -main::@2_99: scope:[main] from main::@2_98 - [100] *((const byte*) main::$1+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_100 -main::@2_100: scope:[main] from main::@2_99 - [101] *((const byte*) main::$5+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_101 -main::@2_101: scope:[main] from main::@2_100 - [102] *((const byte*) main::$7+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_102 -main::@2_102: scope:[main] from main::@2_101 - [103] *((const byte*) main::$9+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_103 -main::@2_103: scope:[main] from main::@2_102 - [104] *((const byte*) main::$11+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_104 -main::@2_104: scope:[main] from main::@2_103 - [105] *((const byte*) main::$13+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_105 -main::@2_105: scope:[main] from main::@2_104 - [106] *((const byte*) main::$15+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_106 -main::@2_106: scope:[main] from main::@2_105 - [107] *((const byte*) main::$17+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_107 -main::@2_107: scope:[main] from main::@2_106 - [108] *((const byte*) main::$19+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_108 -main::@2_108: scope:[main] from main::@2_107 - [109] *((const byte*) main::$21+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@2_109 -main::@2_109: scope:[main] from main::@2_108 - [110] *((const byte*) main::$23+(const byte) main::x#20) ← (const byte) main::x#20 - to:main::@1_2 -main::@1_2: scope:[main] from main::@2_109 - [111] (byte) main::x#23 ← phi( main::@2_109/(const byte) main::x#22 ) - to:main::@2_110 -main::@2_110: scope:[main] from main::@1_2 - [112] *((const byte*) main::$1 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_111 -main::@2_111: scope:[main] from main::@2_110 - [113] *((const byte*) main::$5 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_112 -main::@2_112: scope:[main] from main::@2_111 - [114] *((const byte*) main::$7 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_113 -main::@2_113: scope:[main] from main::@2_112 - [115] *((const byte*) main::$9 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_114 -main::@2_114: scope:[main] from main::@2_113 - [116] *((const byte*) main::$11 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_115 -main::@2_115: scope:[main] from main::@2_114 - [117] *((const byte*) main::$13 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_116 -main::@2_116: scope:[main] from main::@2_115 - [118] *((const byte*) main::$15 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_117 -main::@2_117: scope:[main] from main::@2_116 - [119] *((const byte*) main::$17 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_118 -main::@2_118: scope:[main] from main::@2_117 - [120] *((const byte*) main::$19 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_119 -main::@2_119: scope:[main] from main::@2_118 - [121] *((const byte*) main::$21 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@2_120 -main::@2_120: scope:[main] from main::@2_119 - [122] *((const byte*) main::$23 + (byte) main::x#23) ← (byte) main::x#23 - to:main::@3_2 -main::@3_2: scope:[main] from main::@2_120 - [123] (byte) main::x#24 ← ++ (byte) main::x#23 - [124] if((byte) main::x#24!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return -main::@return: scope:[main] from main::@3_1 main::@3_2 - phi() - [125] return - to:@return -main::@1_1: scope:[main] from main::@3_1 main::@3_2 - (byte) main::x#25 ← phi( main::@3_2/(byte) main::x#24 main::@3_1/(byte) main::x#26 ) - to:main::@2_121 -main::@2_121: scope:[main] from main::@1_1 - *((const byte*) main::$1 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_122 -main::@2_122: scope:[main] from main::@2_121 - *((const byte*) main::$5 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_123 -main::@2_123: scope:[main] from main::@2_122 - *((const byte*) main::$7 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_124 -main::@2_124: scope:[main] from main::@2_123 - *((const byte*) main::$9 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_125 -main::@2_125: scope:[main] from main::@2_124 - *((const byte*) main::$11 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_126 -main::@2_126: scope:[main] from main::@2_125 - *((const byte*) main::$13 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_127 -main::@2_127: scope:[main] from main::@2_126 - *((const byte*) main::$15 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_128 -main::@2_128: scope:[main] from main::@2_127 - *((const byte*) main::$17 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_129 -main::@2_129: scope:[main] from main::@2_128 - *((const byte*) main::$19 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_130 -main::@2_130: scope:[main] from main::@2_129 - *((const byte*) main::$21 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@2_131 -main::@2_131: scope:[main] from main::@2_130 - *((const byte*) main::$23 + (byte) main::x#25) ← (byte) main::x#25 - to:main::@3_1 -main::@3_1: scope:[main] from main::@2_131 - (byte) main::x#26 ← ++ (byte) main::x#25 - unroll if((byte) main::x#26!=(byte/signed byte/word/signed word/dword/signed dword) 11) goto main::@1_1 - to:main::@return - OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#23 (const byte) main::x#22 Succesful SSA optimization Pass2RedundantPhiElimination