From ee5b113b3a0dce74250e71abe2a79b4dc748d07e Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sun, 3 Dec 2017 14:01:31 +0100 Subject: [PATCH] Declared constants only create a single version. Closes #34. --- .../java/dk/camelot64/kickc/model/Scope.java | 20 + ...ss1GenerateSingleStaticAssignmentForm.java | 33 +- .../dk/camelot64/kickc/test/TestPrograms.java | 9 + .../dk/camelot64/kickc/test/basic-floats.kc | 19 + .../dk/camelot64/kickc/test/constabsmin.kc | 5 + .../camelot64/kickc/test/ref/basic-floats.asm | 13 + .../camelot64/kickc/test/ref/basic-floats.cfg | 16 + .../camelot64/kickc/test/ref/basic-floats.log | 439 ++ .../camelot64/kickc/test/ref/basic-floats.sym | 6 + .../kickc/test/ref/bitmap-bresenham.log | 3796 +++-------------- .../kickc/test/ref/bitmap-plotter.log | 1018 +---- .../kickc/test/ref/const-identification.log | 768 ++-- .../camelot64/kickc/test/ref/constabsmin.asm | 10 + .../camelot64/kickc/test/ref/constabsmin.cfg | 15 + .../camelot64/kickc/test/ref/constabsmin.log | 426 ++ .../camelot64/kickc/test/ref/constabsmin.sym | 8 + .../camelot64/kickc/test/ref/constantmin.log | 102 +- .../kickc/test/ref/double-import.log | 65 +- .../dk/camelot64/kickc/test/ref/importing.log | 69 +- .../camelot64/kickc/test/ref/unused-vars.log | 35 +- 20 files changed, 2097 insertions(+), 4775 deletions(-) create mode 100644 src/main/java/dk/camelot64/kickc/test/basic-floats.kc create mode 100644 src/main/java/dk/camelot64/kickc/test/constabsmin.kc create mode 100644 src/main/java/dk/camelot64/kickc/test/ref/basic-floats.asm create mode 100644 src/main/java/dk/camelot64/kickc/test/ref/basic-floats.cfg create mode 100644 src/main/java/dk/camelot64/kickc/test/ref/basic-floats.log create mode 100644 src/main/java/dk/camelot64/kickc/test/ref/basic-floats.sym create mode 100644 src/main/java/dk/camelot64/kickc/test/ref/constabsmin.asm create mode 100644 src/main/java/dk/camelot64/kickc/test/ref/constabsmin.cfg create mode 100644 src/main/java/dk/camelot64/kickc/test/ref/constabsmin.log create mode 100644 src/main/java/dk/camelot64/kickc/test/ref/constabsmin.sym diff --git a/src/main/java/dk/camelot64/kickc/model/Scope.java b/src/main/java/dk/camelot64/kickc/model/Scope.java index 996f558a4..eb20833ad 100644 --- a/src/main/java/dk/camelot64/kickc/model/Scope.java +++ b/src/main/java/dk/camelot64/kickc/model/Scope.java @@ -118,6 +118,26 @@ public abstract class Scope implements Symbol { return symbol; } + /** + * Get all versions of an unversioned variable + * @param unversioned The unversioned variable + * @return All versions of the variable + */ + public Collection getVersions(VariableUnversioned unversioned) { + LinkedHashSet versions = new LinkedHashSet<>(); + for (Symbol symbol : symbols.values()) { + if(symbol instanceof VariableVersion) { + if(((VariableVersion) symbol).isVersioned()) { + if(((VariableVersion) symbol).getVersionOf().equals(unversioned)) { + versions.add((VariableVersion) symbol); + } + } + } + } + return versions; + } + + public String allocateIntermediateVariableName() { return "$" + intermediateVarCount++; } diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateSingleStaticAssignmentForm.java b/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateSingleStaticAssignmentForm.java index b9aee227a..f4b7bf362 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateSingleStaticAssignmentForm.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateSingleStaticAssignmentForm.java @@ -2,6 +2,7 @@ package dk.camelot64.kickc.passes; import dk.camelot64.kickc.model.*; +import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; @@ -45,6 +46,9 @@ public class Pass1GenerateSingleStaticAssignmentForm extends Pass1Base { // Assignment to a non-versioned non-intermediary variable VariableUnversioned assignedSymbol = (VariableUnversioned) assignedVar; VariableVersion version = assignedSymbol.createVersion(); + if(assignedSymbol.isDeclaredConstant()) { + version.setDeclaredConstant(true); + } statementLValue.setlValue(version.getRef()); } } @@ -164,15 +168,26 @@ public class Pass1GenerateSingleStaticAssignmentForm extends Pass1Base { if (rValueVar instanceof VariableUnversioned) { // rValue needs versioning - look for version in statements VariableUnversioned rSymbol = (VariableUnversioned) rValueVar; - version = blockVersions.get(rSymbol); - if (version == null) { - // look for version in new phi functions - version = blockNewPhis.get(rSymbol); - } - if (version == null) { - // create a new phi function - version = rSymbol.createVersion(); - blockNewPhis.put(rSymbol, version); + if(rSymbol.isDeclaredConstant()) { + // A constant - find the single created version + Scope scope = rSymbol.getScope(); + Collection versions = scope.getVersions(rSymbol); + if(versions.size()!=1) { + throw new RuntimeException("Error! Constants always must exactly one version "+rSymbol); + } + return versions.iterator().next(); + } else { + // A proper variable - find or create version + version = blockVersions.get(rSymbol); + if (version == null) { + // look for version in new phi functions + version = blockNewPhis.get(rSymbol); + } + if (version == null) { + // create a new phi function + version = rSymbol.createVersion(); + blockNewPhis.put(rSymbol, version); + } } } } diff --git a/src/main/java/dk/camelot64/kickc/test/TestPrograms.java b/src/main/java/dk/camelot64/kickc/test/TestPrograms.java index f06effafc..d7f14de9e 100644 --- a/src/main/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/main/java/dk/camelot64/kickc/test/TestPrograms.java @@ -24,6 +24,15 @@ public class TestPrograms extends TestCase { helper = new ReferenceHelper("dk/camelot64/kickc/test/ref/"); } + public void testConstantAbsMin() throws IOException, URISyntaxException { + compileAndCompare("constabsmin"); + } + + + public void testBasicFloats() throws IOException, URISyntaxException { + compileAndCompare("basic-floats"); + } + public void testDoubleImport() throws IOException, URISyntaxException { compileAndCompare("double-import"); } diff --git a/src/main/java/dk/camelot64/kickc/test/basic-floats.kc b/src/main/java/dk/camelot64/kickc/test/basic-floats.kc new file mode 100644 index 000000000..b7a9f829c --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/basic-floats.kc @@ -0,0 +1,19 @@ + + +void main() { + + // Load word register Y,A into FAC (floating point accumulator) + asm { + lda #$55 + ldy #$aa + jsr $b391 + } + + // Load FAC (floating point accumulator) integer part into word register Y,A + asm { + jsr $b1aa + sty $fe + sta $ff + } + +} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/test/constabsmin.kc b/src/main/java/dk/camelot64/kickc/test/constabsmin.kc new file mode 100644 index 000000000..26d165700 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/constabsmin.kc @@ -0,0 +1,5 @@ +const byte* SCREEN = $0400; + +void main() { + *SCREEN = 1; +} \ No newline at end of file diff --git a/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.asm b/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.asm new file mode 100644 index 000000000..058f9d7e6 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.asm @@ -0,0 +1,13 @@ +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" + jsr main +main: { + lda #$55 + ldy #$aa + jsr $b391 + jsr $b1aa + sty $fe + sta $ff + rts +} diff --git a/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.cfg b/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.cfg new file mode 100644 index 000000000..0beb83141 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.cfg @@ -0,0 +1,16 @@ +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] ( ) + [2] call main param-assignment [ ] ( ) + to:@end +@end: scope:[] from @1 + [3] phi() [ ] ( ) +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + [6] return [ ] ( main:2 [ ] ) + to:@return diff --git a/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.log b/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.log new file mode 100644 index 000000000..32028b666 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.log @@ -0,0 +1,439 @@ + + +void main() { + + // Load word register Y,A into FAC (floating point accumulator) + asm { + lda #$55 + ldy #$aa + jsr $b391 + } + + // Load FAC (floating point accumulator) integer part into word register Y,A + asm { + jsr $b1aa + sty $fe + sta $ff + } + +} +PROGRAM +proc (void()) main() + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } +main::@return: + return +endproc // main() + call main + +SYMBOLS +(void()) main() +(label) main::@return + +INITIAL CONTROL FLOW GRAPH +@begin: scope:[] from + to:@1 +main: scope:[main] from + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main + to:@end +@end: scope:[] from @1 + +CONTROL FLOW GRAPH +@begin: scope:[] from + to:@1 +main: scope:[main] from + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main + to:@end +@end: scope:[] from @1 + +PROCEDURE MODIFY VARIABLE ANALYSIS + +CONTROL FLOW GRAPH WITH ASSIGNMENT CALL +@begin: scope:[] from + to:@1 +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@2 +@2: scope:[] from @1 + to:@end +@end: scope:[] from @2 + +Completing Phi functions... +CONTROL FLOW GRAPH SSA +@begin: scope:[] from + to:@1 +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@2 +@2: scope:[] from @1 + to:@end +@end: scope:[] from @2 + +CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN +@begin: scope:[] from + to:@1 +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@2 +@2: scope:[] from @1 + to:@end +@end: scope:[] from @2 + +INITIAL SSA SYMBOL TABLE +(label) @1 +(label) @2 +(label) @begin +(label) @end +(void()) main() +(label) main::@return + +Culled Empty Block (label) @2 +Succesful SSA optimization Pass2CullEmptyBlocks +CONTROL FLOW GRAPH +@begin: scope:[] from + to:@1 +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @1 + +FINAL SYMBOL TABLE +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return + +Block Sequence Planned @begin @1 @end main main::@return +Block Sequence Planned @begin @1 @end main main::@return +CONTROL FLOW GRAPH - PHI LIFTED +@begin: scope:[] from + to:@1 +@1: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @1 +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + return + to:@return + +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 +Adding NOP phi() at start of @end +CALL GRAPH +Calls in [] to main:2 + +Propagating live ranges... +CONTROL FLOW GRAPH - LIVE RANGES FOUND +@begin: scope:[] from + [0] phi() [ ] + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] + [2] call main param-assignment [ ] + to:@end +@end: scope:[] from @1 + [3] phi() [ ] +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + [6] return [ ] + to:@return + +Created 0 initial phi equivalence classes +Coalesced down to 0 phi equivalence classes +Block Sequence Planned @begin @1 @end main main::@return +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 +Adding NOP phi() at start of @end +Propagating live ranges... +CONTROL FLOW GRAPH - BEFORE EFFECTIVE LIVE RANGES +@begin: scope:[] from + [0] phi() [ ] + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] + [2] call main param-assignment [ ] + to:@end +@end: scope:[] from @1 + [3] phi() [ ] +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + [6] return [ ] + to:@return + +CONTROL FLOW GRAPH - PHI MEM COALESCED +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] ( ) + [2] call main param-assignment [ ] ( ) + to:@end +@end: scope:[] from @1 + [3] phi() [ ] ( ) +main: scope:[main] from @1 + asm { lda#$55ldy#$aajsr$b391 } + asm { jsr$b1aasty$festa$ff } + to:main::@return +main::@return: scope:[main] from main + [6] return [ ] ( main:2 [ ] ) + to:@return + +DOMINATORS +@begin dominated by @begin +@1 dominated by @1 @begin +@end dominated by @1 @begin @end +main dominated by @1 @begin main +main::@return dominated by main::@return @1 @begin main + +NATURAL LOOPS + +Found 0 loops in scope [] +Found 0 loops in scope [main] +NATURAL LOOPS WITH DEPTH + + +VARIABLE REGISTER WEIGHTS +(void()) main() + +Initial phi equivalence classes +Complete equivalence classes +INITIAL ASM +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels +//SEG2 @begin +bbegin: +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +b1_from_bbegin: + jmp b1 +//SEG4 @1 +b1: +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +bend_from_b1: + jmp bend +//SEG7 @end +bend: +//SEG8 main +main: { + //SEG9 asm { lda#$55ldy#$aajsr$b391 } + lda #$55 + ldy #$aa + jsr $b391 + //SEG10 asm { jsr$b1aasty$festa$ff } + jsr $b1aa + sty $fe + sta $ff + jmp breturn + //SEG11 main::@return + breturn: + //SEG12 [6] return [ ] ( main:2 [ ] ) + rts +} + +REGISTER UPLIFT POTENTIAL REGISTERS +Statement asm { lda#$55ldy#$aajsr$b391 } always clobbers reg byte a reg byte y + +REGISTER UPLIFT SCOPES +Uplift Scope [main] +Uplift Scope [] + +Uplifting [main] best 45 combination +Uplifting [] best 45 combination +Removing instruction jmp b1 +Removing instruction jmp bend +Removing instruction jmp breturn +Succesful ASM optimization Pass5NextJumpElimination +ASSEMBLER +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels +//SEG2 @begin +bbegin: +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +b1_from_bbegin: +//SEG4 @1 +b1: +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +bend_from_b1: +//SEG7 @end +bend: +//SEG8 main +main: { + //SEG9 asm { lda#$55ldy#$aajsr$b391 } + lda #$55 + ldy #$aa + jsr $b391 + //SEG10 asm { jsr$b1aasty$festa$ff } + jsr $b1aa + sty $fe + sta $ff + //SEG11 main::@return + breturn: + //SEG12 [6] return [ ] ( main:2 [ ] ) + rts +} + +Removing instruction bbegin: +Removing instruction b1_from_bbegin: +Removing instruction bend_from_b1: +Succesful ASM optimization Pass5RedundantLabelElimination +ASSEMBLER +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels +//SEG2 @begin +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +//SEG4 @1 +b1: +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +//SEG7 @end +bend: +//SEG8 main +main: { + //SEG9 asm { lda#$55ldy#$aajsr$b391 } + lda #$55 + ldy #$aa + jsr $b391 + //SEG10 asm { jsr$b1aasty$festa$ff } + jsr $b1aa + sty $fe + sta $ff + //SEG11 main::@return + breturn: + //SEG12 [6] return [ ] ( main:2 [ ] ) + rts +} + +Removing instruction b1: +Removing instruction bend: +Removing instruction breturn: +Succesful ASM optimization Pass5UnusedLabelElimination +ASSEMBLER +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels +//SEG2 @begin +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +//SEG4 @1 +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +//SEG7 @end +//SEG8 main +main: { + //SEG9 asm { lda#$55ldy#$aajsr$b391 } + lda #$55 + ldy #$aa + jsr $b391 + //SEG10 asm { jsr$b1aasty$festa$ff } + jsr $b1aa + sty $fe + sta $ff + //SEG11 main::@return + //SEG12 [6] return [ ] ( main:2 [ ] ) + rts +} + +FINAL SYMBOL TABLE +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return + + +FINAL CODE +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels +//SEG2 @begin +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +//SEG4 @1 +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +//SEG7 @end +//SEG8 main +main: { + //SEG9 asm { lda#$55ldy#$aajsr$b391 } + lda #$55 + ldy #$aa + jsr $b391 + //SEG10 asm { jsr$b1aasty$festa$ff } + jsr $b1aa + sty $fe + sta $ff + //SEG11 main::@return + //SEG12 [6] return [ ] ( main:2 [ ] ) + rts +} + diff --git a/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.sym b/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.sym new file mode 100644 index 000000000..5b1ee8133 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/basic-floats.sym @@ -0,0 +1,6 @@ +(label) @1 +(label) @begin +(label) @end +(void()) main() +(label) main::@return + diff --git a/src/main/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log b/src/main/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log index 879ec8341..5b4931b9a 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log @@ -1998,9 +1998,6 @@ Completing Phi functions... Completing Phi functions... Completing Phi functions... Completing Phi functions... -Completing Phi functions... -Completing Phi functions... -Completing Phi functions... CONTROL FLOW GRAPH SSA @begin: scope:[] from (byte*) BGCOL#0 ← ((byte*)) (word) 53280 @@ -2022,16 +2019,10 @@ CONTROL FLOW GRAPH SSA (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@10 main: scope:[main] from @10 - (byte[]) plot_yhi#45 ← phi( @10/(byte[]) plot_yhi#47 ) - (byte[]) plot_ylo#45 ← phi( @10/(byte[]) plot_ylo#47 ) (byte) lines_cnt#8 ← phi( @10/(byte) lines_cnt#9 ) (byte[]) lines_y#8 ← phi( @10/(byte[]) lines_y#9 ) (byte[]) lines_x#8 ← phi( @10/(byte[]) lines_x#9 ) - (byte[]) plot_bit#19 ← phi( @10/(byte[]) plot_bit#36 ) - (byte[]) plot_xhi#19 ← phi( @10/(byte[]) plot_xhi#36 ) - (byte[]) plot_xlo#19 ← phi( @10/(byte[]) plot_xlo#36 ) (byte*) D018#1 ← phi( @10/(byte*) D018#2 ) - (byte*) BITMAP#1 ← phi( @10/(byte*) BITMAP#5 ) (byte*) SCREEN#1 ← phi( @10/(byte*) SCREEN#4 ) (byte*) D011#1 ← phi( @10/(byte*) D011#2 ) (byte) RSEL#1 ← phi( @10/(byte) RSEL#2 ) @@ -2047,7 +2038,7 @@ main: scope:[main] from @10 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -2055,44 +2046,23 @@ main: scope:[main] from @10 call init_screen param-assignment to:main::@3 main::@3: scope:[main] from main - (byte[]) plot_yhi#44 ← phi( main/(byte[]) plot_yhi#45 ) - (byte[]) plot_ylo#44 ← phi( main/(byte[]) plot_ylo#45 ) (byte) lines_cnt#7 ← phi( main/(byte) lines_cnt#8 ) (byte[]) lines_y#7 ← phi( main/(byte[]) lines_y#8 ) (byte[]) lines_x#7 ← phi( main/(byte[]) lines_x#8 ) - (byte[]) plot_bit#17 ← phi( main/(byte[]) plot_bit#19 ) - (byte[]) plot_xhi#17 ← phi( main/(byte[]) plot_xhi#19 ) - (byte*) BITMAP#8 ← phi( main/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#17 ← phi( main/(byte[]) plot_xlo#19 ) call init_plot_tables param-assignment to:main::@4 main::@4: scope:[main] from main::@3 - (byte[]) plot_bit#48 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_ylo#52 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_yhi#52 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_xlo#48 ← phi( main::@3/(byte[]) plot_xlo#17 ) - (byte[]) plot_xhi#48 ← phi( main::@3/(byte[]) plot_xhi#17 ) (byte) lines_cnt#5 ← phi( main::@3/(byte) lines_cnt#7 ) (byte[]) lines_y#5 ← phi( main::@3/(byte[]) lines_y#7 ) (byte[]) lines_x#5 ← phi( main::@3/(byte[]) lines_x#7 ) to:main::@1 main::@1: scope:[main] from main::@4 main::@5 - (byte[]) plot_bit#47 ← phi( main::@4/(byte[]) plot_bit#48 main::@5/(byte[]) plot_bit#49 ) - (byte[]) plot_ylo#51 ← phi( main::@4/(byte[]) plot_ylo#52 main::@5/(byte[]) plot_ylo#53 ) - (byte[]) plot_yhi#51 ← phi( main::@4/(byte[]) plot_yhi#52 main::@5/(byte[]) plot_yhi#53 ) - (byte[]) plot_xlo#47 ← phi( main::@4/(byte[]) plot_xlo#48 main::@5/(byte[]) plot_xlo#49 ) - (byte[]) plot_xhi#47 ← phi( main::@4/(byte[]) plot_xhi#48 main::@5/(byte[]) plot_xhi#49 ) (byte) lines_cnt#4 ← phi( main::@4/(byte) lines_cnt#5 main::@5/(byte) lines_cnt#6 ) (byte[]) lines_y#4 ← phi( main::@4/(byte[]) lines_y#5 main::@5/(byte[]) lines_y#6 ) (byte[]) lines_x#4 ← phi( main::@4/(byte[]) lines_x#5 main::@5/(byte[]) lines_x#6 ) call lines param-assignment to:main::@5 main::@5: scope:[main] from main::@1 - (byte[]) plot_bit#49 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#53 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#53 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#49 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#49 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#6 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#6 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#6 ← phi( main::@1/(byte[]) lines_x#4 ) @@ -2102,22 +2072,12 @@ main::@return: scope:[main] from main::@5 return to:@return lines: scope:[lines] from main::@1 - (byte[]) plot_bit#45 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#49 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#49 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#45 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#45 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#3 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#2 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#2 ← phi( main::@1/(byte[]) lines_x#4 ) (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 to:lines::@1 lines::@1: scope:[lines] from lines lines::@3 - (byte[]) plot_bit#44 ← phi( lines/(byte[]) plot_bit#45 lines::@3/(byte[]) plot_bit#46 ) - (byte[]) plot_ylo#48 ← phi( lines/(byte[]) plot_ylo#49 lines::@3/(byte[]) plot_ylo#50 ) - (byte[]) plot_yhi#48 ← phi( lines/(byte[]) plot_yhi#49 lines::@3/(byte[]) plot_yhi#50 ) - (byte[]) plot_xlo#44 ← phi( lines/(byte[]) plot_xlo#45 lines::@3/(byte[]) plot_xlo#46 ) - (byte[]) plot_xhi#44 ← phi( lines/(byte[]) plot_xhi#45 lines::@3/(byte[]) plot_xhi#46 ) (byte) lines_cnt#2 ← phi( lines/(byte) lines_cnt#3 lines::@3/(byte) lines_cnt#1 ) (byte[]) lines_y#1 ← phi( lines/(byte[]) lines_y#2 lines::@3/(byte[]) lines_y#3 ) (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) @@ -2135,11 +2095,6 @@ lines::@1: scope:[lines] from lines lines::@3 call line param-assignment to:lines::@3 lines::@3: scope:[lines] from lines::@1 - (byte[]) plot_bit#46 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#50 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#50 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#46 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#46 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte[]) lines_y#3 ← phi( lines::@1/(byte[]) lines_y#1 ) (byte[]) lines_x#3 ← phi( lines::@1/(byte[]) lines_x#1 ) (byte) lines_cnt#1 ← phi( lines::@1/(byte) lines_cnt#2 ) @@ -2152,11 +2107,6 @@ lines::@return: scope:[lines] from lines::@3 return to:@return line: scope:[line] from lines::@1 - (byte[]) plot_bit#43 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#46 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#46 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#43 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#43 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte) line::y1#13 ← phi( lines::@1/(byte) line::y1#0 ) (byte) line::y0#13 ← phi( lines::@1/(byte) line::y0#0 ) (byte) line::x1#1 ← phi( lines::@1/(byte) line::x1#0 ) @@ -2166,11 +2116,6 @@ line: scope:[line] from lines::@1 if((boolean~) line::$1) goto line::@1 to:line::@15 line::@1: scope:[line] from line - (byte[]) plot_bit#42 ← phi( line/(byte[]) plot_bit#43 ) - (byte[]) plot_ylo#43 ← phi( line/(byte[]) plot_ylo#46 ) - (byte[]) plot_yhi#43 ← phi( line/(byte[]) plot_yhi#46 ) - (byte[]) plot_xlo#42 ← phi( line/(byte[]) plot_xlo#43 ) - (byte[]) plot_xhi#42 ← phi( line/(byte[]) plot_xhi#43 ) (byte) line::y1#1 ← phi( line/(byte) line::y1#13 ) (byte) line::y0#1 ← phi( line/(byte) line::y0#13 ) (byte) line::x1#2 ← phi( line/(byte) line::x1#1 ) @@ -2182,11 +2127,6 @@ line::@1: scope:[line] from line if((boolean~) line::$17) goto line::@9 to:line::@23 line::@15: scope:[line] from line - (byte[]) plot_bit#41 ← phi( line/(byte[]) plot_bit#43 ) - (byte[]) plot_ylo#42 ← phi( line/(byte[]) plot_ylo#46 ) - (byte[]) plot_yhi#42 ← phi( line/(byte[]) plot_yhi#46 ) - (byte[]) plot_xlo#41 ← phi( line/(byte[]) plot_xlo#43 ) - (byte[]) plot_xhi#41 ← phi( line/(byte[]) plot_xhi#43 ) (byte) line::y1#2 ← phi( line/(byte) line::y1#13 ) (byte) line::y0#2 ← phi( line/(byte) line::y0#13 ) (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) @@ -2198,11 +2138,6 @@ line::@15: scope:[line] from line if((boolean~) line::$4) goto line::@2 to:line::@16 line::@2: scope:[line] from line::@15 - (byte[]) plot_bit#38 ← phi( line::@15/(byte[]) plot_bit#41 ) - (byte[]) plot_ylo#38 ← phi( line::@15/(byte[]) plot_ylo#42 ) - (byte[]) plot_yhi#38 ← phi( line::@15/(byte[]) plot_yhi#42 ) - (byte[]) plot_xlo#38 ← phi( line::@15/(byte[]) plot_xlo#41 ) - (byte[]) plot_xhi#38 ← phi( line::@15/(byte[]) plot_xhi#41 ) (byte) line::x0#11 ← phi( line::@15/(byte) line::x0#3 ) (byte) line::x1#11 ← phi( line::@15/(byte) line::x1#3 ) (byte) line::xd#2 ← phi( line::@15/(byte) line::xd#1 ) @@ -2215,11 +2150,6 @@ line::@2: scope:[line] from line::@15 if((boolean~) line::$12) goto line::@6 to:line::@20 line::@16: scope:[line] from line::@15 - (byte[]) plot_bit#37 ← phi( line::@15/(byte[]) plot_bit#41 ) - (byte[]) plot_ylo#37 ← phi( line::@15/(byte[]) plot_ylo#42 ) - (byte[]) plot_yhi#37 ← phi( line::@15/(byte[]) plot_yhi#42 ) - (byte[]) plot_xlo#37 ← phi( line::@15/(byte[]) plot_xlo#41 ) - (byte[]) plot_xhi#37 ← phi( line::@15/(byte[]) plot_xhi#41 ) (byte) line::x1#10 ← phi( line::@15/(byte) line::x1#3 ) (byte) line::x0#10 ← phi( line::@15/(byte) line::x0#3 ) (byte) line::xd#3 ← phi( line::@15/(byte) line::xd#1 ) @@ -2232,11 +2162,6 @@ line::@16: scope:[line] from line::@15 if((boolean~) line::$7) goto line::@3 to:line::@17 line::@3: scope:[line] from line::@16 - (byte[]) plot_bit#29 ← phi( line::@16/(byte[]) plot_bit#37 ) - (byte[]) plot_ylo#28 ← phi( line::@16/(byte[]) plot_ylo#37 ) - (byte[]) plot_yhi#28 ← phi( line::@16/(byte[]) plot_yhi#37 ) - (byte[]) plot_xlo#29 ← phi( line::@16/(byte[]) plot_xlo#37 ) - (byte[]) plot_xhi#29 ← phi( line::@16/(byte[]) plot_xhi#37 ) (byte) line::xd#4 ← phi( line::@16/(byte) line::xd#3 ) (byte) line::yd#4 ← phi( line::@16/(byte) line::yd#1 ) (byte) line::y1#5 ← phi( line::@16/(byte) line::y1#4 ) @@ -2252,11 +2177,6 @@ line::@3: scope:[line] from line::@16 line::@29: scope:[line] from line::@3 to:line::@return line::@17: scope:[line] from line::@16 - (byte[]) plot_bit#20 ← phi( line::@16/(byte[]) plot_bit#37 ) - (byte[]) plot_ylo#19 ← phi( line::@16/(byte[]) plot_ylo#37 ) - (byte[]) plot_yhi#19 ← phi( line::@16/(byte[]) plot_yhi#37 ) - (byte[]) plot_xlo#20 ← phi( line::@16/(byte[]) plot_xlo#37 ) - (byte[]) plot_xhi#20 ← phi( line::@16/(byte[]) plot_xhi#37 ) (byte) line::yd#5 ← phi( line::@16/(byte) line::yd#1 ) (byte) line::xd#5 ← phi( line::@16/(byte) line::xd#3 ) (byte) line::x1#4 ← phi( line::@16/(byte) line::x1#10 ) @@ -2272,11 +2192,6 @@ line::@17: scope:[line] from line::@16 line::@30: scope:[line] from line::@17 to:line::@return line::@6: scope:[line] from line::@2 - (byte[]) plot_bit#33 ← phi( line::@2/(byte[]) plot_bit#38 ) - (byte[]) plot_ylo#32 ← phi( line::@2/(byte[]) plot_ylo#38 ) - (byte[]) plot_yhi#32 ← phi( line::@2/(byte[]) plot_yhi#38 ) - (byte[]) plot_xlo#33 ← phi( line::@2/(byte[]) plot_xlo#38 ) - (byte[]) plot_xhi#33 ← phi( line::@2/(byte[]) plot_xhi#38 ) (byte) line::xd#6 ← phi( line::@2/(byte) line::xd#2 ) (byte) line::yd#6 ← phi( line::@2/(byte) line::yd#0 ) (byte) line::y0#7 ← phi( line::@2/(byte) line::y0#3 ) @@ -2292,11 +2207,6 @@ line::@6: scope:[line] from line::@2 line::@31: scope:[line] from line::@6 to:line::@return line::@20: scope:[line] from line::@2 - (byte[]) plot_bit#24 ← phi( line::@2/(byte[]) plot_bit#38 ) - (byte[]) plot_ylo#23 ← phi( line::@2/(byte[]) plot_ylo#38 ) - (byte[]) plot_yhi#23 ← phi( line::@2/(byte[]) plot_yhi#38 ) - (byte[]) plot_xlo#24 ← phi( line::@2/(byte[]) plot_xlo#38 ) - (byte[]) plot_xhi#24 ← phi( line::@2/(byte[]) plot_xhi#38 ) (byte) line::yd#7 ← phi( line::@2/(byte) line::yd#0 ) (byte) line::xd#7 ← phi( line::@2/(byte) line::xd#2 ) (byte) line::x1#6 ← phi( line::@2/(byte) line::x1#11 ) @@ -2312,11 +2222,6 @@ line::@20: scope:[line] from line::@2 line::@32: scope:[line] from line::@20 to:line::@return line::@9: scope:[line] from line::@1 - (byte[]) plot_bit#40 ← phi( line::@1/(byte[]) plot_bit#42 ) - (byte[]) plot_ylo#40 ← phi( line::@1/(byte[]) plot_ylo#43 ) - (byte[]) plot_yhi#40 ← phi( line::@1/(byte[]) plot_yhi#43 ) - (byte[]) plot_xlo#40 ← phi( line::@1/(byte[]) plot_xlo#42 ) - (byte[]) plot_xhi#40 ← phi( line::@1/(byte[]) plot_xhi#42 ) (byte) line::x0#13 ← phi( line::@1/(byte) line::x0#2 ) (byte) line::x1#13 ← phi( line::@1/(byte) line::x1#2 ) (byte) line::xd#8 ← phi( line::@1/(byte) line::xd#0 ) @@ -2329,11 +2234,6 @@ line::@9: scope:[line] from line::@1 if((boolean~) line::$25) goto line::@13 to:line::@27 line::@23: scope:[line] from line::@1 - (byte[]) plot_bit#39 ← phi( line::@1/(byte[]) plot_bit#42 ) - (byte[]) plot_ylo#39 ← phi( line::@1/(byte[]) plot_ylo#43 ) - (byte[]) plot_yhi#39 ← phi( line::@1/(byte[]) plot_yhi#43 ) - (byte[]) plot_xlo#39 ← phi( line::@1/(byte[]) plot_xlo#42 ) - (byte[]) plot_xhi#39 ← phi( line::@1/(byte[]) plot_xhi#42 ) (byte) line::x1#12 ← phi( line::@1/(byte) line::x1#2 ) (byte) line::x0#12 ← phi( line::@1/(byte) line::x0#2 ) (byte) line::xd#9 ← phi( line::@1/(byte) line::xd#0 ) @@ -2346,11 +2246,6 @@ line::@23: scope:[line] from line::@1 if((boolean~) line::$20) goto line::@10 to:line::@24 line::@10: scope:[line] from line::@23 - (byte[]) plot_bit#32 ← phi( line::@23/(byte[]) plot_bit#39 ) - (byte[]) plot_ylo#31 ← phi( line::@23/(byte[]) plot_ylo#39 ) - (byte[]) plot_yhi#31 ← phi( line::@23/(byte[]) plot_yhi#39 ) - (byte[]) plot_xlo#32 ← phi( line::@23/(byte[]) plot_xlo#39 ) - (byte[]) plot_xhi#32 ← phi( line::@23/(byte[]) plot_xhi#39 ) (byte) line::xd#10 ← phi( line::@23/(byte) line::xd#9 ) (byte) line::yd#8 ← phi( line::@23/(byte) line::yd#3 ) (byte) line::y1#9 ← phi( line::@23/(byte) line::y1#8 ) @@ -2366,11 +2261,6 @@ line::@10: scope:[line] from line::@23 line::@33: scope:[line] from line::@10 to:line::@return line::@24: scope:[line] from line::@23 - (byte[]) plot_bit#25 ← phi( line::@23/(byte[]) plot_bit#39 ) - (byte[]) plot_ylo#24 ← phi( line::@23/(byte[]) plot_ylo#39 ) - (byte[]) plot_yhi#24 ← phi( line::@23/(byte[]) plot_yhi#39 ) - (byte[]) plot_xlo#25 ← phi( line::@23/(byte[]) plot_xlo#39 ) - (byte[]) plot_xhi#25 ← phi( line::@23/(byte[]) plot_xhi#39 ) (byte) line::yd#9 ← phi( line::@23/(byte) line::yd#3 ) (byte) line::xd#11 ← phi( line::@23/(byte) line::xd#9 ) (byte) line::x0#8 ← phi( line::@23/(byte) line::x0#12 ) @@ -2386,11 +2276,6 @@ line::@24: scope:[line] from line::@23 line::@34: scope:[line] from line::@24 to:line::@return line::@13: scope:[line] from line::@9 - (byte[]) plot_bit#28 ← phi( line::@9/(byte[]) plot_bit#40 ) - (byte[]) plot_ylo#27 ← phi( line::@9/(byte[]) plot_ylo#40 ) - (byte[]) plot_yhi#27 ← phi( line::@9/(byte[]) plot_yhi#40 ) - (byte[]) plot_xlo#28 ← phi( line::@9/(byte[]) plot_xlo#40 ) - (byte[]) plot_xhi#28 ← phi( line::@9/(byte[]) plot_xhi#40 ) (byte) line::xd#12 ← phi( line::@9/(byte) line::xd#8 ) (byte) line::yd#10 ← phi( line::@9/(byte) line::yd#2 ) (byte) line::y0#12 ← phi( line::@9/(byte) line::y0#9 ) @@ -2406,11 +2291,6 @@ line::@13: scope:[line] from line::@9 line::@35: scope:[line] from line::@13 to:line::@return line::@27: scope:[line] from line::@9 - (byte[]) plot_bit#21 ← phi( line::@9/(byte[]) plot_bit#40 ) - (byte[]) plot_ylo#20 ← phi( line::@9/(byte[]) plot_ylo#40 ) - (byte[]) plot_yhi#20 ← phi( line::@9/(byte[]) plot_yhi#40 ) - (byte[]) plot_xlo#21 ← phi( line::@9/(byte[]) plot_xlo#40 ) - (byte[]) plot_xhi#21 ← phi( line::@9/(byte[]) plot_xhi#40 ) (byte) line::yd#11 ← phi( line::@9/(byte) line::yd#2 ) (byte) line::xd#13 ← phi( line::@9/(byte) line::xd#8 ) (byte) line::x0#9 ← phi( line::@9/(byte) line::x0#13 ) @@ -2430,11 +2310,6 @@ line::@return: scope:[line] from line::@29 line::@30 line::@31 line::@32 line:: to:@return line_xdyi: scope:[line_xdyi] from line::@17 line::@27 (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) - (byte[]) plot_bit#9 ← phi( line::@17/(byte[]) plot_bit#20 line::@27/(byte[]) plot_bit#21 ) - (byte[]) plot_ylo#9 ← phi( line::@17/(byte[]) plot_ylo#19 line::@27/(byte[]) plot_ylo#20 ) - (byte[]) plot_yhi#9 ← phi( line::@17/(byte[]) plot_yhi#19 line::@27/(byte[]) plot_yhi#20 ) - (byte[]) plot_xlo#9 ← phi( line::@17/(byte[]) plot_xlo#20 line::@27/(byte[]) plot_xlo#21 ) - (byte[]) plot_xhi#9 ← phi( line::@17/(byte[]) plot_xhi#20 line::@27/(byte[]) plot_xhi#21 ) (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) @@ -2444,11 +2319,6 @@ line_xdyi: scope:[line_xdyi] from line::@17 line::@27 to:line_xdyi::@1 line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 (byte) line_xdyi::x1#5 ← phi( line_xdyi/(byte) line_xdyi::x1#6 line_xdyi::@2/(byte) line_xdyi::x1#2 ) - (byte[]) plot_bit#4 ← phi( line_xdyi/(byte[]) plot_bit#9 line_xdyi::@2/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#4 ← phi( line_xdyi/(byte[]) plot_ylo#9 line_xdyi::@2/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#4 ← phi( line_xdyi/(byte[]) plot_yhi#9 line_xdyi::@2/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#4 ← phi( line_xdyi/(byte[]) plot_xlo#9 line_xdyi::@2/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#4 ← phi( line_xdyi/(byte[]) plot_xhi#9 line_xdyi::@2/(byte[]) plot_xhi#10 ) (byte) line_xdyi::xd#4 ← phi( line_xdyi/(byte) line_xdyi::xd#5 line_xdyi::@2/(byte) line_xdyi::xd#6 ) (byte) line_xdyi::yd#4 ← phi( line_xdyi/(byte) line_xdyi::yd#2 line_xdyi::@2/(byte) line_xdyi::yd#5 ) (byte) line_xdyi::e#5 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) @@ -2459,11 +2329,6 @@ line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 call plot param-assignment to:line_xdyi::@5 line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 - (byte[]) plot_bit#23 ← phi( line_xdyi::@1/(byte[]) plot_bit#4 ) - (byte[]) plot_ylo#22 ← phi( line_xdyi::@1/(byte[]) plot_ylo#4 ) - (byte[]) plot_yhi#22 ← phi( line_xdyi::@1/(byte[]) plot_yhi#4 ) - (byte[]) plot_xlo#23 ← phi( line_xdyi::@1/(byte[]) plot_xlo#4 ) - (byte[]) plot_xhi#23 ← phi( line_xdyi::@1/(byte[]) plot_xhi#4 ) (byte) line_xdyi::y#7 ← phi( line_xdyi::@1/(byte) line_xdyi::y#3 ) (byte) line_xdyi::x1#4 ← phi( line_xdyi::@1/(byte) line_xdyi::x1#5 ) (byte) line_xdyi::xd#2 ← phi( line_xdyi::@1/(byte) line_xdyi::xd#4 ) @@ -2479,11 +2344,6 @@ line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 if((boolean~) line_xdyi::$5) goto line_xdyi::@2 to:line_xdyi::@3 line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 - (byte[]) plot_bit#10 ← phi( line_xdyi::@3/(byte[]) plot_bit#22 line_xdyi::@5/(byte[]) plot_bit#23 ) - (byte[]) plot_ylo#10 ← phi( line_xdyi::@3/(byte[]) plot_ylo#21 line_xdyi::@5/(byte[]) plot_ylo#22 ) - (byte[]) plot_yhi#10 ← phi( line_xdyi::@3/(byte[]) plot_yhi#21 line_xdyi::@5/(byte[]) plot_yhi#22 ) - (byte[]) plot_xlo#10 ← phi( line_xdyi::@3/(byte[]) plot_xlo#22 line_xdyi::@5/(byte[]) plot_xlo#23 ) - (byte[]) plot_xhi#10 ← phi( line_xdyi::@3/(byte[]) plot_xhi#22 line_xdyi::@5/(byte[]) plot_xhi#23 ) (byte) line_xdyi::xd#6 ← phi( line_xdyi::@3/(byte) line_xdyi::xd#3 line_xdyi::@5/(byte) line_xdyi::xd#2 ) (byte) line_xdyi::yd#5 ← phi( line_xdyi::@3/(byte) line_xdyi::yd#6 line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) @@ -2495,11 +2355,6 @@ line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 if((boolean~) line_xdyi::$9) goto line_xdyi::@1 to:line_xdyi::@return line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5 - (byte[]) plot_bit#22 ← phi( line_xdyi::@5/(byte[]) plot_bit#23 ) - (byte[]) plot_ylo#21 ← phi( line_xdyi::@5/(byte[]) plot_ylo#22 ) - (byte[]) plot_yhi#21 ← phi( line_xdyi::@5/(byte[]) plot_yhi#22 ) - (byte[]) plot_xlo#22 ← phi( line_xdyi::@5/(byte[]) plot_xlo#23 ) - (byte[]) plot_xhi#22 ← phi( line_xdyi::@5/(byte[]) plot_xhi#23 ) (byte) line_xdyi::yd#6 ← phi( line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::x#7 ← phi( line_xdyi::@5/(byte) line_xdyi::x#2 ) (byte) line_xdyi::x1#3 ← phi( line_xdyi::@5/(byte) line_xdyi::x1#4 ) @@ -2516,11 +2371,6 @@ line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 to:@return line_xdyd: scope:[line_xdyd] from line::@20 line::@24 (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) - (byte[]) plot_bit#11 ← phi( line::@20/(byte[]) plot_bit#24 line::@24/(byte[]) plot_bit#25 ) - (byte[]) plot_ylo#11 ← phi( line::@20/(byte[]) plot_ylo#23 line::@24/(byte[]) plot_ylo#24 ) - (byte[]) plot_yhi#11 ← phi( line::@20/(byte[]) plot_yhi#23 line::@24/(byte[]) plot_yhi#24 ) - (byte[]) plot_xlo#11 ← phi( line::@20/(byte[]) plot_xlo#24 line::@24/(byte[]) plot_xlo#25 ) - (byte[]) plot_xhi#11 ← phi( line::@20/(byte[]) plot_xhi#24 line::@24/(byte[]) plot_xhi#25 ) (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) @@ -2530,11 +2380,6 @@ line_xdyd: scope:[line_xdyd] from line::@20 line::@24 to:line_xdyd::@1 line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 (byte) line_xdyd::x1#5 ← phi( line_xdyd/(byte) line_xdyd::x1#6 line_xdyd::@2/(byte) line_xdyd::x1#2 ) - (byte[]) plot_bit#3 ← phi( line_xdyd/(byte[]) plot_bit#11 line_xdyd::@2/(byte[]) plot_bit#12 ) - (byte[]) plot_ylo#3 ← phi( line_xdyd/(byte[]) plot_ylo#11 line_xdyd::@2/(byte[]) plot_ylo#12 ) - (byte[]) plot_yhi#3 ← phi( line_xdyd/(byte[]) plot_yhi#11 line_xdyd::@2/(byte[]) plot_yhi#12 ) - (byte[]) plot_xlo#3 ← phi( line_xdyd/(byte[]) plot_xlo#11 line_xdyd::@2/(byte[]) plot_xlo#12 ) - (byte[]) plot_xhi#3 ← phi( line_xdyd/(byte[]) plot_xhi#11 line_xdyd::@2/(byte[]) plot_xhi#12 ) (byte) line_xdyd::xd#4 ← phi( line_xdyd/(byte) line_xdyd::xd#5 line_xdyd::@2/(byte) line_xdyd::xd#6 ) (byte) line_xdyd::yd#4 ← phi( line_xdyd/(byte) line_xdyd::yd#2 line_xdyd::@2/(byte) line_xdyd::yd#5 ) (byte) line_xdyd::e#5 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) @@ -2545,11 +2390,6 @@ line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 call plot param-assignment to:line_xdyd::@5 line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 - (byte[]) plot_bit#27 ← phi( line_xdyd::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#26 ← phi( line_xdyd::@1/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#26 ← phi( line_xdyd::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#27 ← phi( line_xdyd::@1/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#27 ← phi( line_xdyd::@1/(byte[]) plot_xhi#3 ) (byte) line_xdyd::y#7 ← phi( line_xdyd::@1/(byte) line_xdyd::y#3 ) (byte) line_xdyd::x1#4 ← phi( line_xdyd::@1/(byte) line_xdyd::x1#5 ) (byte) line_xdyd::xd#2 ← phi( line_xdyd::@1/(byte) line_xdyd::xd#4 ) @@ -2565,11 +2405,6 @@ line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 if((boolean~) line_xdyd::$5) goto line_xdyd::@2 to:line_xdyd::@3 line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 - (byte[]) plot_bit#12 ← phi( line_xdyd::@3/(byte[]) plot_bit#26 line_xdyd::@5/(byte[]) plot_bit#27 ) - (byte[]) plot_ylo#12 ← phi( line_xdyd::@3/(byte[]) plot_ylo#25 line_xdyd::@5/(byte[]) plot_ylo#26 ) - (byte[]) plot_yhi#12 ← phi( line_xdyd::@3/(byte[]) plot_yhi#25 line_xdyd::@5/(byte[]) plot_yhi#26 ) - (byte[]) plot_xlo#12 ← phi( line_xdyd::@3/(byte[]) plot_xlo#26 line_xdyd::@5/(byte[]) plot_xlo#27 ) - (byte[]) plot_xhi#12 ← phi( line_xdyd::@3/(byte[]) plot_xhi#26 line_xdyd::@5/(byte[]) plot_xhi#27 ) (byte) line_xdyd::xd#6 ← phi( line_xdyd::@3/(byte) line_xdyd::xd#3 line_xdyd::@5/(byte) line_xdyd::xd#2 ) (byte) line_xdyd::yd#5 ← phi( line_xdyd::@3/(byte) line_xdyd::yd#6 line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) @@ -2581,11 +2416,6 @@ line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 if((boolean~) line_xdyd::$9) goto line_xdyd::@1 to:line_xdyd::@return line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5 - (byte[]) plot_bit#26 ← phi( line_xdyd::@5/(byte[]) plot_bit#27 ) - (byte[]) plot_ylo#25 ← phi( line_xdyd::@5/(byte[]) plot_ylo#26 ) - (byte[]) plot_yhi#25 ← phi( line_xdyd::@5/(byte[]) plot_yhi#26 ) - (byte[]) plot_xlo#26 ← phi( line_xdyd::@5/(byte[]) plot_xlo#27 ) - (byte[]) plot_xhi#26 ← phi( line_xdyd::@5/(byte[]) plot_xhi#27 ) (byte) line_xdyd::yd#6 ← phi( line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::x#7 ← phi( line_xdyd::@5/(byte) line_xdyd::x#2 ) (byte) line_xdyd::x1#3 ← phi( line_xdyd::@5/(byte) line_xdyd::x1#4 ) @@ -2602,11 +2432,6 @@ line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 to:@return line_ydxi: scope:[line_ydxi] from line::@13 line::@3 (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) - (byte[]) plot_bit#13 ← phi( line::@13/(byte[]) plot_bit#28 line::@3/(byte[]) plot_bit#29 ) - (byte[]) plot_ylo#13 ← phi( line::@13/(byte[]) plot_ylo#27 line::@3/(byte[]) plot_ylo#28 ) - (byte[]) plot_yhi#13 ← phi( line::@13/(byte[]) plot_yhi#27 line::@3/(byte[]) plot_yhi#28 ) - (byte[]) plot_xlo#13 ← phi( line::@13/(byte[]) plot_xlo#28 line::@3/(byte[]) plot_xlo#29 ) - (byte[]) plot_xhi#13 ← phi( line::@13/(byte[]) plot_xhi#28 line::@3/(byte[]) plot_xhi#29 ) (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) @@ -2616,11 +2441,6 @@ line_ydxi: scope:[line_ydxi] from line::@13 line::@3 to:line_ydxi::@1 line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 (byte) line_ydxi::y1#5 ← phi( line_ydxi/(byte) line_ydxi::y1#6 line_ydxi::@2/(byte) line_ydxi::y1#2 ) - (byte[]) plot_bit#6 ← phi( line_ydxi/(byte[]) plot_bit#13 line_ydxi::@2/(byte[]) plot_bit#14 ) - (byte[]) plot_ylo#6 ← phi( line_ydxi/(byte[]) plot_ylo#13 line_ydxi::@2/(byte[]) plot_ylo#14 ) - (byte[]) plot_yhi#6 ← phi( line_ydxi/(byte[]) plot_yhi#13 line_ydxi::@2/(byte[]) plot_yhi#14 ) - (byte[]) plot_xlo#6 ← phi( line_ydxi/(byte[]) plot_xlo#13 line_ydxi::@2/(byte[]) plot_xlo#14 ) - (byte[]) plot_xhi#6 ← phi( line_ydxi/(byte[]) plot_xhi#13 line_ydxi::@2/(byte[]) plot_xhi#14 ) (byte) line_ydxi::yd#4 ← phi( line_ydxi/(byte) line_ydxi::yd#5 line_ydxi::@2/(byte) line_ydxi::yd#6 ) (byte) line_ydxi::xd#4 ← phi( line_ydxi/(byte) line_ydxi::xd#2 line_ydxi::@2/(byte) line_ydxi::xd#5 ) (byte) line_ydxi::e#5 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) @@ -2631,11 +2451,6 @@ line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 call plot param-assignment to:line_ydxi::@5 line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 - (byte[]) plot_bit#31 ← phi( line_ydxi::@1/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#30 ← phi( line_ydxi::@1/(byte[]) plot_ylo#6 ) - (byte[]) plot_yhi#30 ← phi( line_ydxi::@1/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#31 ← phi( line_ydxi::@1/(byte[]) plot_xlo#6 ) - (byte[]) plot_xhi#31 ← phi( line_ydxi::@1/(byte[]) plot_xhi#6 ) (byte) line_ydxi::x#7 ← phi( line_ydxi::@1/(byte) line_ydxi::x#3 ) (byte) line_ydxi::y1#4 ← phi( line_ydxi::@1/(byte) line_ydxi::y1#5 ) (byte) line_ydxi::yd#2 ← phi( line_ydxi::@1/(byte) line_ydxi::yd#4 ) @@ -2651,11 +2466,6 @@ line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 if((boolean~) line_ydxi::$5) goto line_ydxi::@2 to:line_ydxi::@3 line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 - (byte[]) plot_bit#14 ← phi( line_ydxi::@3/(byte[]) plot_bit#30 line_ydxi::@5/(byte[]) plot_bit#31 ) - (byte[]) plot_ylo#14 ← phi( line_ydxi::@3/(byte[]) plot_ylo#29 line_ydxi::@5/(byte[]) plot_ylo#30 ) - (byte[]) plot_yhi#14 ← phi( line_ydxi::@3/(byte[]) plot_yhi#29 line_ydxi::@5/(byte[]) plot_yhi#30 ) - (byte[]) plot_xlo#14 ← phi( line_ydxi::@3/(byte[]) plot_xlo#30 line_ydxi::@5/(byte[]) plot_xlo#31 ) - (byte[]) plot_xhi#14 ← phi( line_ydxi::@3/(byte[]) plot_xhi#30 line_ydxi::@5/(byte[]) plot_xhi#31 ) (byte) line_ydxi::yd#6 ← phi( line_ydxi::@3/(byte) line_ydxi::yd#3 line_ydxi::@5/(byte) line_ydxi::yd#2 ) (byte) line_ydxi::xd#5 ← phi( line_ydxi::@3/(byte) line_ydxi::xd#6 line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) @@ -2667,11 +2477,6 @@ line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 if((boolean~) line_ydxi::$9) goto line_ydxi::@1 to:line_ydxi::@return line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5 - (byte[]) plot_bit#30 ← phi( line_ydxi::@5/(byte[]) plot_bit#31 ) - (byte[]) plot_ylo#29 ← phi( line_ydxi::@5/(byte[]) plot_ylo#30 ) - (byte[]) plot_yhi#29 ← phi( line_ydxi::@5/(byte[]) plot_yhi#30 ) - (byte[]) plot_xlo#30 ← phi( line_ydxi::@5/(byte[]) plot_xlo#31 ) - (byte[]) plot_xhi#30 ← phi( line_ydxi::@5/(byte[]) plot_xhi#31 ) (byte) line_ydxi::xd#6 ← phi( line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::y#7 ← phi( line_ydxi::@5/(byte) line_ydxi::y#2 ) (byte) line_ydxi::y1#3 ← phi( line_ydxi::@5/(byte) line_ydxi::y1#4 ) @@ -2688,11 +2493,6 @@ line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 to:@return line_ydxd: scope:[line_ydxd] from line::@10 line::@6 (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) - (byte[]) plot_bit#15 ← phi( line::@10/(byte[]) plot_bit#32 line::@6/(byte[]) plot_bit#33 ) - (byte[]) plot_ylo#15 ← phi( line::@10/(byte[]) plot_ylo#31 line::@6/(byte[]) plot_ylo#32 ) - (byte[]) plot_yhi#15 ← phi( line::@10/(byte[]) plot_yhi#31 line::@6/(byte[]) plot_yhi#32 ) - (byte[]) plot_xlo#15 ← phi( line::@10/(byte[]) plot_xlo#32 line::@6/(byte[]) plot_xlo#33 ) - (byte[]) plot_xhi#15 ← phi( line::@10/(byte[]) plot_xhi#32 line::@6/(byte[]) plot_xhi#33 ) (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) @@ -2702,11 +2502,6 @@ line_ydxd: scope:[line_ydxd] from line::@10 line::@6 to:line_ydxd::@1 line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 (byte) line_ydxd::y1#5 ← phi( line_ydxd/(byte) line_ydxd::y1#6 line_ydxd::@2/(byte) line_ydxd::y1#2 ) - (byte[]) plot_bit#5 ← phi( line_ydxd/(byte[]) plot_bit#15 line_ydxd::@2/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#5 ← phi( line_ydxd/(byte[]) plot_ylo#15 line_ydxd::@2/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#5 ← phi( line_ydxd/(byte[]) plot_yhi#15 line_ydxd::@2/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#5 ← phi( line_ydxd/(byte[]) plot_xlo#15 line_ydxd::@2/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#5 ← phi( line_ydxd/(byte[]) plot_xhi#15 line_ydxd::@2/(byte[]) plot_xhi#16 ) (byte) line_ydxd::yd#4 ← phi( line_ydxd/(byte) line_ydxd::yd#5 line_ydxd::@2/(byte) line_ydxd::yd#6 ) (byte) line_ydxd::xd#4 ← phi( line_ydxd/(byte) line_ydxd::xd#2 line_ydxd::@2/(byte) line_ydxd::xd#5 ) (byte) line_ydxd::e#5 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) @@ -2717,11 +2512,6 @@ line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 call plot param-assignment to:line_ydxd::@5 line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 - (byte[]) plot_bit#35 ← phi( line_ydxd::@1/(byte[]) plot_bit#5 ) - (byte[]) plot_ylo#34 ← phi( line_ydxd::@1/(byte[]) plot_ylo#5 ) - (byte[]) plot_yhi#34 ← phi( line_ydxd::@1/(byte[]) plot_yhi#5 ) - (byte[]) plot_xlo#35 ← phi( line_ydxd::@1/(byte[]) plot_xlo#5 ) - (byte[]) plot_xhi#35 ← phi( line_ydxd::@1/(byte[]) plot_xhi#5 ) (byte) line_ydxd::x#7 ← phi( line_ydxd::@1/(byte) line_ydxd::x#3 ) (byte) line_ydxd::y1#4 ← phi( line_ydxd::@1/(byte) line_ydxd::y1#5 ) (byte) line_ydxd::yd#2 ← phi( line_ydxd::@1/(byte) line_ydxd::yd#4 ) @@ -2737,11 +2527,6 @@ line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 if((boolean~) line_ydxd::$5) goto line_ydxd::@2 to:line_ydxd::@3 line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 - (byte[]) plot_bit#16 ← phi( line_ydxd::@3/(byte[]) plot_bit#34 line_ydxd::@5/(byte[]) plot_bit#35 ) - (byte[]) plot_ylo#16 ← phi( line_ydxd::@3/(byte[]) plot_ylo#33 line_ydxd::@5/(byte[]) plot_ylo#34 ) - (byte[]) plot_yhi#16 ← phi( line_ydxd::@3/(byte[]) plot_yhi#33 line_ydxd::@5/(byte[]) plot_yhi#34 ) - (byte[]) plot_xlo#16 ← phi( line_ydxd::@3/(byte[]) plot_xlo#34 line_ydxd::@5/(byte[]) plot_xlo#35 ) - (byte[]) plot_xhi#16 ← phi( line_ydxd::@3/(byte[]) plot_xhi#34 line_ydxd::@5/(byte[]) plot_xhi#35 ) (byte) line_ydxd::yd#6 ← phi( line_ydxd::@3/(byte) line_ydxd::yd#3 line_ydxd::@5/(byte) line_ydxd::yd#2 ) (byte) line_ydxd::xd#5 ← phi( line_ydxd::@3/(byte) line_ydxd::xd#6 line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) @@ -2753,11 +2538,6 @@ line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 if((boolean~) line_ydxd::$9) goto line_ydxd::@1 to:line_ydxd::@return line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5 - (byte[]) plot_bit#34 ← phi( line_ydxd::@5/(byte[]) plot_bit#35 ) - (byte[]) plot_ylo#33 ← phi( line_ydxd::@5/(byte[]) plot_ylo#34 ) - (byte[]) plot_yhi#33 ← phi( line_ydxd::@5/(byte[]) plot_yhi#34 ) - (byte[]) plot_xlo#34 ← phi( line_ydxd::@5/(byte[]) plot_xlo#35 ) - (byte[]) plot_xhi#34 ← phi( line_ydxd::@5/(byte[]) plot_xhi#35 ) (byte) line_ydxd::xd#6 ← phi( line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::y#7 ← phi( line_ydxd::@5/(byte) line_ydxd::y#2 ) (byte) line_ydxd::y1#3 ← phi( line_ydxd::@5/(byte) line_ydxd::y1#4 ) @@ -2773,26 +2553,21 @@ line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 return to:@return plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 - (byte[]) plot_bit#1 ← phi( line_xdyd::@1/(byte[]) plot_bit#3 line_xdyi::@1/(byte[]) plot_bit#4 line_ydxd::@1/(byte[]) plot_bit#5 line_ydxi::@1/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#1 ← phi( line_xdyd::@1/(byte[]) plot_ylo#3 line_xdyi::@1/(byte[]) plot_ylo#4 line_ydxd::@1/(byte[]) plot_ylo#5 line_ydxi::@1/(byte[]) plot_ylo#6 ) (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) - (byte[]) plot_yhi#1 ← phi( line_xdyd::@1/(byte[]) plot_yhi#3 line_xdyi::@1/(byte[]) plot_yhi#4 line_ydxd::@1/(byte[]) plot_yhi#5 line_ydxi::@1/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#1 ← phi( line_xdyd::@1/(byte[]) plot_xlo#3 line_xdyi::@1/(byte[]) plot_xlo#4 line_ydxd::@1/(byte[]) plot_xlo#5 line_ydxi::@1/(byte[]) plot_xlo#6 ) (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) - (byte[]) plot_xhi#1 ← phi( line_xdyd::@1/(byte[]) plot_xhi#3 line_xdyi::@1/(byte[]) plot_xhi#4 line_ydxd::@1/(byte[]) plot_xhi#5 line_ydxi::@1/(byte[]) plot_xhi#6 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#4 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#4 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#4 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#4 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#4 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#4 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#4 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#4 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -2800,29 +2575,17 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@3 - (byte[]) plot_yhi#41 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_ylo#41 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_bit#7 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_xhi#7 ← phi( main::@3/(byte[]) plot_xhi#17 ) - (byte*) BITMAP#6 ← phi( main::@3/(byte*) BITMAP#8 ) - (byte[]) plot_xlo#7 ← phi( main::@3/(byte[]) plot_xlo#17 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#35 ← phi( init_plot_tables/(byte[]) plot_yhi#41 init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#35 ← phi( init_plot_tables/(byte[]) plot_ylo#41 init_plot_tables::@2/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#7 init_plot_tables::@2/(byte[]) plot_bit#8 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#7 init_plot_tables::@2/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#7 init_plot_tables::@2/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (boolean~) init_plot_tables::$3 ← (byte) init_plot_tables::bits#1 == (byte/signed byte/word/signed word) 0 @@ -2830,53 +2593,35 @@ init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_ if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#17 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 init_plot_tables::@5/(byte[]) plot_yhi#36 ) - (byte[]) plot_ylo#17 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 init_plot_tables::@5/(byte[]) plot_ylo#36 ) - (byte[]) plot_bit#8 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#18 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#18 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#9 ) - (byte[]) plot_xlo#8 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#18 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte[]) plot_yhi#36 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 ) - (byte[]) plot_ylo#36 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 ) - (byte[]) plot_bit#18 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 ) - (byte[]) plot_xhi#18 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#9 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#18 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte[]) plot_yhi#8 ← phi( init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#8 ← phi( init_plot_tables::@2/(byte[]) plot_ylo#17 ) (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#7 init_plot_tables::@6/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#7 init_plot_tables::@6/(byte[]) plot_ylo#8 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$11 ← (byte~) init_plot_tables::$10 == (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← ! (boolean~) init_plot_tables::$11 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#7 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#7 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#18 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -2884,8 +2629,6 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p if((boolean~) init_plot_tables::$14) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte[]) plot_yhi#18 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#18 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 ) (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) (byte*~) init_plot_tables::$13 ← (byte*) init_plot_tables::yoffs#3 + (word/signed word) 320 @@ -2896,16 +2639,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#5 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#5 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -2926,16 +2667,10 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 return to:@return @10: scope:[] from @begin - (byte[]) plot_yhi#47 ← phi( @begin/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#47 ← phi( @begin/(byte[]) plot_ylo#0 ) (byte) lines_cnt#9 ← phi( @begin/(byte) lines_cnt#0 ) (byte[]) lines_y#9 ← phi( @begin/(byte[]) lines_y#0 ) (byte[]) lines_x#9 ← phi( @begin/(byte[]) lines_x#0 ) - (byte[]) plot_bit#36 ← phi( @begin/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#36 ← phi( @begin/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#36 ← phi( @begin/(byte[]) plot_xlo#0 ) (byte*) D018#2 ← phi( @begin/(byte*) D018#0 ) - (byte*) BITMAP#5 ← phi( @begin/(byte*) BITMAP#0 ) (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 ) (byte*) D011#2 ← phi( @begin/(byte*) D011#0 ) (byte) RSEL#2 ← phi( @begin/(byte) RSEL#0 ) @@ -2970,16 +2705,10 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@10 main: scope:[main] from @10 - (byte[]) plot_yhi#45 ← phi( @10/(byte[]) plot_yhi#47 ) - (byte[]) plot_ylo#45 ← phi( @10/(byte[]) plot_ylo#47 ) (byte) lines_cnt#8 ← phi( @10/(byte) lines_cnt#9 ) (byte[]) lines_y#8 ← phi( @10/(byte[]) lines_y#9 ) (byte[]) lines_x#8 ← phi( @10/(byte[]) lines_x#9 ) - (byte[]) plot_bit#19 ← phi( @10/(byte[]) plot_bit#36 ) - (byte[]) plot_xhi#19 ← phi( @10/(byte[]) plot_xhi#36 ) - (byte[]) plot_xlo#19 ← phi( @10/(byte[]) plot_xlo#36 ) (byte*) D018#1 ← phi( @10/(byte*) D018#2 ) - (byte*) BITMAP#1 ← phi( @10/(byte*) BITMAP#5 ) (byte*) SCREEN#1 ← phi( @10/(byte*) SCREEN#4 ) (byte*) D011#1 ← phi( @10/(byte*) D011#2 ) (byte) RSEL#1 ← phi( @10/(byte) RSEL#2 ) @@ -2995,7 +2724,7 @@ main: scope:[main] from @10 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -3003,44 +2732,23 @@ main: scope:[main] from @10 call init_screen param-assignment to:main::@3 main::@3: scope:[main] from main - (byte[]) plot_yhi#44 ← phi( main/(byte[]) plot_yhi#45 ) - (byte[]) plot_ylo#44 ← phi( main/(byte[]) plot_ylo#45 ) (byte) lines_cnt#7 ← phi( main/(byte) lines_cnt#8 ) (byte[]) lines_y#7 ← phi( main/(byte[]) lines_y#8 ) (byte[]) lines_x#7 ← phi( main/(byte[]) lines_x#8 ) - (byte[]) plot_bit#17 ← phi( main/(byte[]) plot_bit#19 ) - (byte[]) plot_xhi#17 ← phi( main/(byte[]) plot_xhi#19 ) - (byte*) BITMAP#8 ← phi( main/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#17 ← phi( main/(byte[]) plot_xlo#19 ) call init_plot_tables param-assignment to:main::@4 main::@4: scope:[main] from main::@3 - (byte[]) plot_bit#48 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_ylo#52 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_yhi#52 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_xlo#48 ← phi( main::@3/(byte[]) plot_xlo#17 ) - (byte[]) plot_xhi#48 ← phi( main::@3/(byte[]) plot_xhi#17 ) (byte) lines_cnt#5 ← phi( main::@3/(byte) lines_cnt#7 ) (byte[]) lines_y#5 ← phi( main::@3/(byte[]) lines_y#7 ) (byte[]) lines_x#5 ← phi( main::@3/(byte[]) lines_x#7 ) to:main::@1 main::@1: scope:[main] from main::@4 main::@5 - (byte[]) plot_bit#47 ← phi( main::@4/(byte[]) plot_bit#48 main::@5/(byte[]) plot_bit#49 ) - (byte[]) plot_ylo#51 ← phi( main::@4/(byte[]) plot_ylo#52 main::@5/(byte[]) plot_ylo#53 ) - (byte[]) plot_yhi#51 ← phi( main::@4/(byte[]) plot_yhi#52 main::@5/(byte[]) plot_yhi#53 ) - (byte[]) plot_xlo#47 ← phi( main::@4/(byte[]) plot_xlo#48 main::@5/(byte[]) plot_xlo#49 ) - (byte[]) plot_xhi#47 ← phi( main::@4/(byte[]) plot_xhi#48 main::@5/(byte[]) plot_xhi#49 ) (byte) lines_cnt#4 ← phi( main::@4/(byte) lines_cnt#5 main::@5/(byte) lines_cnt#6 ) (byte[]) lines_y#4 ← phi( main::@4/(byte[]) lines_y#5 main::@5/(byte[]) lines_y#6 ) (byte[]) lines_x#4 ← phi( main::@4/(byte[]) lines_x#5 main::@5/(byte[]) lines_x#6 ) call lines param-assignment to:main::@5 main::@5: scope:[main] from main::@1 - (byte[]) plot_bit#49 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#53 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#53 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#49 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#49 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#6 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#6 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#6 ← phi( main::@1/(byte[]) lines_x#4 ) @@ -3050,22 +2758,12 @@ main::@return: scope:[main] from main::@5 return to:@return lines: scope:[lines] from main::@1 - (byte[]) plot_bit#45 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#49 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#49 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#45 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#45 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#3 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#2 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#2 ← phi( main::@1/(byte[]) lines_x#4 ) (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 to:lines::@1 lines::@1: scope:[lines] from lines lines::@3 - (byte[]) plot_bit#44 ← phi( lines/(byte[]) plot_bit#45 lines::@3/(byte[]) plot_bit#46 ) - (byte[]) plot_ylo#48 ← phi( lines/(byte[]) plot_ylo#49 lines::@3/(byte[]) plot_ylo#50 ) - (byte[]) plot_yhi#48 ← phi( lines/(byte[]) plot_yhi#49 lines::@3/(byte[]) plot_yhi#50 ) - (byte[]) plot_xlo#44 ← phi( lines/(byte[]) plot_xlo#45 lines::@3/(byte[]) plot_xlo#46 ) - (byte[]) plot_xhi#44 ← phi( lines/(byte[]) plot_xhi#45 lines::@3/(byte[]) plot_xhi#46 ) (byte) lines_cnt#2 ← phi( lines/(byte) lines_cnt#3 lines::@3/(byte) lines_cnt#1 ) (byte[]) lines_y#1 ← phi( lines/(byte[]) lines_y#2 lines::@3/(byte[]) lines_y#3 ) (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) @@ -3083,11 +2781,6 @@ lines::@1: scope:[lines] from lines lines::@3 call line param-assignment to:lines::@3 lines::@3: scope:[lines] from lines::@1 - (byte[]) plot_bit#46 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#50 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#50 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#46 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#46 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte[]) lines_y#3 ← phi( lines::@1/(byte[]) lines_y#1 ) (byte[]) lines_x#3 ← phi( lines::@1/(byte[]) lines_x#1 ) (byte) lines_cnt#1 ← phi( lines::@1/(byte) lines_cnt#2 ) @@ -3100,11 +2793,6 @@ lines::@return: scope:[lines] from lines::@3 return to:@return line: scope:[line] from lines::@1 - (byte[]) plot_bit#43 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#46 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#46 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#43 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#43 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte) line::y1#13 ← phi( lines::@1/(byte) line::y1#0 ) (byte) line::y0#13 ← phi( lines::@1/(byte) line::y0#0 ) (byte) line::x1#1 ← phi( lines::@1/(byte) line::x1#0 ) @@ -3114,11 +2802,6 @@ line: scope:[line] from lines::@1 if((boolean~) line::$1) goto line::@1 to:line::@15 line::@1: scope:[line] from line - (byte[]) plot_bit#42 ← phi( line/(byte[]) plot_bit#43 ) - (byte[]) plot_ylo#43 ← phi( line/(byte[]) plot_ylo#46 ) - (byte[]) plot_yhi#43 ← phi( line/(byte[]) plot_yhi#46 ) - (byte[]) plot_xlo#42 ← phi( line/(byte[]) plot_xlo#43 ) - (byte[]) plot_xhi#42 ← phi( line/(byte[]) plot_xhi#43 ) (byte) line::y1#1 ← phi( line/(byte) line::y1#13 ) (byte) line::y0#1 ← phi( line/(byte) line::y0#13 ) (byte) line::x1#2 ← phi( line/(byte) line::x1#1 ) @@ -3130,11 +2813,6 @@ line::@1: scope:[line] from line if((boolean~) line::$17) goto line::@9 to:line::@23 line::@15: scope:[line] from line - (byte[]) plot_bit#41 ← phi( line/(byte[]) plot_bit#43 ) - (byte[]) plot_ylo#42 ← phi( line/(byte[]) plot_ylo#46 ) - (byte[]) plot_yhi#42 ← phi( line/(byte[]) plot_yhi#46 ) - (byte[]) plot_xlo#41 ← phi( line/(byte[]) plot_xlo#43 ) - (byte[]) plot_xhi#41 ← phi( line/(byte[]) plot_xhi#43 ) (byte) line::y1#2 ← phi( line/(byte) line::y1#13 ) (byte) line::y0#2 ← phi( line/(byte) line::y0#13 ) (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) @@ -3146,11 +2824,6 @@ line::@15: scope:[line] from line if((boolean~) line::$4) goto line::@2 to:line::@16 line::@2: scope:[line] from line::@15 - (byte[]) plot_bit#38 ← phi( line::@15/(byte[]) plot_bit#41 ) - (byte[]) plot_ylo#38 ← phi( line::@15/(byte[]) plot_ylo#42 ) - (byte[]) plot_yhi#38 ← phi( line::@15/(byte[]) plot_yhi#42 ) - (byte[]) plot_xlo#38 ← phi( line::@15/(byte[]) plot_xlo#41 ) - (byte[]) plot_xhi#38 ← phi( line::@15/(byte[]) plot_xhi#41 ) (byte) line::x0#11 ← phi( line::@15/(byte) line::x0#3 ) (byte) line::x1#11 ← phi( line::@15/(byte) line::x1#3 ) (byte) line::xd#2 ← phi( line::@15/(byte) line::xd#1 ) @@ -3163,11 +2836,6 @@ line::@2: scope:[line] from line::@15 if((boolean~) line::$12) goto line::@6 to:line::@20 line::@16: scope:[line] from line::@15 - (byte[]) plot_bit#37 ← phi( line::@15/(byte[]) plot_bit#41 ) - (byte[]) plot_ylo#37 ← phi( line::@15/(byte[]) plot_ylo#42 ) - (byte[]) plot_yhi#37 ← phi( line::@15/(byte[]) plot_yhi#42 ) - (byte[]) plot_xlo#37 ← phi( line::@15/(byte[]) plot_xlo#41 ) - (byte[]) plot_xhi#37 ← phi( line::@15/(byte[]) plot_xhi#41 ) (byte) line::x1#10 ← phi( line::@15/(byte) line::x1#3 ) (byte) line::x0#10 ← phi( line::@15/(byte) line::x0#3 ) (byte) line::xd#3 ← phi( line::@15/(byte) line::xd#1 ) @@ -3180,11 +2848,6 @@ line::@16: scope:[line] from line::@15 if((boolean~) line::$7) goto line::@3 to:line::@17 line::@3: scope:[line] from line::@16 - (byte[]) plot_bit#29 ← phi( line::@16/(byte[]) plot_bit#37 ) - (byte[]) plot_ylo#28 ← phi( line::@16/(byte[]) plot_ylo#37 ) - (byte[]) plot_yhi#28 ← phi( line::@16/(byte[]) plot_yhi#37 ) - (byte[]) plot_xlo#29 ← phi( line::@16/(byte[]) plot_xlo#37 ) - (byte[]) plot_xhi#29 ← phi( line::@16/(byte[]) plot_xhi#37 ) (byte) line::xd#4 ← phi( line::@16/(byte) line::xd#3 ) (byte) line::yd#4 ← phi( line::@16/(byte) line::yd#1 ) (byte) line::y1#5 ← phi( line::@16/(byte) line::y1#4 ) @@ -3200,11 +2863,6 @@ line::@3: scope:[line] from line::@16 line::@29: scope:[line] from line::@3 to:line::@return line::@17: scope:[line] from line::@16 - (byte[]) plot_bit#20 ← phi( line::@16/(byte[]) plot_bit#37 ) - (byte[]) plot_ylo#19 ← phi( line::@16/(byte[]) plot_ylo#37 ) - (byte[]) plot_yhi#19 ← phi( line::@16/(byte[]) plot_yhi#37 ) - (byte[]) plot_xlo#20 ← phi( line::@16/(byte[]) plot_xlo#37 ) - (byte[]) plot_xhi#20 ← phi( line::@16/(byte[]) plot_xhi#37 ) (byte) line::yd#5 ← phi( line::@16/(byte) line::yd#1 ) (byte) line::xd#5 ← phi( line::@16/(byte) line::xd#3 ) (byte) line::x1#4 ← phi( line::@16/(byte) line::x1#10 ) @@ -3220,11 +2878,6 @@ line::@17: scope:[line] from line::@16 line::@30: scope:[line] from line::@17 to:line::@return line::@6: scope:[line] from line::@2 - (byte[]) plot_bit#33 ← phi( line::@2/(byte[]) plot_bit#38 ) - (byte[]) plot_ylo#32 ← phi( line::@2/(byte[]) plot_ylo#38 ) - (byte[]) plot_yhi#32 ← phi( line::@2/(byte[]) plot_yhi#38 ) - (byte[]) plot_xlo#33 ← phi( line::@2/(byte[]) plot_xlo#38 ) - (byte[]) plot_xhi#33 ← phi( line::@2/(byte[]) plot_xhi#38 ) (byte) line::xd#6 ← phi( line::@2/(byte) line::xd#2 ) (byte) line::yd#6 ← phi( line::@2/(byte) line::yd#0 ) (byte) line::y0#7 ← phi( line::@2/(byte) line::y0#3 ) @@ -3240,11 +2893,6 @@ line::@6: scope:[line] from line::@2 line::@31: scope:[line] from line::@6 to:line::@return line::@20: scope:[line] from line::@2 - (byte[]) plot_bit#24 ← phi( line::@2/(byte[]) plot_bit#38 ) - (byte[]) plot_ylo#23 ← phi( line::@2/(byte[]) plot_ylo#38 ) - (byte[]) plot_yhi#23 ← phi( line::@2/(byte[]) plot_yhi#38 ) - (byte[]) plot_xlo#24 ← phi( line::@2/(byte[]) plot_xlo#38 ) - (byte[]) plot_xhi#24 ← phi( line::@2/(byte[]) plot_xhi#38 ) (byte) line::yd#7 ← phi( line::@2/(byte) line::yd#0 ) (byte) line::xd#7 ← phi( line::@2/(byte) line::xd#2 ) (byte) line::x1#6 ← phi( line::@2/(byte) line::x1#11 ) @@ -3260,11 +2908,6 @@ line::@20: scope:[line] from line::@2 line::@32: scope:[line] from line::@20 to:line::@return line::@9: scope:[line] from line::@1 - (byte[]) plot_bit#40 ← phi( line::@1/(byte[]) plot_bit#42 ) - (byte[]) plot_ylo#40 ← phi( line::@1/(byte[]) plot_ylo#43 ) - (byte[]) plot_yhi#40 ← phi( line::@1/(byte[]) plot_yhi#43 ) - (byte[]) plot_xlo#40 ← phi( line::@1/(byte[]) plot_xlo#42 ) - (byte[]) plot_xhi#40 ← phi( line::@1/(byte[]) plot_xhi#42 ) (byte) line::x0#13 ← phi( line::@1/(byte) line::x0#2 ) (byte) line::x1#13 ← phi( line::@1/(byte) line::x1#2 ) (byte) line::xd#8 ← phi( line::@1/(byte) line::xd#0 ) @@ -3277,11 +2920,6 @@ line::@9: scope:[line] from line::@1 if((boolean~) line::$25) goto line::@13 to:line::@27 line::@23: scope:[line] from line::@1 - (byte[]) plot_bit#39 ← phi( line::@1/(byte[]) plot_bit#42 ) - (byte[]) plot_ylo#39 ← phi( line::@1/(byte[]) plot_ylo#43 ) - (byte[]) plot_yhi#39 ← phi( line::@1/(byte[]) plot_yhi#43 ) - (byte[]) plot_xlo#39 ← phi( line::@1/(byte[]) plot_xlo#42 ) - (byte[]) plot_xhi#39 ← phi( line::@1/(byte[]) plot_xhi#42 ) (byte) line::x1#12 ← phi( line::@1/(byte) line::x1#2 ) (byte) line::x0#12 ← phi( line::@1/(byte) line::x0#2 ) (byte) line::xd#9 ← phi( line::@1/(byte) line::xd#0 ) @@ -3294,11 +2932,6 @@ line::@23: scope:[line] from line::@1 if((boolean~) line::$20) goto line::@10 to:line::@24 line::@10: scope:[line] from line::@23 - (byte[]) plot_bit#32 ← phi( line::@23/(byte[]) plot_bit#39 ) - (byte[]) plot_ylo#31 ← phi( line::@23/(byte[]) plot_ylo#39 ) - (byte[]) plot_yhi#31 ← phi( line::@23/(byte[]) plot_yhi#39 ) - (byte[]) plot_xlo#32 ← phi( line::@23/(byte[]) plot_xlo#39 ) - (byte[]) plot_xhi#32 ← phi( line::@23/(byte[]) plot_xhi#39 ) (byte) line::xd#10 ← phi( line::@23/(byte) line::xd#9 ) (byte) line::yd#8 ← phi( line::@23/(byte) line::yd#3 ) (byte) line::y1#9 ← phi( line::@23/(byte) line::y1#8 ) @@ -3314,11 +2947,6 @@ line::@10: scope:[line] from line::@23 line::@33: scope:[line] from line::@10 to:line::@return line::@24: scope:[line] from line::@23 - (byte[]) plot_bit#25 ← phi( line::@23/(byte[]) plot_bit#39 ) - (byte[]) plot_ylo#24 ← phi( line::@23/(byte[]) plot_ylo#39 ) - (byte[]) plot_yhi#24 ← phi( line::@23/(byte[]) plot_yhi#39 ) - (byte[]) plot_xlo#25 ← phi( line::@23/(byte[]) plot_xlo#39 ) - (byte[]) plot_xhi#25 ← phi( line::@23/(byte[]) plot_xhi#39 ) (byte) line::yd#9 ← phi( line::@23/(byte) line::yd#3 ) (byte) line::xd#11 ← phi( line::@23/(byte) line::xd#9 ) (byte) line::x0#8 ← phi( line::@23/(byte) line::x0#12 ) @@ -3334,11 +2962,6 @@ line::@24: scope:[line] from line::@23 line::@34: scope:[line] from line::@24 to:line::@return line::@13: scope:[line] from line::@9 - (byte[]) plot_bit#28 ← phi( line::@9/(byte[]) plot_bit#40 ) - (byte[]) plot_ylo#27 ← phi( line::@9/(byte[]) plot_ylo#40 ) - (byte[]) plot_yhi#27 ← phi( line::@9/(byte[]) plot_yhi#40 ) - (byte[]) plot_xlo#28 ← phi( line::@9/(byte[]) plot_xlo#40 ) - (byte[]) plot_xhi#28 ← phi( line::@9/(byte[]) plot_xhi#40 ) (byte) line::xd#12 ← phi( line::@9/(byte) line::xd#8 ) (byte) line::yd#10 ← phi( line::@9/(byte) line::yd#2 ) (byte) line::y0#12 ← phi( line::@9/(byte) line::y0#9 ) @@ -3354,11 +2977,6 @@ line::@13: scope:[line] from line::@9 line::@35: scope:[line] from line::@13 to:line::@return line::@27: scope:[line] from line::@9 - (byte[]) plot_bit#21 ← phi( line::@9/(byte[]) plot_bit#40 ) - (byte[]) plot_ylo#20 ← phi( line::@9/(byte[]) plot_ylo#40 ) - (byte[]) plot_yhi#20 ← phi( line::@9/(byte[]) plot_yhi#40 ) - (byte[]) plot_xlo#21 ← phi( line::@9/(byte[]) plot_xlo#40 ) - (byte[]) plot_xhi#21 ← phi( line::@9/(byte[]) plot_xhi#40 ) (byte) line::yd#11 ← phi( line::@9/(byte) line::yd#2 ) (byte) line::xd#13 ← phi( line::@9/(byte) line::xd#8 ) (byte) line::x0#9 ← phi( line::@9/(byte) line::x0#13 ) @@ -3378,11 +2996,6 @@ line::@return: scope:[line] from line::@29 line::@30 line::@31 line::@32 line:: to:@return line_xdyi: scope:[line_xdyi] from line::@17 line::@27 (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) - (byte[]) plot_bit#9 ← phi( line::@17/(byte[]) plot_bit#20 line::@27/(byte[]) plot_bit#21 ) - (byte[]) plot_ylo#9 ← phi( line::@17/(byte[]) plot_ylo#19 line::@27/(byte[]) plot_ylo#20 ) - (byte[]) plot_yhi#9 ← phi( line::@17/(byte[]) plot_yhi#19 line::@27/(byte[]) plot_yhi#20 ) - (byte[]) plot_xlo#9 ← phi( line::@17/(byte[]) plot_xlo#20 line::@27/(byte[]) plot_xlo#21 ) - (byte[]) plot_xhi#9 ← phi( line::@17/(byte[]) plot_xhi#20 line::@27/(byte[]) plot_xhi#21 ) (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) @@ -3392,11 +3005,6 @@ line_xdyi: scope:[line_xdyi] from line::@17 line::@27 to:line_xdyi::@1 line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 (byte) line_xdyi::x1#5 ← phi( line_xdyi/(byte) line_xdyi::x1#6 line_xdyi::@2/(byte) line_xdyi::x1#2 ) - (byte[]) plot_bit#4 ← phi( line_xdyi/(byte[]) plot_bit#9 line_xdyi::@2/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#4 ← phi( line_xdyi/(byte[]) plot_ylo#9 line_xdyi::@2/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#4 ← phi( line_xdyi/(byte[]) plot_yhi#9 line_xdyi::@2/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#4 ← phi( line_xdyi/(byte[]) plot_xlo#9 line_xdyi::@2/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#4 ← phi( line_xdyi/(byte[]) plot_xhi#9 line_xdyi::@2/(byte[]) plot_xhi#10 ) (byte) line_xdyi::xd#4 ← phi( line_xdyi/(byte) line_xdyi::xd#5 line_xdyi::@2/(byte) line_xdyi::xd#6 ) (byte) line_xdyi::yd#4 ← phi( line_xdyi/(byte) line_xdyi::yd#2 line_xdyi::@2/(byte) line_xdyi::yd#5 ) (byte) line_xdyi::e#5 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) @@ -3407,11 +3015,6 @@ line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 call plot param-assignment to:line_xdyi::@5 line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 - (byte[]) plot_bit#23 ← phi( line_xdyi::@1/(byte[]) plot_bit#4 ) - (byte[]) plot_ylo#22 ← phi( line_xdyi::@1/(byte[]) plot_ylo#4 ) - (byte[]) plot_yhi#22 ← phi( line_xdyi::@1/(byte[]) plot_yhi#4 ) - (byte[]) plot_xlo#23 ← phi( line_xdyi::@1/(byte[]) plot_xlo#4 ) - (byte[]) plot_xhi#23 ← phi( line_xdyi::@1/(byte[]) plot_xhi#4 ) (byte) line_xdyi::y#7 ← phi( line_xdyi::@1/(byte) line_xdyi::y#3 ) (byte) line_xdyi::x1#4 ← phi( line_xdyi::@1/(byte) line_xdyi::x1#5 ) (byte) line_xdyi::xd#2 ← phi( line_xdyi::@1/(byte) line_xdyi::xd#4 ) @@ -3427,11 +3030,6 @@ line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 if((boolean~) line_xdyi::$5) goto line_xdyi::@2 to:line_xdyi::@3 line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 - (byte[]) plot_bit#10 ← phi( line_xdyi::@3/(byte[]) plot_bit#22 line_xdyi::@5/(byte[]) plot_bit#23 ) - (byte[]) plot_ylo#10 ← phi( line_xdyi::@3/(byte[]) plot_ylo#21 line_xdyi::@5/(byte[]) plot_ylo#22 ) - (byte[]) plot_yhi#10 ← phi( line_xdyi::@3/(byte[]) plot_yhi#21 line_xdyi::@5/(byte[]) plot_yhi#22 ) - (byte[]) plot_xlo#10 ← phi( line_xdyi::@3/(byte[]) plot_xlo#22 line_xdyi::@5/(byte[]) plot_xlo#23 ) - (byte[]) plot_xhi#10 ← phi( line_xdyi::@3/(byte[]) plot_xhi#22 line_xdyi::@5/(byte[]) plot_xhi#23 ) (byte) line_xdyi::xd#6 ← phi( line_xdyi::@3/(byte) line_xdyi::xd#3 line_xdyi::@5/(byte) line_xdyi::xd#2 ) (byte) line_xdyi::yd#5 ← phi( line_xdyi::@3/(byte) line_xdyi::yd#6 line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) @@ -3443,11 +3041,6 @@ line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 if((boolean~) line_xdyi::$9) goto line_xdyi::@1 to:line_xdyi::@return line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5 - (byte[]) plot_bit#22 ← phi( line_xdyi::@5/(byte[]) plot_bit#23 ) - (byte[]) plot_ylo#21 ← phi( line_xdyi::@5/(byte[]) plot_ylo#22 ) - (byte[]) plot_yhi#21 ← phi( line_xdyi::@5/(byte[]) plot_yhi#22 ) - (byte[]) plot_xlo#22 ← phi( line_xdyi::@5/(byte[]) plot_xlo#23 ) - (byte[]) plot_xhi#22 ← phi( line_xdyi::@5/(byte[]) plot_xhi#23 ) (byte) line_xdyi::yd#6 ← phi( line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::x#7 ← phi( line_xdyi::@5/(byte) line_xdyi::x#2 ) (byte) line_xdyi::x1#3 ← phi( line_xdyi::@5/(byte) line_xdyi::x1#4 ) @@ -3464,11 +3057,6 @@ line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 to:@return line_xdyd: scope:[line_xdyd] from line::@20 line::@24 (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) - (byte[]) plot_bit#11 ← phi( line::@20/(byte[]) plot_bit#24 line::@24/(byte[]) plot_bit#25 ) - (byte[]) plot_ylo#11 ← phi( line::@20/(byte[]) plot_ylo#23 line::@24/(byte[]) plot_ylo#24 ) - (byte[]) plot_yhi#11 ← phi( line::@20/(byte[]) plot_yhi#23 line::@24/(byte[]) plot_yhi#24 ) - (byte[]) plot_xlo#11 ← phi( line::@20/(byte[]) plot_xlo#24 line::@24/(byte[]) plot_xlo#25 ) - (byte[]) plot_xhi#11 ← phi( line::@20/(byte[]) plot_xhi#24 line::@24/(byte[]) plot_xhi#25 ) (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) @@ -3478,11 +3066,6 @@ line_xdyd: scope:[line_xdyd] from line::@20 line::@24 to:line_xdyd::@1 line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 (byte) line_xdyd::x1#5 ← phi( line_xdyd/(byte) line_xdyd::x1#6 line_xdyd::@2/(byte) line_xdyd::x1#2 ) - (byte[]) plot_bit#3 ← phi( line_xdyd/(byte[]) plot_bit#11 line_xdyd::@2/(byte[]) plot_bit#12 ) - (byte[]) plot_ylo#3 ← phi( line_xdyd/(byte[]) plot_ylo#11 line_xdyd::@2/(byte[]) plot_ylo#12 ) - (byte[]) plot_yhi#3 ← phi( line_xdyd/(byte[]) plot_yhi#11 line_xdyd::@2/(byte[]) plot_yhi#12 ) - (byte[]) plot_xlo#3 ← phi( line_xdyd/(byte[]) plot_xlo#11 line_xdyd::@2/(byte[]) plot_xlo#12 ) - (byte[]) plot_xhi#3 ← phi( line_xdyd/(byte[]) plot_xhi#11 line_xdyd::@2/(byte[]) plot_xhi#12 ) (byte) line_xdyd::xd#4 ← phi( line_xdyd/(byte) line_xdyd::xd#5 line_xdyd::@2/(byte) line_xdyd::xd#6 ) (byte) line_xdyd::yd#4 ← phi( line_xdyd/(byte) line_xdyd::yd#2 line_xdyd::@2/(byte) line_xdyd::yd#5 ) (byte) line_xdyd::e#5 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) @@ -3493,11 +3076,6 @@ line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 call plot param-assignment to:line_xdyd::@5 line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 - (byte[]) plot_bit#27 ← phi( line_xdyd::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#26 ← phi( line_xdyd::@1/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#26 ← phi( line_xdyd::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#27 ← phi( line_xdyd::@1/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#27 ← phi( line_xdyd::@1/(byte[]) plot_xhi#3 ) (byte) line_xdyd::y#7 ← phi( line_xdyd::@1/(byte) line_xdyd::y#3 ) (byte) line_xdyd::x1#4 ← phi( line_xdyd::@1/(byte) line_xdyd::x1#5 ) (byte) line_xdyd::xd#2 ← phi( line_xdyd::@1/(byte) line_xdyd::xd#4 ) @@ -3513,11 +3091,6 @@ line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 if((boolean~) line_xdyd::$5) goto line_xdyd::@2 to:line_xdyd::@3 line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 - (byte[]) plot_bit#12 ← phi( line_xdyd::@3/(byte[]) plot_bit#26 line_xdyd::@5/(byte[]) plot_bit#27 ) - (byte[]) plot_ylo#12 ← phi( line_xdyd::@3/(byte[]) plot_ylo#25 line_xdyd::@5/(byte[]) plot_ylo#26 ) - (byte[]) plot_yhi#12 ← phi( line_xdyd::@3/(byte[]) plot_yhi#25 line_xdyd::@5/(byte[]) plot_yhi#26 ) - (byte[]) plot_xlo#12 ← phi( line_xdyd::@3/(byte[]) plot_xlo#26 line_xdyd::@5/(byte[]) plot_xlo#27 ) - (byte[]) plot_xhi#12 ← phi( line_xdyd::@3/(byte[]) plot_xhi#26 line_xdyd::@5/(byte[]) plot_xhi#27 ) (byte) line_xdyd::xd#6 ← phi( line_xdyd::@3/(byte) line_xdyd::xd#3 line_xdyd::@5/(byte) line_xdyd::xd#2 ) (byte) line_xdyd::yd#5 ← phi( line_xdyd::@3/(byte) line_xdyd::yd#6 line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) @@ -3529,11 +3102,6 @@ line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 if((boolean~) line_xdyd::$9) goto line_xdyd::@1 to:line_xdyd::@return line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5 - (byte[]) plot_bit#26 ← phi( line_xdyd::@5/(byte[]) plot_bit#27 ) - (byte[]) plot_ylo#25 ← phi( line_xdyd::@5/(byte[]) plot_ylo#26 ) - (byte[]) plot_yhi#25 ← phi( line_xdyd::@5/(byte[]) plot_yhi#26 ) - (byte[]) plot_xlo#26 ← phi( line_xdyd::@5/(byte[]) plot_xlo#27 ) - (byte[]) plot_xhi#26 ← phi( line_xdyd::@5/(byte[]) plot_xhi#27 ) (byte) line_xdyd::yd#6 ← phi( line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::x#7 ← phi( line_xdyd::@5/(byte) line_xdyd::x#2 ) (byte) line_xdyd::x1#3 ← phi( line_xdyd::@5/(byte) line_xdyd::x1#4 ) @@ -3550,11 +3118,6 @@ line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 to:@return line_ydxi: scope:[line_ydxi] from line::@13 line::@3 (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) - (byte[]) plot_bit#13 ← phi( line::@13/(byte[]) plot_bit#28 line::@3/(byte[]) plot_bit#29 ) - (byte[]) plot_ylo#13 ← phi( line::@13/(byte[]) plot_ylo#27 line::@3/(byte[]) plot_ylo#28 ) - (byte[]) plot_yhi#13 ← phi( line::@13/(byte[]) plot_yhi#27 line::@3/(byte[]) plot_yhi#28 ) - (byte[]) plot_xlo#13 ← phi( line::@13/(byte[]) plot_xlo#28 line::@3/(byte[]) plot_xlo#29 ) - (byte[]) plot_xhi#13 ← phi( line::@13/(byte[]) plot_xhi#28 line::@3/(byte[]) plot_xhi#29 ) (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) @@ -3564,11 +3127,6 @@ line_ydxi: scope:[line_ydxi] from line::@13 line::@3 to:line_ydxi::@1 line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 (byte) line_ydxi::y1#5 ← phi( line_ydxi/(byte) line_ydxi::y1#6 line_ydxi::@2/(byte) line_ydxi::y1#2 ) - (byte[]) plot_bit#6 ← phi( line_ydxi/(byte[]) plot_bit#13 line_ydxi::@2/(byte[]) plot_bit#14 ) - (byte[]) plot_ylo#6 ← phi( line_ydxi/(byte[]) plot_ylo#13 line_ydxi::@2/(byte[]) plot_ylo#14 ) - (byte[]) plot_yhi#6 ← phi( line_ydxi/(byte[]) plot_yhi#13 line_ydxi::@2/(byte[]) plot_yhi#14 ) - (byte[]) plot_xlo#6 ← phi( line_ydxi/(byte[]) plot_xlo#13 line_ydxi::@2/(byte[]) plot_xlo#14 ) - (byte[]) plot_xhi#6 ← phi( line_ydxi/(byte[]) plot_xhi#13 line_ydxi::@2/(byte[]) plot_xhi#14 ) (byte) line_ydxi::yd#4 ← phi( line_ydxi/(byte) line_ydxi::yd#5 line_ydxi::@2/(byte) line_ydxi::yd#6 ) (byte) line_ydxi::xd#4 ← phi( line_ydxi/(byte) line_ydxi::xd#2 line_ydxi::@2/(byte) line_ydxi::xd#5 ) (byte) line_ydxi::e#5 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) @@ -3579,11 +3137,6 @@ line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 call plot param-assignment to:line_ydxi::@5 line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 - (byte[]) plot_bit#31 ← phi( line_ydxi::@1/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#30 ← phi( line_ydxi::@1/(byte[]) plot_ylo#6 ) - (byte[]) plot_yhi#30 ← phi( line_ydxi::@1/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#31 ← phi( line_ydxi::@1/(byte[]) plot_xlo#6 ) - (byte[]) plot_xhi#31 ← phi( line_ydxi::@1/(byte[]) plot_xhi#6 ) (byte) line_ydxi::x#7 ← phi( line_ydxi::@1/(byte) line_ydxi::x#3 ) (byte) line_ydxi::y1#4 ← phi( line_ydxi::@1/(byte) line_ydxi::y1#5 ) (byte) line_ydxi::yd#2 ← phi( line_ydxi::@1/(byte) line_ydxi::yd#4 ) @@ -3599,11 +3152,6 @@ line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 if((boolean~) line_ydxi::$5) goto line_ydxi::@2 to:line_ydxi::@3 line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 - (byte[]) plot_bit#14 ← phi( line_ydxi::@3/(byte[]) plot_bit#30 line_ydxi::@5/(byte[]) plot_bit#31 ) - (byte[]) plot_ylo#14 ← phi( line_ydxi::@3/(byte[]) plot_ylo#29 line_ydxi::@5/(byte[]) plot_ylo#30 ) - (byte[]) plot_yhi#14 ← phi( line_ydxi::@3/(byte[]) plot_yhi#29 line_ydxi::@5/(byte[]) plot_yhi#30 ) - (byte[]) plot_xlo#14 ← phi( line_ydxi::@3/(byte[]) plot_xlo#30 line_ydxi::@5/(byte[]) plot_xlo#31 ) - (byte[]) plot_xhi#14 ← phi( line_ydxi::@3/(byte[]) plot_xhi#30 line_ydxi::@5/(byte[]) plot_xhi#31 ) (byte) line_ydxi::yd#6 ← phi( line_ydxi::@3/(byte) line_ydxi::yd#3 line_ydxi::@5/(byte) line_ydxi::yd#2 ) (byte) line_ydxi::xd#5 ← phi( line_ydxi::@3/(byte) line_ydxi::xd#6 line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) @@ -3615,11 +3163,6 @@ line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 if((boolean~) line_ydxi::$9) goto line_ydxi::@1 to:line_ydxi::@return line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5 - (byte[]) plot_bit#30 ← phi( line_ydxi::@5/(byte[]) plot_bit#31 ) - (byte[]) plot_ylo#29 ← phi( line_ydxi::@5/(byte[]) plot_ylo#30 ) - (byte[]) plot_yhi#29 ← phi( line_ydxi::@5/(byte[]) plot_yhi#30 ) - (byte[]) plot_xlo#30 ← phi( line_ydxi::@5/(byte[]) plot_xlo#31 ) - (byte[]) plot_xhi#30 ← phi( line_ydxi::@5/(byte[]) plot_xhi#31 ) (byte) line_ydxi::xd#6 ← phi( line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::y#7 ← phi( line_ydxi::@5/(byte) line_ydxi::y#2 ) (byte) line_ydxi::y1#3 ← phi( line_ydxi::@5/(byte) line_ydxi::y1#4 ) @@ -3636,11 +3179,6 @@ line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 to:@return line_ydxd: scope:[line_ydxd] from line::@10 line::@6 (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) - (byte[]) plot_bit#15 ← phi( line::@10/(byte[]) plot_bit#32 line::@6/(byte[]) plot_bit#33 ) - (byte[]) plot_ylo#15 ← phi( line::@10/(byte[]) plot_ylo#31 line::@6/(byte[]) plot_ylo#32 ) - (byte[]) plot_yhi#15 ← phi( line::@10/(byte[]) plot_yhi#31 line::@6/(byte[]) plot_yhi#32 ) - (byte[]) plot_xlo#15 ← phi( line::@10/(byte[]) plot_xlo#32 line::@6/(byte[]) plot_xlo#33 ) - (byte[]) plot_xhi#15 ← phi( line::@10/(byte[]) plot_xhi#32 line::@6/(byte[]) plot_xhi#33 ) (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) @@ -3650,11 +3188,6 @@ line_ydxd: scope:[line_ydxd] from line::@10 line::@6 to:line_ydxd::@1 line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 (byte) line_ydxd::y1#5 ← phi( line_ydxd/(byte) line_ydxd::y1#6 line_ydxd::@2/(byte) line_ydxd::y1#2 ) - (byte[]) plot_bit#5 ← phi( line_ydxd/(byte[]) plot_bit#15 line_ydxd::@2/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#5 ← phi( line_ydxd/(byte[]) plot_ylo#15 line_ydxd::@2/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#5 ← phi( line_ydxd/(byte[]) plot_yhi#15 line_ydxd::@2/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#5 ← phi( line_ydxd/(byte[]) plot_xlo#15 line_ydxd::@2/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#5 ← phi( line_ydxd/(byte[]) plot_xhi#15 line_ydxd::@2/(byte[]) plot_xhi#16 ) (byte) line_ydxd::yd#4 ← phi( line_ydxd/(byte) line_ydxd::yd#5 line_ydxd::@2/(byte) line_ydxd::yd#6 ) (byte) line_ydxd::xd#4 ← phi( line_ydxd/(byte) line_ydxd::xd#2 line_ydxd::@2/(byte) line_ydxd::xd#5 ) (byte) line_ydxd::e#5 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) @@ -3665,11 +3198,6 @@ line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 call plot param-assignment to:line_ydxd::@5 line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 - (byte[]) plot_bit#35 ← phi( line_ydxd::@1/(byte[]) plot_bit#5 ) - (byte[]) plot_ylo#34 ← phi( line_ydxd::@1/(byte[]) plot_ylo#5 ) - (byte[]) plot_yhi#34 ← phi( line_ydxd::@1/(byte[]) plot_yhi#5 ) - (byte[]) plot_xlo#35 ← phi( line_ydxd::@1/(byte[]) plot_xlo#5 ) - (byte[]) plot_xhi#35 ← phi( line_ydxd::@1/(byte[]) plot_xhi#5 ) (byte) line_ydxd::x#7 ← phi( line_ydxd::@1/(byte) line_ydxd::x#3 ) (byte) line_ydxd::y1#4 ← phi( line_ydxd::@1/(byte) line_ydxd::y1#5 ) (byte) line_ydxd::yd#2 ← phi( line_ydxd::@1/(byte) line_ydxd::yd#4 ) @@ -3685,11 +3213,6 @@ line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 if((boolean~) line_ydxd::$5) goto line_ydxd::@2 to:line_ydxd::@3 line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 - (byte[]) plot_bit#16 ← phi( line_ydxd::@3/(byte[]) plot_bit#34 line_ydxd::@5/(byte[]) plot_bit#35 ) - (byte[]) plot_ylo#16 ← phi( line_ydxd::@3/(byte[]) plot_ylo#33 line_ydxd::@5/(byte[]) plot_ylo#34 ) - (byte[]) plot_yhi#16 ← phi( line_ydxd::@3/(byte[]) plot_yhi#33 line_ydxd::@5/(byte[]) plot_yhi#34 ) - (byte[]) plot_xlo#16 ← phi( line_ydxd::@3/(byte[]) plot_xlo#34 line_ydxd::@5/(byte[]) plot_xlo#35 ) - (byte[]) plot_xhi#16 ← phi( line_ydxd::@3/(byte[]) plot_xhi#34 line_ydxd::@5/(byte[]) plot_xhi#35 ) (byte) line_ydxd::yd#6 ← phi( line_ydxd::@3/(byte) line_ydxd::yd#3 line_ydxd::@5/(byte) line_ydxd::yd#2 ) (byte) line_ydxd::xd#5 ← phi( line_ydxd::@3/(byte) line_ydxd::xd#6 line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) @@ -3701,11 +3224,6 @@ line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 if((boolean~) line_ydxd::$9) goto line_ydxd::@1 to:line_ydxd::@return line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5 - (byte[]) plot_bit#34 ← phi( line_ydxd::@5/(byte[]) plot_bit#35 ) - (byte[]) plot_ylo#33 ← phi( line_ydxd::@5/(byte[]) plot_ylo#34 ) - (byte[]) plot_yhi#33 ← phi( line_ydxd::@5/(byte[]) plot_yhi#34 ) - (byte[]) plot_xlo#34 ← phi( line_ydxd::@5/(byte[]) plot_xlo#35 ) - (byte[]) plot_xhi#34 ← phi( line_ydxd::@5/(byte[]) plot_xhi#35 ) (byte) line_ydxd::xd#6 ← phi( line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::y#7 ← phi( line_ydxd::@5/(byte) line_ydxd::y#2 ) (byte) line_ydxd::y1#3 ← phi( line_ydxd::@5/(byte) line_ydxd::y1#4 ) @@ -3721,26 +3239,21 @@ line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 return to:@return plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 - (byte[]) plot_bit#1 ← phi( line_xdyd::@1/(byte[]) plot_bit#3 line_xdyi::@1/(byte[]) plot_bit#4 line_ydxd::@1/(byte[]) plot_bit#5 line_ydxi::@1/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#1 ← phi( line_xdyd::@1/(byte[]) plot_ylo#3 line_xdyi::@1/(byte[]) plot_ylo#4 line_ydxd::@1/(byte[]) plot_ylo#5 line_ydxi::@1/(byte[]) plot_ylo#6 ) (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) - (byte[]) plot_yhi#1 ← phi( line_xdyd::@1/(byte[]) plot_yhi#3 line_xdyi::@1/(byte[]) plot_yhi#4 line_ydxd::@1/(byte[]) plot_yhi#5 line_ydxi::@1/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#1 ← phi( line_xdyd::@1/(byte[]) plot_xlo#3 line_xdyi::@1/(byte[]) plot_xlo#4 line_ydxd::@1/(byte[]) plot_xlo#5 line_ydxi::@1/(byte[]) plot_xlo#6 ) (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) - (byte[]) plot_xhi#1 ← phi( line_xdyd::@1/(byte[]) plot_xhi#3 line_xdyi::@1/(byte[]) plot_xhi#4 line_ydxd::@1/(byte[]) plot_xhi#5 line_ydxi::@1/(byte[]) plot_xhi#6 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#4 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#4 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#4 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#4 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#4 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#4 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#4 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#4 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -3748,29 +3261,17 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@3 - (byte[]) plot_yhi#41 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_ylo#41 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_bit#7 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_xhi#7 ← phi( main::@3/(byte[]) plot_xhi#17 ) - (byte*) BITMAP#6 ← phi( main::@3/(byte*) BITMAP#8 ) - (byte[]) plot_xlo#7 ← phi( main::@3/(byte[]) plot_xlo#17 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#35 ← phi( init_plot_tables/(byte[]) plot_yhi#41 init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#35 ← phi( init_plot_tables/(byte[]) plot_ylo#41 init_plot_tables::@2/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#7 init_plot_tables::@2/(byte[]) plot_bit#8 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#7 init_plot_tables::@2/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#7 init_plot_tables::@2/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (boolean~) init_plot_tables::$3 ← (byte) init_plot_tables::bits#1 == (byte/signed byte/word/signed word) 0 @@ -3778,53 +3279,35 @@ init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_ if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#17 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 init_plot_tables::@5/(byte[]) plot_yhi#36 ) - (byte[]) plot_ylo#17 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 init_plot_tables::@5/(byte[]) plot_ylo#36 ) - (byte[]) plot_bit#8 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#18 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#18 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#9 ) - (byte[]) plot_xlo#8 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#18 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte[]) plot_yhi#36 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 ) - (byte[]) plot_ylo#36 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 ) - (byte[]) plot_bit#18 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 ) - (byte[]) plot_xhi#18 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#9 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#18 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte[]) plot_yhi#8 ← phi( init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#8 ← phi( init_plot_tables::@2/(byte[]) plot_ylo#17 ) (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#7 init_plot_tables::@6/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#7 init_plot_tables::@6/(byte[]) plot_ylo#8 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$11 ← (byte~) init_plot_tables::$10 == (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← ! (boolean~) init_plot_tables::$11 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#7 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#7 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#18 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -3832,8 +3315,6 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p if((boolean~) init_plot_tables::$14) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte[]) plot_yhi#18 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#18 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 ) (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) (byte*~) init_plot_tables::$13 ← (byte*) init_plot_tables::yoffs#3 + (word/signed word) 320 @@ -3844,16 +3325,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#5 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#5 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -3874,16 +3353,10 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 return to:@return @10: scope:[] from @begin - (byte[]) plot_yhi#47 ← phi( @begin/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#47 ← phi( @begin/(byte[]) plot_ylo#0 ) (byte) lines_cnt#9 ← phi( @begin/(byte) lines_cnt#0 ) (byte[]) lines_y#9 ← phi( @begin/(byte[]) lines_y#0 ) (byte[]) lines_x#9 ← phi( @begin/(byte[]) lines_x#0 ) - (byte[]) plot_bit#36 ← phi( @begin/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#36 ← phi( @begin/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#36 ← phi( @begin/(byte[]) plot_xlo#0 ) (byte*) D018#2 ← phi( @begin/(byte*) D018#0 ) - (byte*) BITMAP#5 ← phi( @begin/(byte*) BITMAP#0 ) (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 ) (byte*) D011#2 ← phi( @begin/(byte*) D011#0 ) (byte) RSEL#2 ← phi( @begin/(byte) RSEL#0 ) @@ -3908,15 +3381,6 @@ INITIAL SSA SYMBOL TABLE (byte*) BGCOL#2 (byte*) BITMAP (byte*) BITMAP#0 -(byte*) BITMAP#1 -(byte*) BITMAP#2 -(byte*) BITMAP#3 -(byte*) BITMAP#4 -(byte*) BITMAP#5 -(byte*) BITMAP#6 -(byte*) BITMAP#7 -(byte*) BITMAP#8 -(byte*) BITMAP#9 (byte) BMM (byte) BMM#0 (byte) BMM#1 @@ -4503,267 +3967,14 @@ INITIAL SSA SYMBOL TABLE (byte) plot::y#4 (byte[]) plot_bit (byte[]) plot_bit#0 -(byte[]) plot_bit#1 -(byte[]) plot_bit#10 -(byte[]) plot_bit#11 -(byte[]) plot_bit#12 -(byte[]) plot_bit#13 -(byte[]) plot_bit#14 -(byte[]) plot_bit#15 -(byte[]) plot_bit#16 -(byte[]) plot_bit#17 -(byte[]) plot_bit#18 -(byte[]) plot_bit#19 -(byte[]) plot_bit#2 -(byte[]) plot_bit#20 -(byte[]) plot_bit#21 -(byte[]) plot_bit#22 -(byte[]) plot_bit#23 -(byte[]) plot_bit#24 -(byte[]) plot_bit#25 -(byte[]) plot_bit#26 -(byte[]) plot_bit#27 -(byte[]) plot_bit#28 -(byte[]) plot_bit#29 -(byte[]) plot_bit#3 -(byte[]) plot_bit#30 -(byte[]) plot_bit#31 -(byte[]) plot_bit#32 -(byte[]) plot_bit#33 -(byte[]) plot_bit#34 -(byte[]) plot_bit#35 -(byte[]) plot_bit#36 -(byte[]) plot_bit#37 -(byte[]) plot_bit#38 -(byte[]) plot_bit#39 -(byte[]) plot_bit#4 -(byte[]) plot_bit#40 -(byte[]) plot_bit#41 -(byte[]) plot_bit#42 -(byte[]) plot_bit#43 -(byte[]) plot_bit#44 -(byte[]) plot_bit#45 -(byte[]) plot_bit#46 -(byte[]) plot_bit#47 -(byte[]) plot_bit#48 -(byte[]) plot_bit#49 -(byte[]) plot_bit#5 -(byte[]) plot_bit#6 -(byte[]) plot_bit#7 -(byte[]) plot_bit#8 -(byte[]) plot_bit#9 (byte[]) plot_xhi (byte[]) plot_xhi#0 -(byte[]) plot_xhi#1 -(byte[]) plot_xhi#10 -(byte[]) plot_xhi#11 -(byte[]) plot_xhi#12 -(byte[]) plot_xhi#13 -(byte[]) plot_xhi#14 -(byte[]) plot_xhi#15 -(byte[]) plot_xhi#16 -(byte[]) plot_xhi#17 -(byte[]) plot_xhi#18 -(byte[]) plot_xhi#19 -(byte[]) plot_xhi#2 -(byte[]) plot_xhi#20 -(byte[]) plot_xhi#21 -(byte[]) plot_xhi#22 -(byte[]) plot_xhi#23 -(byte[]) plot_xhi#24 -(byte[]) plot_xhi#25 -(byte[]) plot_xhi#26 -(byte[]) plot_xhi#27 -(byte[]) plot_xhi#28 -(byte[]) plot_xhi#29 -(byte[]) plot_xhi#3 -(byte[]) plot_xhi#30 -(byte[]) plot_xhi#31 -(byte[]) plot_xhi#32 -(byte[]) plot_xhi#33 -(byte[]) plot_xhi#34 -(byte[]) plot_xhi#35 -(byte[]) plot_xhi#36 -(byte[]) plot_xhi#37 -(byte[]) plot_xhi#38 -(byte[]) plot_xhi#39 -(byte[]) plot_xhi#4 -(byte[]) plot_xhi#40 -(byte[]) plot_xhi#41 -(byte[]) plot_xhi#42 -(byte[]) plot_xhi#43 -(byte[]) plot_xhi#44 -(byte[]) plot_xhi#45 -(byte[]) plot_xhi#46 -(byte[]) plot_xhi#47 -(byte[]) plot_xhi#48 -(byte[]) plot_xhi#49 -(byte[]) plot_xhi#5 -(byte[]) plot_xhi#6 -(byte[]) plot_xhi#7 -(byte[]) plot_xhi#8 -(byte[]) plot_xhi#9 (byte[]) plot_xlo (byte[]) plot_xlo#0 -(byte[]) plot_xlo#1 -(byte[]) plot_xlo#10 -(byte[]) plot_xlo#11 -(byte[]) plot_xlo#12 -(byte[]) plot_xlo#13 -(byte[]) plot_xlo#14 -(byte[]) plot_xlo#15 -(byte[]) plot_xlo#16 -(byte[]) plot_xlo#17 -(byte[]) plot_xlo#18 -(byte[]) plot_xlo#19 -(byte[]) plot_xlo#2 -(byte[]) plot_xlo#20 -(byte[]) plot_xlo#21 -(byte[]) plot_xlo#22 -(byte[]) plot_xlo#23 -(byte[]) plot_xlo#24 -(byte[]) plot_xlo#25 -(byte[]) plot_xlo#26 -(byte[]) plot_xlo#27 -(byte[]) plot_xlo#28 -(byte[]) plot_xlo#29 -(byte[]) plot_xlo#3 -(byte[]) plot_xlo#30 -(byte[]) plot_xlo#31 -(byte[]) plot_xlo#32 -(byte[]) plot_xlo#33 -(byte[]) plot_xlo#34 -(byte[]) plot_xlo#35 -(byte[]) plot_xlo#36 -(byte[]) plot_xlo#37 -(byte[]) plot_xlo#38 -(byte[]) plot_xlo#39 -(byte[]) plot_xlo#4 -(byte[]) plot_xlo#40 -(byte[]) plot_xlo#41 -(byte[]) plot_xlo#42 -(byte[]) plot_xlo#43 -(byte[]) plot_xlo#44 -(byte[]) plot_xlo#45 -(byte[]) plot_xlo#46 -(byte[]) plot_xlo#47 -(byte[]) plot_xlo#48 -(byte[]) plot_xlo#49 -(byte[]) plot_xlo#5 -(byte[]) plot_xlo#6 -(byte[]) plot_xlo#7 -(byte[]) plot_xlo#8 -(byte[]) plot_xlo#9 (byte[]) plot_yhi (byte[]) plot_yhi#0 -(byte[]) plot_yhi#1 -(byte[]) plot_yhi#10 -(byte[]) plot_yhi#11 -(byte[]) plot_yhi#12 -(byte[]) plot_yhi#13 -(byte[]) plot_yhi#14 -(byte[]) plot_yhi#15 -(byte[]) plot_yhi#16 -(byte[]) plot_yhi#17 -(byte[]) plot_yhi#18 -(byte[]) plot_yhi#19 -(byte[]) plot_yhi#2 -(byte[]) plot_yhi#20 -(byte[]) plot_yhi#21 -(byte[]) plot_yhi#22 -(byte[]) plot_yhi#23 -(byte[]) plot_yhi#24 -(byte[]) plot_yhi#25 -(byte[]) plot_yhi#26 -(byte[]) plot_yhi#27 -(byte[]) plot_yhi#28 -(byte[]) plot_yhi#29 -(byte[]) plot_yhi#3 -(byte[]) plot_yhi#30 -(byte[]) plot_yhi#31 -(byte[]) plot_yhi#32 -(byte[]) plot_yhi#33 -(byte[]) plot_yhi#34 -(byte[]) plot_yhi#35 -(byte[]) plot_yhi#36 -(byte[]) plot_yhi#37 -(byte[]) plot_yhi#38 -(byte[]) plot_yhi#39 -(byte[]) plot_yhi#4 -(byte[]) plot_yhi#40 -(byte[]) plot_yhi#41 -(byte[]) plot_yhi#42 -(byte[]) plot_yhi#43 -(byte[]) plot_yhi#44 -(byte[]) plot_yhi#45 -(byte[]) plot_yhi#46 -(byte[]) plot_yhi#47 -(byte[]) plot_yhi#48 -(byte[]) plot_yhi#49 -(byte[]) plot_yhi#5 -(byte[]) plot_yhi#50 -(byte[]) plot_yhi#51 -(byte[]) plot_yhi#52 -(byte[]) plot_yhi#53 -(byte[]) plot_yhi#6 -(byte[]) plot_yhi#7 -(byte[]) plot_yhi#8 -(byte[]) plot_yhi#9 (byte[]) plot_ylo (byte[]) plot_ylo#0 -(byte[]) plot_ylo#1 -(byte[]) plot_ylo#10 -(byte[]) plot_ylo#11 -(byte[]) plot_ylo#12 -(byte[]) plot_ylo#13 -(byte[]) plot_ylo#14 -(byte[]) plot_ylo#15 -(byte[]) plot_ylo#16 -(byte[]) plot_ylo#17 -(byte[]) plot_ylo#18 -(byte[]) plot_ylo#19 -(byte[]) plot_ylo#2 -(byte[]) plot_ylo#20 -(byte[]) plot_ylo#21 -(byte[]) plot_ylo#22 -(byte[]) plot_ylo#23 -(byte[]) plot_ylo#24 -(byte[]) plot_ylo#25 -(byte[]) plot_ylo#26 -(byte[]) plot_ylo#27 -(byte[]) plot_ylo#28 -(byte[]) plot_ylo#29 -(byte[]) plot_ylo#3 -(byte[]) plot_ylo#30 -(byte[]) plot_ylo#31 -(byte[]) plot_ylo#32 -(byte[]) plot_ylo#33 -(byte[]) plot_ylo#34 -(byte[]) plot_ylo#35 -(byte[]) plot_ylo#36 -(byte[]) plot_ylo#37 -(byte[]) plot_ylo#38 -(byte[]) plot_ylo#39 -(byte[]) plot_ylo#4 -(byte[]) plot_ylo#40 -(byte[]) plot_ylo#41 -(byte[]) plot_ylo#42 -(byte[]) plot_ylo#43 -(byte[]) plot_ylo#44 -(byte[]) plot_ylo#45 -(byte[]) plot_ylo#46 -(byte[]) plot_ylo#47 -(byte[]) plot_ylo#48 -(byte[]) plot_ylo#49 -(byte[]) plot_ylo#5 -(byte[]) plot_ylo#50 -(byte[]) plot_ylo#51 -(byte[]) plot_ylo#52 -(byte[]) plot_ylo#53 -(byte[]) plot_ylo#6 -(byte[]) plot_ylo#7 -(byte[]) plot_ylo#8 -(byte[]) plot_ylo#9 Culled Empty Block (label) line::@29 Culled Empty Block (label) line::@30 @@ -4796,16 +4007,10 @@ CONTROL FLOW GRAPH (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@10 main: scope:[main] from @10 - (byte[]) plot_yhi#45 ← phi( @10/(byte[]) plot_yhi#47 ) - (byte[]) plot_ylo#45 ← phi( @10/(byte[]) plot_ylo#47 ) (byte) lines_cnt#8 ← phi( @10/(byte) lines_cnt#9 ) (byte[]) lines_y#8 ← phi( @10/(byte[]) lines_y#9 ) (byte[]) lines_x#8 ← phi( @10/(byte[]) lines_x#9 ) - (byte[]) plot_bit#19 ← phi( @10/(byte[]) plot_bit#36 ) - (byte[]) plot_xhi#19 ← phi( @10/(byte[]) plot_xhi#36 ) - (byte[]) plot_xlo#19 ← phi( @10/(byte[]) plot_xlo#36 ) (byte*) D018#1 ← phi( @10/(byte*) D018#2 ) - (byte*) BITMAP#1 ← phi( @10/(byte*) BITMAP#5 ) (byte*) SCREEN#1 ← phi( @10/(byte*) SCREEN#4 ) (byte*) D011#1 ← phi( @10/(byte*) D011#2 ) (byte) RSEL#1 ← phi( @10/(byte) RSEL#2 ) @@ -4821,7 +4026,7 @@ main: scope:[main] from @10 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -4829,44 +4034,23 @@ main: scope:[main] from @10 call init_screen param-assignment to:main::@3 main::@3: scope:[main] from main - (byte[]) plot_yhi#44 ← phi( main/(byte[]) plot_yhi#45 ) - (byte[]) plot_ylo#44 ← phi( main/(byte[]) plot_ylo#45 ) (byte) lines_cnt#7 ← phi( main/(byte) lines_cnt#8 ) (byte[]) lines_y#7 ← phi( main/(byte[]) lines_y#8 ) (byte[]) lines_x#7 ← phi( main/(byte[]) lines_x#8 ) - (byte[]) plot_bit#17 ← phi( main/(byte[]) plot_bit#19 ) - (byte[]) plot_xhi#17 ← phi( main/(byte[]) plot_xhi#19 ) - (byte*) BITMAP#8 ← phi( main/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#17 ← phi( main/(byte[]) plot_xlo#19 ) call init_plot_tables param-assignment to:main::@4 main::@4: scope:[main] from main::@3 - (byte[]) plot_bit#48 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_ylo#52 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_yhi#52 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_xlo#48 ← phi( main::@3/(byte[]) plot_xlo#17 ) - (byte[]) plot_xhi#48 ← phi( main::@3/(byte[]) plot_xhi#17 ) (byte) lines_cnt#5 ← phi( main::@3/(byte) lines_cnt#7 ) (byte[]) lines_y#5 ← phi( main::@3/(byte[]) lines_y#7 ) (byte[]) lines_x#5 ← phi( main::@3/(byte[]) lines_x#7 ) to:main::@1 main::@1: scope:[main] from main::@4 main::@5 - (byte[]) plot_bit#47 ← phi( main::@4/(byte[]) plot_bit#48 main::@5/(byte[]) plot_bit#49 ) - (byte[]) plot_ylo#51 ← phi( main::@4/(byte[]) plot_ylo#52 main::@5/(byte[]) plot_ylo#53 ) - (byte[]) plot_yhi#51 ← phi( main::@4/(byte[]) plot_yhi#52 main::@5/(byte[]) plot_yhi#53 ) - (byte[]) plot_xlo#47 ← phi( main::@4/(byte[]) plot_xlo#48 main::@5/(byte[]) plot_xlo#49 ) - (byte[]) plot_xhi#47 ← phi( main::@4/(byte[]) plot_xhi#48 main::@5/(byte[]) plot_xhi#49 ) (byte) lines_cnt#4 ← phi( main::@4/(byte) lines_cnt#5 main::@5/(byte) lines_cnt#6 ) (byte[]) lines_y#4 ← phi( main::@4/(byte[]) lines_y#5 main::@5/(byte[]) lines_y#6 ) (byte[]) lines_x#4 ← phi( main::@4/(byte[]) lines_x#5 main::@5/(byte[]) lines_x#6 ) call lines param-assignment to:main::@5 main::@5: scope:[main] from main::@1 - (byte[]) plot_bit#49 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#53 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#53 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#49 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#49 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#6 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#6 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#6 ← phi( main::@1/(byte[]) lines_x#4 ) @@ -4876,22 +4060,12 @@ main::@return: scope:[main] from main::@5 return to:@return lines: scope:[lines] from main::@1 - (byte[]) plot_bit#45 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#49 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#49 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#45 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#45 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#3 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#2 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#2 ← phi( main::@1/(byte[]) lines_x#4 ) (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 to:lines::@1 lines::@1: scope:[lines] from lines lines::@3 - (byte[]) plot_bit#44 ← phi( lines/(byte[]) plot_bit#45 lines::@3/(byte[]) plot_bit#46 ) - (byte[]) plot_ylo#48 ← phi( lines/(byte[]) plot_ylo#49 lines::@3/(byte[]) plot_ylo#50 ) - (byte[]) plot_yhi#48 ← phi( lines/(byte[]) plot_yhi#49 lines::@3/(byte[]) plot_yhi#50 ) - (byte[]) plot_xlo#44 ← phi( lines/(byte[]) plot_xlo#45 lines::@3/(byte[]) plot_xlo#46 ) - (byte[]) plot_xhi#44 ← phi( lines/(byte[]) plot_xhi#45 lines::@3/(byte[]) plot_xhi#46 ) (byte) lines_cnt#2 ← phi( lines/(byte) lines_cnt#3 lines::@3/(byte) lines_cnt#1 ) (byte[]) lines_y#1 ← phi( lines/(byte[]) lines_y#2 lines::@3/(byte[]) lines_y#3 ) (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) @@ -4909,11 +4083,6 @@ lines::@1: scope:[lines] from lines lines::@3 call line param-assignment to:lines::@3 lines::@3: scope:[lines] from lines::@1 - (byte[]) plot_bit#46 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#50 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#50 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#46 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#46 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte[]) lines_y#3 ← phi( lines::@1/(byte[]) lines_y#1 ) (byte[]) lines_x#3 ← phi( lines::@1/(byte[]) lines_x#1 ) (byte) lines_cnt#1 ← phi( lines::@1/(byte) lines_cnt#2 ) @@ -4926,11 +4095,6 @@ lines::@return: scope:[lines] from lines::@3 return to:@return line: scope:[line] from lines::@1 - (byte[]) plot_bit#43 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#46 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#46 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#43 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#43 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte) line::y1#13 ← phi( lines::@1/(byte) line::y1#0 ) (byte) line::y0#13 ← phi( lines::@1/(byte) line::y0#0 ) (byte) line::x1#1 ← phi( lines::@1/(byte) line::x1#0 ) @@ -4940,11 +4104,6 @@ line: scope:[line] from lines::@1 if((boolean~) line::$1) goto line::@1 to:line::@15 line::@1: scope:[line] from line - (byte[]) plot_bit#42 ← phi( line/(byte[]) plot_bit#43 ) - (byte[]) plot_ylo#43 ← phi( line/(byte[]) plot_ylo#46 ) - (byte[]) plot_yhi#43 ← phi( line/(byte[]) plot_yhi#46 ) - (byte[]) plot_xlo#42 ← phi( line/(byte[]) plot_xlo#43 ) - (byte[]) plot_xhi#42 ← phi( line/(byte[]) plot_xhi#43 ) (byte) line::y1#1 ← phi( line/(byte) line::y1#13 ) (byte) line::y0#1 ← phi( line/(byte) line::y0#13 ) (byte) line::x1#2 ← phi( line/(byte) line::x1#1 ) @@ -4956,11 +4115,6 @@ line::@1: scope:[line] from line if((boolean~) line::$17) goto line::@9 to:line::@23 line::@15: scope:[line] from line - (byte[]) plot_bit#41 ← phi( line/(byte[]) plot_bit#43 ) - (byte[]) plot_ylo#42 ← phi( line/(byte[]) plot_ylo#46 ) - (byte[]) plot_yhi#42 ← phi( line/(byte[]) plot_yhi#46 ) - (byte[]) plot_xlo#41 ← phi( line/(byte[]) plot_xlo#43 ) - (byte[]) plot_xhi#41 ← phi( line/(byte[]) plot_xhi#43 ) (byte) line::y1#2 ← phi( line/(byte) line::y1#13 ) (byte) line::y0#2 ← phi( line/(byte) line::y0#13 ) (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) @@ -4972,11 +4126,6 @@ line::@15: scope:[line] from line if((boolean~) line::$4) goto line::@2 to:line::@16 line::@2: scope:[line] from line::@15 - (byte[]) plot_bit#38 ← phi( line::@15/(byte[]) plot_bit#41 ) - (byte[]) plot_ylo#38 ← phi( line::@15/(byte[]) plot_ylo#42 ) - (byte[]) plot_yhi#38 ← phi( line::@15/(byte[]) plot_yhi#42 ) - (byte[]) plot_xlo#38 ← phi( line::@15/(byte[]) plot_xlo#41 ) - (byte[]) plot_xhi#38 ← phi( line::@15/(byte[]) plot_xhi#41 ) (byte) line::x0#11 ← phi( line::@15/(byte) line::x0#3 ) (byte) line::x1#11 ← phi( line::@15/(byte) line::x1#3 ) (byte) line::xd#2 ← phi( line::@15/(byte) line::xd#1 ) @@ -4989,11 +4138,6 @@ line::@2: scope:[line] from line::@15 if((boolean~) line::$12) goto line::@6 to:line::@20 line::@16: scope:[line] from line::@15 - (byte[]) plot_bit#37 ← phi( line::@15/(byte[]) plot_bit#41 ) - (byte[]) plot_ylo#37 ← phi( line::@15/(byte[]) plot_ylo#42 ) - (byte[]) plot_yhi#37 ← phi( line::@15/(byte[]) plot_yhi#42 ) - (byte[]) plot_xlo#37 ← phi( line::@15/(byte[]) plot_xlo#41 ) - (byte[]) plot_xhi#37 ← phi( line::@15/(byte[]) plot_xhi#41 ) (byte) line::x1#10 ← phi( line::@15/(byte) line::x1#3 ) (byte) line::x0#10 ← phi( line::@15/(byte) line::x0#3 ) (byte) line::xd#3 ← phi( line::@15/(byte) line::xd#1 ) @@ -5006,11 +4150,6 @@ line::@16: scope:[line] from line::@15 if((boolean~) line::$7) goto line::@3 to:line::@17 line::@3: scope:[line] from line::@16 - (byte[]) plot_bit#29 ← phi( line::@16/(byte[]) plot_bit#37 ) - (byte[]) plot_ylo#28 ← phi( line::@16/(byte[]) plot_ylo#37 ) - (byte[]) plot_yhi#28 ← phi( line::@16/(byte[]) plot_yhi#37 ) - (byte[]) plot_xlo#29 ← phi( line::@16/(byte[]) plot_xlo#37 ) - (byte[]) plot_xhi#29 ← phi( line::@16/(byte[]) plot_xhi#37 ) (byte) line::xd#4 ← phi( line::@16/(byte) line::xd#3 ) (byte) line::yd#4 ← phi( line::@16/(byte) line::yd#1 ) (byte) line::y1#5 ← phi( line::@16/(byte) line::y1#4 ) @@ -5024,11 +4163,6 @@ line::@3: scope:[line] from line::@16 call line_ydxi param-assignment to:line::@return line::@17: scope:[line] from line::@16 - (byte[]) plot_bit#20 ← phi( line::@16/(byte[]) plot_bit#37 ) - (byte[]) plot_ylo#19 ← phi( line::@16/(byte[]) plot_ylo#37 ) - (byte[]) plot_yhi#19 ← phi( line::@16/(byte[]) plot_yhi#37 ) - (byte[]) plot_xlo#20 ← phi( line::@16/(byte[]) plot_xlo#37 ) - (byte[]) plot_xhi#20 ← phi( line::@16/(byte[]) plot_xhi#37 ) (byte) line::yd#5 ← phi( line::@16/(byte) line::yd#1 ) (byte) line::xd#5 ← phi( line::@16/(byte) line::xd#3 ) (byte) line::x1#4 ← phi( line::@16/(byte) line::x1#10 ) @@ -5042,11 +4176,6 @@ line::@17: scope:[line] from line::@16 call line_xdyi param-assignment to:line::@return line::@6: scope:[line] from line::@2 - (byte[]) plot_bit#33 ← phi( line::@2/(byte[]) plot_bit#38 ) - (byte[]) plot_ylo#32 ← phi( line::@2/(byte[]) plot_ylo#38 ) - (byte[]) plot_yhi#32 ← phi( line::@2/(byte[]) plot_yhi#38 ) - (byte[]) plot_xlo#33 ← phi( line::@2/(byte[]) plot_xlo#38 ) - (byte[]) plot_xhi#33 ← phi( line::@2/(byte[]) plot_xhi#38 ) (byte) line::xd#6 ← phi( line::@2/(byte) line::xd#2 ) (byte) line::yd#6 ← phi( line::@2/(byte) line::yd#0 ) (byte) line::y0#7 ← phi( line::@2/(byte) line::y0#3 ) @@ -5060,11 +4189,6 @@ line::@6: scope:[line] from line::@2 call line_ydxd param-assignment to:line::@return line::@20: scope:[line] from line::@2 - (byte[]) plot_bit#24 ← phi( line::@2/(byte[]) plot_bit#38 ) - (byte[]) plot_ylo#23 ← phi( line::@2/(byte[]) plot_ylo#38 ) - (byte[]) plot_yhi#23 ← phi( line::@2/(byte[]) plot_yhi#38 ) - (byte[]) plot_xlo#24 ← phi( line::@2/(byte[]) plot_xlo#38 ) - (byte[]) plot_xhi#24 ← phi( line::@2/(byte[]) plot_xhi#38 ) (byte) line::yd#7 ← phi( line::@2/(byte) line::yd#0 ) (byte) line::xd#7 ← phi( line::@2/(byte) line::xd#2 ) (byte) line::x1#6 ← phi( line::@2/(byte) line::x1#11 ) @@ -5078,11 +4202,6 @@ line::@20: scope:[line] from line::@2 call line_xdyd param-assignment to:line::@return line::@9: scope:[line] from line::@1 - (byte[]) plot_bit#40 ← phi( line::@1/(byte[]) plot_bit#42 ) - (byte[]) plot_ylo#40 ← phi( line::@1/(byte[]) plot_ylo#43 ) - (byte[]) plot_yhi#40 ← phi( line::@1/(byte[]) plot_yhi#43 ) - (byte[]) plot_xlo#40 ← phi( line::@1/(byte[]) plot_xlo#42 ) - (byte[]) plot_xhi#40 ← phi( line::@1/(byte[]) plot_xhi#42 ) (byte) line::x0#13 ← phi( line::@1/(byte) line::x0#2 ) (byte) line::x1#13 ← phi( line::@1/(byte) line::x1#2 ) (byte) line::xd#8 ← phi( line::@1/(byte) line::xd#0 ) @@ -5095,11 +4214,6 @@ line::@9: scope:[line] from line::@1 if((boolean~) line::$25) goto line::@13 to:line::@27 line::@23: scope:[line] from line::@1 - (byte[]) plot_bit#39 ← phi( line::@1/(byte[]) plot_bit#42 ) - (byte[]) plot_ylo#39 ← phi( line::@1/(byte[]) plot_ylo#43 ) - (byte[]) plot_yhi#39 ← phi( line::@1/(byte[]) plot_yhi#43 ) - (byte[]) plot_xlo#39 ← phi( line::@1/(byte[]) plot_xlo#42 ) - (byte[]) plot_xhi#39 ← phi( line::@1/(byte[]) plot_xhi#42 ) (byte) line::x1#12 ← phi( line::@1/(byte) line::x1#2 ) (byte) line::x0#12 ← phi( line::@1/(byte) line::x0#2 ) (byte) line::xd#9 ← phi( line::@1/(byte) line::xd#0 ) @@ -5112,11 +4226,6 @@ line::@23: scope:[line] from line::@1 if((boolean~) line::$20) goto line::@10 to:line::@24 line::@10: scope:[line] from line::@23 - (byte[]) plot_bit#32 ← phi( line::@23/(byte[]) plot_bit#39 ) - (byte[]) plot_ylo#31 ← phi( line::@23/(byte[]) plot_ylo#39 ) - (byte[]) plot_yhi#31 ← phi( line::@23/(byte[]) plot_yhi#39 ) - (byte[]) plot_xlo#32 ← phi( line::@23/(byte[]) plot_xlo#39 ) - (byte[]) plot_xhi#32 ← phi( line::@23/(byte[]) plot_xhi#39 ) (byte) line::xd#10 ← phi( line::@23/(byte) line::xd#9 ) (byte) line::yd#8 ← phi( line::@23/(byte) line::yd#3 ) (byte) line::y1#9 ← phi( line::@23/(byte) line::y1#8 ) @@ -5130,11 +4239,6 @@ line::@10: scope:[line] from line::@23 call line_ydxd param-assignment to:line::@return line::@24: scope:[line] from line::@23 - (byte[]) plot_bit#25 ← phi( line::@23/(byte[]) plot_bit#39 ) - (byte[]) plot_ylo#24 ← phi( line::@23/(byte[]) plot_ylo#39 ) - (byte[]) plot_yhi#24 ← phi( line::@23/(byte[]) plot_yhi#39 ) - (byte[]) plot_xlo#25 ← phi( line::@23/(byte[]) plot_xlo#39 ) - (byte[]) plot_xhi#25 ← phi( line::@23/(byte[]) plot_xhi#39 ) (byte) line::yd#9 ← phi( line::@23/(byte) line::yd#3 ) (byte) line::xd#11 ← phi( line::@23/(byte) line::xd#9 ) (byte) line::x0#8 ← phi( line::@23/(byte) line::x0#12 ) @@ -5148,11 +4252,6 @@ line::@24: scope:[line] from line::@23 call line_xdyd param-assignment to:line::@return line::@13: scope:[line] from line::@9 - (byte[]) plot_bit#28 ← phi( line::@9/(byte[]) plot_bit#40 ) - (byte[]) plot_ylo#27 ← phi( line::@9/(byte[]) plot_ylo#40 ) - (byte[]) plot_yhi#27 ← phi( line::@9/(byte[]) plot_yhi#40 ) - (byte[]) plot_xlo#28 ← phi( line::@9/(byte[]) plot_xlo#40 ) - (byte[]) plot_xhi#28 ← phi( line::@9/(byte[]) plot_xhi#40 ) (byte) line::xd#12 ← phi( line::@9/(byte) line::xd#8 ) (byte) line::yd#10 ← phi( line::@9/(byte) line::yd#2 ) (byte) line::y0#12 ← phi( line::@9/(byte) line::y0#9 ) @@ -5166,11 +4265,6 @@ line::@13: scope:[line] from line::@9 call line_ydxi param-assignment to:line::@return line::@27: scope:[line] from line::@9 - (byte[]) plot_bit#21 ← phi( line::@9/(byte[]) plot_bit#40 ) - (byte[]) plot_ylo#20 ← phi( line::@9/(byte[]) plot_ylo#40 ) - (byte[]) plot_yhi#20 ← phi( line::@9/(byte[]) plot_yhi#40 ) - (byte[]) plot_xlo#21 ← phi( line::@9/(byte[]) plot_xlo#40 ) - (byte[]) plot_xhi#21 ← phi( line::@9/(byte[]) plot_xhi#40 ) (byte) line::yd#11 ← phi( line::@9/(byte) line::yd#2 ) (byte) line::xd#13 ← phi( line::@9/(byte) line::xd#8 ) (byte) line::x0#9 ← phi( line::@9/(byte) line::x0#13 ) @@ -5188,11 +4282,6 @@ line::@return: scope:[line] from line::@10 line::@13 line::@17 line::@20 line:: to:@return line_xdyi: scope:[line_xdyi] from line::@17 line::@27 (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) - (byte[]) plot_bit#9 ← phi( line::@17/(byte[]) plot_bit#20 line::@27/(byte[]) plot_bit#21 ) - (byte[]) plot_ylo#9 ← phi( line::@17/(byte[]) plot_ylo#19 line::@27/(byte[]) plot_ylo#20 ) - (byte[]) plot_yhi#9 ← phi( line::@17/(byte[]) plot_yhi#19 line::@27/(byte[]) plot_yhi#20 ) - (byte[]) plot_xlo#9 ← phi( line::@17/(byte[]) plot_xlo#20 line::@27/(byte[]) plot_xlo#21 ) - (byte[]) plot_xhi#9 ← phi( line::@17/(byte[]) plot_xhi#20 line::@27/(byte[]) plot_xhi#21 ) (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) @@ -5202,11 +4291,6 @@ line_xdyi: scope:[line_xdyi] from line::@17 line::@27 to:line_xdyi::@1 line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 (byte) line_xdyi::x1#5 ← phi( line_xdyi/(byte) line_xdyi::x1#6 line_xdyi::@2/(byte) line_xdyi::x1#2 ) - (byte[]) plot_bit#4 ← phi( line_xdyi/(byte[]) plot_bit#9 line_xdyi::@2/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#4 ← phi( line_xdyi/(byte[]) plot_ylo#9 line_xdyi::@2/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#4 ← phi( line_xdyi/(byte[]) plot_yhi#9 line_xdyi::@2/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#4 ← phi( line_xdyi/(byte[]) plot_xlo#9 line_xdyi::@2/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#4 ← phi( line_xdyi/(byte[]) plot_xhi#9 line_xdyi::@2/(byte[]) plot_xhi#10 ) (byte) line_xdyi::xd#4 ← phi( line_xdyi/(byte) line_xdyi::xd#5 line_xdyi::@2/(byte) line_xdyi::xd#6 ) (byte) line_xdyi::yd#4 ← phi( line_xdyi/(byte) line_xdyi::yd#2 line_xdyi::@2/(byte) line_xdyi::yd#5 ) (byte) line_xdyi::e#5 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) @@ -5217,11 +4301,6 @@ line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 call plot param-assignment to:line_xdyi::@5 line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 - (byte[]) plot_bit#23 ← phi( line_xdyi::@1/(byte[]) plot_bit#4 ) - (byte[]) plot_ylo#22 ← phi( line_xdyi::@1/(byte[]) plot_ylo#4 ) - (byte[]) plot_yhi#22 ← phi( line_xdyi::@1/(byte[]) plot_yhi#4 ) - (byte[]) plot_xlo#23 ← phi( line_xdyi::@1/(byte[]) plot_xlo#4 ) - (byte[]) plot_xhi#23 ← phi( line_xdyi::@1/(byte[]) plot_xhi#4 ) (byte) line_xdyi::y#7 ← phi( line_xdyi::@1/(byte) line_xdyi::y#3 ) (byte) line_xdyi::x1#4 ← phi( line_xdyi::@1/(byte) line_xdyi::x1#5 ) (byte) line_xdyi::xd#2 ← phi( line_xdyi::@1/(byte) line_xdyi::xd#4 ) @@ -5237,11 +4316,6 @@ line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 if((boolean~) line_xdyi::$5) goto line_xdyi::@2 to:line_xdyi::@3 line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 - (byte[]) plot_bit#10 ← phi( line_xdyi::@3/(byte[]) plot_bit#22 line_xdyi::@5/(byte[]) plot_bit#23 ) - (byte[]) plot_ylo#10 ← phi( line_xdyi::@3/(byte[]) plot_ylo#21 line_xdyi::@5/(byte[]) plot_ylo#22 ) - (byte[]) plot_yhi#10 ← phi( line_xdyi::@3/(byte[]) plot_yhi#21 line_xdyi::@5/(byte[]) plot_yhi#22 ) - (byte[]) plot_xlo#10 ← phi( line_xdyi::@3/(byte[]) plot_xlo#22 line_xdyi::@5/(byte[]) plot_xlo#23 ) - (byte[]) plot_xhi#10 ← phi( line_xdyi::@3/(byte[]) plot_xhi#22 line_xdyi::@5/(byte[]) plot_xhi#23 ) (byte) line_xdyi::xd#6 ← phi( line_xdyi::@3/(byte) line_xdyi::xd#3 line_xdyi::@5/(byte) line_xdyi::xd#2 ) (byte) line_xdyi::yd#5 ← phi( line_xdyi::@3/(byte) line_xdyi::yd#6 line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) @@ -5253,11 +4327,6 @@ line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 if((boolean~) line_xdyi::$9) goto line_xdyi::@1 to:line_xdyi::@return line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5 - (byte[]) plot_bit#22 ← phi( line_xdyi::@5/(byte[]) plot_bit#23 ) - (byte[]) plot_ylo#21 ← phi( line_xdyi::@5/(byte[]) plot_ylo#22 ) - (byte[]) plot_yhi#21 ← phi( line_xdyi::@5/(byte[]) plot_yhi#22 ) - (byte[]) plot_xlo#22 ← phi( line_xdyi::@5/(byte[]) plot_xlo#23 ) - (byte[]) plot_xhi#22 ← phi( line_xdyi::@5/(byte[]) plot_xhi#23 ) (byte) line_xdyi::yd#6 ← phi( line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::x#7 ← phi( line_xdyi::@5/(byte) line_xdyi::x#2 ) (byte) line_xdyi::x1#3 ← phi( line_xdyi::@5/(byte) line_xdyi::x1#4 ) @@ -5274,11 +4343,6 @@ line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 to:@return line_xdyd: scope:[line_xdyd] from line::@20 line::@24 (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) - (byte[]) plot_bit#11 ← phi( line::@20/(byte[]) plot_bit#24 line::@24/(byte[]) plot_bit#25 ) - (byte[]) plot_ylo#11 ← phi( line::@20/(byte[]) plot_ylo#23 line::@24/(byte[]) plot_ylo#24 ) - (byte[]) plot_yhi#11 ← phi( line::@20/(byte[]) plot_yhi#23 line::@24/(byte[]) plot_yhi#24 ) - (byte[]) plot_xlo#11 ← phi( line::@20/(byte[]) plot_xlo#24 line::@24/(byte[]) plot_xlo#25 ) - (byte[]) plot_xhi#11 ← phi( line::@20/(byte[]) plot_xhi#24 line::@24/(byte[]) plot_xhi#25 ) (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) @@ -5288,11 +4352,6 @@ line_xdyd: scope:[line_xdyd] from line::@20 line::@24 to:line_xdyd::@1 line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 (byte) line_xdyd::x1#5 ← phi( line_xdyd/(byte) line_xdyd::x1#6 line_xdyd::@2/(byte) line_xdyd::x1#2 ) - (byte[]) plot_bit#3 ← phi( line_xdyd/(byte[]) plot_bit#11 line_xdyd::@2/(byte[]) plot_bit#12 ) - (byte[]) plot_ylo#3 ← phi( line_xdyd/(byte[]) plot_ylo#11 line_xdyd::@2/(byte[]) plot_ylo#12 ) - (byte[]) plot_yhi#3 ← phi( line_xdyd/(byte[]) plot_yhi#11 line_xdyd::@2/(byte[]) plot_yhi#12 ) - (byte[]) plot_xlo#3 ← phi( line_xdyd/(byte[]) plot_xlo#11 line_xdyd::@2/(byte[]) plot_xlo#12 ) - (byte[]) plot_xhi#3 ← phi( line_xdyd/(byte[]) plot_xhi#11 line_xdyd::@2/(byte[]) plot_xhi#12 ) (byte) line_xdyd::xd#4 ← phi( line_xdyd/(byte) line_xdyd::xd#5 line_xdyd::@2/(byte) line_xdyd::xd#6 ) (byte) line_xdyd::yd#4 ← phi( line_xdyd/(byte) line_xdyd::yd#2 line_xdyd::@2/(byte) line_xdyd::yd#5 ) (byte) line_xdyd::e#5 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) @@ -5303,11 +4362,6 @@ line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 call plot param-assignment to:line_xdyd::@5 line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 - (byte[]) plot_bit#27 ← phi( line_xdyd::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#26 ← phi( line_xdyd::@1/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#26 ← phi( line_xdyd::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#27 ← phi( line_xdyd::@1/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#27 ← phi( line_xdyd::@1/(byte[]) plot_xhi#3 ) (byte) line_xdyd::y#7 ← phi( line_xdyd::@1/(byte) line_xdyd::y#3 ) (byte) line_xdyd::x1#4 ← phi( line_xdyd::@1/(byte) line_xdyd::x1#5 ) (byte) line_xdyd::xd#2 ← phi( line_xdyd::@1/(byte) line_xdyd::xd#4 ) @@ -5323,11 +4377,6 @@ line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 if((boolean~) line_xdyd::$5) goto line_xdyd::@2 to:line_xdyd::@3 line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 - (byte[]) plot_bit#12 ← phi( line_xdyd::@3/(byte[]) plot_bit#26 line_xdyd::@5/(byte[]) plot_bit#27 ) - (byte[]) plot_ylo#12 ← phi( line_xdyd::@3/(byte[]) plot_ylo#25 line_xdyd::@5/(byte[]) plot_ylo#26 ) - (byte[]) plot_yhi#12 ← phi( line_xdyd::@3/(byte[]) plot_yhi#25 line_xdyd::@5/(byte[]) plot_yhi#26 ) - (byte[]) plot_xlo#12 ← phi( line_xdyd::@3/(byte[]) plot_xlo#26 line_xdyd::@5/(byte[]) plot_xlo#27 ) - (byte[]) plot_xhi#12 ← phi( line_xdyd::@3/(byte[]) plot_xhi#26 line_xdyd::@5/(byte[]) plot_xhi#27 ) (byte) line_xdyd::xd#6 ← phi( line_xdyd::@3/(byte) line_xdyd::xd#3 line_xdyd::@5/(byte) line_xdyd::xd#2 ) (byte) line_xdyd::yd#5 ← phi( line_xdyd::@3/(byte) line_xdyd::yd#6 line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) @@ -5339,11 +4388,6 @@ line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 if((boolean~) line_xdyd::$9) goto line_xdyd::@1 to:line_xdyd::@return line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5 - (byte[]) plot_bit#26 ← phi( line_xdyd::@5/(byte[]) plot_bit#27 ) - (byte[]) plot_ylo#25 ← phi( line_xdyd::@5/(byte[]) plot_ylo#26 ) - (byte[]) plot_yhi#25 ← phi( line_xdyd::@5/(byte[]) plot_yhi#26 ) - (byte[]) plot_xlo#26 ← phi( line_xdyd::@5/(byte[]) plot_xlo#27 ) - (byte[]) plot_xhi#26 ← phi( line_xdyd::@5/(byte[]) plot_xhi#27 ) (byte) line_xdyd::yd#6 ← phi( line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::x#7 ← phi( line_xdyd::@5/(byte) line_xdyd::x#2 ) (byte) line_xdyd::x1#3 ← phi( line_xdyd::@5/(byte) line_xdyd::x1#4 ) @@ -5360,11 +4404,6 @@ line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 to:@return line_ydxi: scope:[line_ydxi] from line::@13 line::@3 (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) - (byte[]) plot_bit#13 ← phi( line::@13/(byte[]) plot_bit#28 line::@3/(byte[]) plot_bit#29 ) - (byte[]) plot_ylo#13 ← phi( line::@13/(byte[]) plot_ylo#27 line::@3/(byte[]) plot_ylo#28 ) - (byte[]) plot_yhi#13 ← phi( line::@13/(byte[]) plot_yhi#27 line::@3/(byte[]) plot_yhi#28 ) - (byte[]) plot_xlo#13 ← phi( line::@13/(byte[]) plot_xlo#28 line::@3/(byte[]) plot_xlo#29 ) - (byte[]) plot_xhi#13 ← phi( line::@13/(byte[]) plot_xhi#28 line::@3/(byte[]) plot_xhi#29 ) (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) @@ -5374,11 +4413,6 @@ line_ydxi: scope:[line_ydxi] from line::@13 line::@3 to:line_ydxi::@1 line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 (byte) line_ydxi::y1#5 ← phi( line_ydxi/(byte) line_ydxi::y1#6 line_ydxi::@2/(byte) line_ydxi::y1#2 ) - (byte[]) plot_bit#6 ← phi( line_ydxi/(byte[]) plot_bit#13 line_ydxi::@2/(byte[]) plot_bit#14 ) - (byte[]) plot_ylo#6 ← phi( line_ydxi/(byte[]) plot_ylo#13 line_ydxi::@2/(byte[]) plot_ylo#14 ) - (byte[]) plot_yhi#6 ← phi( line_ydxi/(byte[]) plot_yhi#13 line_ydxi::@2/(byte[]) plot_yhi#14 ) - (byte[]) plot_xlo#6 ← phi( line_ydxi/(byte[]) plot_xlo#13 line_ydxi::@2/(byte[]) plot_xlo#14 ) - (byte[]) plot_xhi#6 ← phi( line_ydxi/(byte[]) plot_xhi#13 line_ydxi::@2/(byte[]) plot_xhi#14 ) (byte) line_ydxi::yd#4 ← phi( line_ydxi/(byte) line_ydxi::yd#5 line_ydxi::@2/(byte) line_ydxi::yd#6 ) (byte) line_ydxi::xd#4 ← phi( line_ydxi/(byte) line_ydxi::xd#2 line_ydxi::@2/(byte) line_ydxi::xd#5 ) (byte) line_ydxi::e#5 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) @@ -5389,11 +4423,6 @@ line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 call plot param-assignment to:line_ydxi::@5 line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 - (byte[]) plot_bit#31 ← phi( line_ydxi::@1/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#30 ← phi( line_ydxi::@1/(byte[]) plot_ylo#6 ) - (byte[]) plot_yhi#30 ← phi( line_ydxi::@1/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#31 ← phi( line_ydxi::@1/(byte[]) plot_xlo#6 ) - (byte[]) plot_xhi#31 ← phi( line_ydxi::@1/(byte[]) plot_xhi#6 ) (byte) line_ydxi::x#7 ← phi( line_ydxi::@1/(byte) line_ydxi::x#3 ) (byte) line_ydxi::y1#4 ← phi( line_ydxi::@1/(byte) line_ydxi::y1#5 ) (byte) line_ydxi::yd#2 ← phi( line_ydxi::@1/(byte) line_ydxi::yd#4 ) @@ -5409,11 +4438,6 @@ line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 if((boolean~) line_ydxi::$5) goto line_ydxi::@2 to:line_ydxi::@3 line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 - (byte[]) plot_bit#14 ← phi( line_ydxi::@3/(byte[]) plot_bit#30 line_ydxi::@5/(byte[]) plot_bit#31 ) - (byte[]) plot_ylo#14 ← phi( line_ydxi::@3/(byte[]) plot_ylo#29 line_ydxi::@5/(byte[]) plot_ylo#30 ) - (byte[]) plot_yhi#14 ← phi( line_ydxi::@3/(byte[]) plot_yhi#29 line_ydxi::@5/(byte[]) plot_yhi#30 ) - (byte[]) plot_xlo#14 ← phi( line_ydxi::@3/(byte[]) plot_xlo#30 line_ydxi::@5/(byte[]) plot_xlo#31 ) - (byte[]) plot_xhi#14 ← phi( line_ydxi::@3/(byte[]) plot_xhi#30 line_ydxi::@5/(byte[]) plot_xhi#31 ) (byte) line_ydxi::yd#6 ← phi( line_ydxi::@3/(byte) line_ydxi::yd#3 line_ydxi::@5/(byte) line_ydxi::yd#2 ) (byte) line_ydxi::xd#5 ← phi( line_ydxi::@3/(byte) line_ydxi::xd#6 line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) @@ -5425,11 +4449,6 @@ line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 if((boolean~) line_ydxi::$9) goto line_ydxi::@1 to:line_ydxi::@return line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5 - (byte[]) plot_bit#30 ← phi( line_ydxi::@5/(byte[]) plot_bit#31 ) - (byte[]) plot_ylo#29 ← phi( line_ydxi::@5/(byte[]) plot_ylo#30 ) - (byte[]) plot_yhi#29 ← phi( line_ydxi::@5/(byte[]) plot_yhi#30 ) - (byte[]) plot_xlo#30 ← phi( line_ydxi::@5/(byte[]) plot_xlo#31 ) - (byte[]) plot_xhi#30 ← phi( line_ydxi::@5/(byte[]) plot_xhi#31 ) (byte) line_ydxi::xd#6 ← phi( line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::y#7 ← phi( line_ydxi::@5/(byte) line_ydxi::y#2 ) (byte) line_ydxi::y1#3 ← phi( line_ydxi::@5/(byte) line_ydxi::y1#4 ) @@ -5446,11 +4465,6 @@ line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 to:@return line_ydxd: scope:[line_ydxd] from line::@10 line::@6 (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) - (byte[]) plot_bit#15 ← phi( line::@10/(byte[]) plot_bit#32 line::@6/(byte[]) plot_bit#33 ) - (byte[]) plot_ylo#15 ← phi( line::@10/(byte[]) plot_ylo#31 line::@6/(byte[]) plot_ylo#32 ) - (byte[]) plot_yhi#15 ← phi( line::@10/(byte[]) plot_yhi#31 line::@6/(byte[]) plot_yhi#32 ) - (byte[]) plot_xlo#15 ← phi( line::@10/(byte[]) plot_xlo#32 line::@6/(byte[]) plot_xlo#33 ) - (byte[]) plot_xhi#15 ← phi( line::@10/(byte[]) plot_xhi#32 line::@6/(byte[]) plot_xhi#33 ) (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) @@ -5460,11 +4474,6 @@ line_ydxd: scope:[line_ydxd] from line::@10 line::@6 to:line_ydxd::@1 line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 (byte) line_ydxd::y1#5 ← phi( line_ydxd/(byte) line_ydxd::y1#6 line_ydxd::@2/(byte) line_ydxd::y1#2 ) - (byte[]) plot_bit#5 ← phi( line_ydxd/(byte[]) plot_bit#15 line_ydxd::@2/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#5 ← phi( line_ydxd/(byte[]) plot_ylo#15 line_ydxd::@2/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#5 ← phi( line_ydxd/(byte[]) plot_yhi#15 line_ydxd::@2/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#5 ← phi( line_ydxd/(byte[]) plot_xlo#15 line_ydxd::@2/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#5 ← phi( line_ydxd/(byte[]) plot_xhi#15 line_ydxd::@2/(byte[]) plot_xhi#16 ) (byte) line_ydxd::yd#4 ← phi( line_ydxd/(byte) line_ydxd::yd#5 line_ydxd::@2/(byte) line_ydxd::yd#6 ) (byte) line_ydxd::xd#4 ← phi( line_ydxd/(byte) line_ydxd::xd#2 line_ydxd::@2/(byte) line_ydxd::xd#5 ) (byte) line_ydxd::e#5 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) @@ -5475,11 +4484,6 @@ line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 call plot param-assignment to:line_ydxd::@5 line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 - (byte[]) plot_bit#35 ← phi( line_ydxd::@1/(byte[]) plot_bit#5 ) - (byte[]) plot_ylo#34 ← phi( line_ydxd::@1/(byte[]) plot_ylo#5 ) - (byte[]) plot_yhi#34 ← phi( line_ydxd::@1/(byte[]) plot_yhi#5 ) - (byte[]) plot_xlo#35 ← phi( line_ydxd::@1/(byte[]) plot_xlo#5 ) - (byte[]) plot_xhi#35 ← phi( line_ydxd::@1/(byte[]) plot_xhi#5 ) (byte) line_ydxd::x#7 ← phi( line_ydxd::@1/(byte) line_ydxd::x#3 ) (byte) line_ydxd::y1#4 ← phi( line_ydxd::@1/(byte) line_ydxd::y1#5 ) (byte) line_ydxd::yd#2 ← phi( line_ydxd::@1/(byte) line_ydxd::yd#4 ) @@ -5495,11 +4499,6 @@ line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 if((boolean~) line_ydxd::$5) goto line_ydxd::@2 to:line_ydxd::@3 line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 - (byte[]) plot_bit#16 ← phi( line_ydxd::@3/(byte[]) plot_bit#34 line_ydxd::@5/(byte[]) plot_bit#35 ) - (byte[]) plot_ylo#16 ← phi( line_ydxd::@3/(byte[]) plot_ylo#33 line_ydxd::@5/(byte[]) plot_ylo#34 ) - (byte[]) plot_yhi#16 ← phi( line_ydxd::@3/(byte[]) plot_yhi#33 line_ydxd::@5/(byte[]) plot_yhi#34 ) - (byte[]) plot_xlo#16 ← phi( line_ydxd::@3/(byte[]) plot_xlo#34 line_ydxd::@5/(byte[]) plot_xlo#35 ) - (byte[]) plot_xhi#16 ← phi( line_ydxd::@3/(byte[]) plot_xhi#34 line_ydxd::@5/(byte[]) plot_xhi#35 ) (byte) line_ydxd::yd#6 ← phi( line_ydxd::@3/(byte) line_ydxd::yd#3 line_ydxd::@5/(byte) line_ydxd::yd#2 ) (byte) line_ydxd::xd#5 ← phi( line_ydxd::@3/(byte) line_ydxd::xd#6 line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) @@ -5511,11 +4510,6 @@ line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 if((boolean~) line_ydxd::$9) goto line_ydxd::@1 to:line_ydxd::@return line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5 - (byte[]) plot_bit#34 ← phi( line_ydxd::@5/(byte[]) plot_bit#35 ) - (byte[]) plot_ylo#33 ← phi( line_ydxd::@5/(byte[]) plot_ylo#34 ) - (byte[]) plot_yhi#33 ← phi( line_ydxd::@5/(byte[]) plot_yhi#34 ) - (byte[]) plot_xlo#34 ← phi( line_ydxd::@5/(byte[]) plot_xlo#35 ) - (byte[]) plot_xhi#34 ← phi( line_ydxd::@5/(byte[]) plot_xhi#35 ) (byte) line_ydxd::xd#6 ← phi( line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::y#7 ← phi( line_ydxd::@5/(byte) line_ydxd::y#2 ) (byte) line_ydxd::y1#3 ← phi( line_ydxd::@5/(byte) line_ydxd::y1#4 ) @@ -5531,26 +4525,21 @@ line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 return to:@return plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 - (byte[]) plot_bit#1 ← phi( line_xdyd::@1/(byte[]) plot_bit#3 line_xdyi::@1/(byte[]) plot_bit#4 line_ydxd::@1/(byte[]) plot_bit#5 line_ydxi::@1/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#1 ← phi( line_xdyd::@1/(byte[]) plot_ylo#3 line_xdyi::@1/(byte[]) plot_ylo#4 line_ydxd::@1/(byte[]) plot_ylo#5 line_ydxi::@1/(byte[]) plot_ylo#6 ) (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) - (byte[]) plot_yhi#1 ← phi( line_xdyd::@1/(byte[]) plot_yhi#3 line_xdyi::@1/(byte[]) plot_yhi#4 line_ydxd::@1/(byte[]) plot_yhi#5 line_ydxi::@1/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#1 ← phi( line_xdyd::@1/(byte[]) plot_xlo#3 line_xdyi::@1/(byte[]) plot_xlo#4 line_ydxd::@1/(byte[]) plot_xlo#5 line_ydxi::@1/(byte[]) plot_xlo#6 ) (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) - (byte[]) plot_xhi#1 ← phi( line_xdyd::@1/(byte[]) plot_xhi#3 line_xdyi::@1/(byte[]) plot_xhi#4 line_ydxd::@1/(byte[]) plot_xhi#5 line_ydxi::@1/(byte[]) plot_xhi#6 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#4 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#4 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#4 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#4 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#4 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#4 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#4 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#4 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -5558,29 +4547,17 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@3 - (byte[]) plot_yhi#41 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_ylo#41 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_bit#7 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_xhi#7 ← phi( main::@3/(byte[]) plot_xhi#17 ) - (byte*) BITMAP#6 ← phi( main::@3/(byte*) BITMAP#8 ) - (byte[]) plot_xlo#7 ← phi( main::@3/(byte[]) plot_xlo#17 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#35 ← phi( init_plot_tables/(byte[]) plot_yhi#41 init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#35 ← phi( init_plot_tables/(byte[]) plot_ylo#41 init_plot_tables::@2/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#7 init_plot_tables::@2/(byte[]) plot_bit#8 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#7 init_plot_tables::@2/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#7 init_plot_tables::@2/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (boolean~) init_plot_tables::$3 ← (byte) init_plot_tables::bits#1 == (byte/signed byte/word/signed word) 0 @@ -5588,53 +4565,35 @@ init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_ if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#17 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 init_plot_tables::@5/(byte[]) plot_yhi#36 ) - (byte[]) plot_ylo#17 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 init_plot_tables::@5/(byte[]) plot_ylo#36 ) - (byte[]) plot_bit#8 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#18 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#18 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#9 ) - (byte[]) plot_xlo#8 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#18 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte[]) plot_yhi#36 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 ) - (byte[]) plot_ylo#36 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 ) - (byte[]) plot_bit#18 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 ) - (byte[]) plot_xhi#18 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#9 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#18 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte[]) plot_yhi#8 ← phi( init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#8 ← phi( init_plot_tables::@2/(byte[]) plot_ylo#17 ) (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#7 init_plot_tables::@6/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#7 init_plot_tables::@6/(byte[]) plot_ylo#8 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$11 ← (byte~) init_plot_tables::$10 == (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← ! (boolean~) init_plot_tables::$11 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#7 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#7 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#18 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -5642,8 +4601,6 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p if((boolean~) init_plot_tables::$14) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte[]) plot_yhi#18 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#18 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 ) (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) (byte*~) init_plot_tables::$13 ← (byte*) init_plot_tables::yoffs#3 + (word/signed word) 320 @@ -5654,16 +4611,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#5 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#5 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -5684,16 +4639,10 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 return to:@return @10: scope:[] from @begin - (byte[]) plot_yhi#47 ← phi( @begin/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#47 ← phi( @begin/(byte[]) plot_ylo#0 ) (byte) lines_cnt#9 ← phi( @begin/(byte) lines_cnt#0 ) (byte[]) lines_y#9 ← phi( @begin/(byte[]) lines_y#0 ) (byte[]) lines_x#9 ← phi( @begin/(byte[]) lines_x#0 ) - (byte[]) plot_bit#36 ← phi( @begin/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#36 ← phi( @begin/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#36 ← phi( @begin/(byte[]) plot_xlo#0 ) (byte*) D018#2 ← phi( @begin/(byte*) D018#0 ) - (byte*) BITMAP#5 ← phi( @begin/(byte*) BITMAP#0 ) (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 ) (byte*) D011#2 ← phi( @begin/(byte*) D011#0 ) (byte) RSEL#2 ← phi( @begin/(byte) RSEL#0 ) @@ -5740,16 +4689,10 @@ CONTROL FLOW GRAPH (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@10 main: scope:[main] from @10 - (byte[]) plot_yhi#45 ← phi( @10/(byte[]) plot_yhi#47 ) - (byte[]) plot_ylo#45 ← phi( @10/(byte[]) plot_ylo#47 ) (byte) lines_cnt#8 ← phi( @10/(byte) lines_cnt#9 ) (byte[]) lines_y#8 ← phi( @10/(byte[]) lines_y#9 ) (byte[]) lines_x#8 ← phi( @10/(byte[]) lines_x#9 ) - (byte[]) plot_bit#19 ← phi( @10/(byte[]) plot_bit#36 ) - (byte[]) plot_xhi#19 ← phi( @10/(byte[]) plot_xhi#36 ) - (byte[]) plot_xlo#19 ← phi( @10/(byte[]) plot_xlo#36 ) (byte*) D018#1 ← phi( @10/(byte*) D018#2 ) - (byte*) BITMAP#1 ← phi( @10/(byte*) BITMAP#5 ) (byte*) SCREEN#1 ← phi( @10/(byte*) SCREEN#4 ) (byte*) D011#1 ← phi( @10/(byte*) D011#2 ) (byte) RSEL#1 ← phi( @10/(byte) RSEL#2 ) @@ -5765,7 +4708,7 @@ main: scope:[main] from @10 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -5773,44 +4716,23 @@ main: scope:[main] from @10 call init_screen param-assignment to:main::@3 main::@3: scope:[main] from main - (byte[]) plot_yhi#44 ← phi( main/(byte[]) plot_yhi#45 ) - (byte[]) plot_ylo#44 ← phi( main/(byte[]) plot_ylo#45 ) (byte) lines_cnt#7 ← phi( main/(byte) lines_cnt#8 ) (byte[]) lines_y#7 ← phi( main/(byte[]) lines_y#8 ) (byte[]) lines_x#7 ← phi( main/(byte[]) lines_x#8 ) - (byte[]) plot_bit#17 ← phi( main/(byte[]) plot_bit#19 ) - (byte[]) plot_xhi#17 ← phi( main/(byte[]) plot_xhi#19 ) - (byte*) BITMAP#8 ← phi( main/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#17 ← phi( main/(byte[]) plot_xlo#19 ) call init_plot_tables param-assignment to:main::@4 main::@4: scope:[main] from main::@3 - (byte[]) plot_bit#48 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_ylo#52 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_yhi#52 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_xlo#48 ← phi( main::@3/(byte[]) plot_xlo#17 ) - (byte[]) plot_xhi#48 ← phi( main::@3/(byte[]) plot_xhi#17 ) (byte) lines_cnt#5 ← phi( main::@3/(byte) lines_cnt#7 ) (byte[]) lines_y#5 ← phi( main::@3/(byte[]) lines_y#7 ) (byte[]) lines_x#5 ← phi( main::@3/(byte[]) lines_x#7 ) to:main::@1 main::@1: scope:[main] from main::@4 main::@5 - (byte[]) plot_bit#47 ← phi( main::@4/(byte[]) plot_bit#48 main::@5/(byte[]) plot_bit#49 ) - (byte[]) plot_ylo#51 ← phi( main::@4/(byte[]) plot_ylo#52 main::@5/(byte[]) plot_ylo#53 ) - (byte[]) plot_yhi#51 ← phi( main::@4/(byte[]) plot_yhi#52 main::@5/(byte[]) plot_yhi#53 ) - (byte[]) plot_xlo#47 ← phi( main::@4/(byte[]) plot_xlo#48 main::@5/(byte[]) plot_xlo#49 ) - (byte[]) plot_xhi#47 ← phi( main::@4/(byte[]) plot_xhi#48 main::@5/(byte[]) plot_xhi#49 ) (byte) lines_cnt#4 ← phi( main::@4/(byte) lines_cnt#5 main::@5/(byte) lines_cnt#6 ) (byte[]) lines_y#4 ← phi( main::@4/(byte[]) lines_y#5 main::@5/(byte[]) lines_y#6 ) (byte[]) lines_x#4 ← phi( main::@4/(byte[]) lines_x#5 main::@5/(byte[]) lines_x#6 ) call lines param-assignment to:main::@5 main::@5: scope:[main] from main::@1 - (byte[]) plot_bit#49 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#53 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#53 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#49 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#49 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#6 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#6 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#6 ← phi( main::@1/(byte[]) lines_x#4 ) @@ -5820,22 +4742,12 @@ main::@return: scope:[main] from main::@5 return to:@return lines: scope:[lines] from main::@1 - (byte[]) plot_bit#45 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#49 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#49 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#45 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#45 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#3 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#2 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#2 ← phi( main::@1/(byte[]) lines_x#4 ) (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 to:lines::@1 lines::@1: scope:[lines] from lines lines::@3 - (byte[]) plot_bit#44 ← phi( lines/(byte[]) plot_bit#45 lines::@3/(byte[]) plot_bit#46 ) - (byte[]) plot_ylo#48 ← phi( lines/(byte[]) plot_ylo#49 lines::@3/(byte[]) plot_ylo#50 ) - (byte[]) plot_yhi#48 ← phi( lines/(byte[]) plot_yhi#49 lines::@3/(byte[]) plot_yhi#50 ) - (byte[]) plot_xlo#44 ← phi( lines/(byte[]) plot_xlo#45 lines::@3/(byte[]) plot_xlo#46 ) - (byte[]) plot_xhi#44 ← phi( lines/(byte[]) plot_xhi#45 lines::@3/(byte[]) plot_xhi#46 ) (byte) lines_cnt#2 ← phi( lines/(byte) lines_cnt#3 lines::@3/(byte) lines_cnt#1 ) (byte[]) lines_y#1 ← phi( lines/(byte[]) lines_y#2 lines::@3/(byte[]) lines_y#3 ) (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) @@ -5853,11 +4765,6 @@ lines::@1: scope:[lines] from lines lines::@3 call line param-assignment to:lines::@3 lines::@3: scope:[lines] from lines::@1 - (byte[]) plot_bit#46 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#50 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#50 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#46 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#46 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte[]) lines_y#3 ← phi( lines::@1/(byte[]) lines_y#1 ) (byte[]) lines_x#3 ← phi( lines::@1/(byte[]) lines_x#1 ) (byte) lines_cnt#1 ← phi( lines::@1/(byte) lines_cnt#2 ) @@ -5870,11 +4777,6 @@ lines::@return: scope:[lines] from lines::@3 return to:@return line: scope:[line] from lines::@1 - (byte[]) plot_bit#43 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#46 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#46 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#43 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#43 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte) line::y1#13 ← phi( lines::@1/(byte) line::y1#0 ) (byte) line::y0#13 ← phi( lines::@1/(byte) line::y0#0 ) (byte) line::x1#1 ← phi( lines::@1/(byte) line::x1#0 ) @@ -5883,11 +4785,6 @@ line: scope:[line] from lines::@1 if((boolean~) line::$1) goto line::@1 to:line::@15 line::@1: scope:[line] from line - (byte[]) plot_bit#42 ← phi( line/(byte[]) plot_bit#43 ) - (byte[]) plot_ylo#43 ← phi( line/(byte[]) plot_ylo#46 ) - (byte[]) plot_yhi#43 ← phi( line/(byte[]) plot_yhi#46 ) - (byte[]) plot_xlo#42 ← phi( line/(byte[]) plot_xlo#43 ) - (byte[]) plot_xhi#42 ← phi( line/(byte[]) plot_xhi#43 ) (byte) line::y1#1 ← phi( line/(byte) line::y1#13 ) (byte) line::y0#1 ← phi( line/(byte) line::y0#13 ) (byte) line::x1#2 ← phi( line/(byte) line::x1#1 ) @@ -5898,11 +4795,6 @@ line::@1: scope:[line] from line if((boolean~) line::$17) goto line::@9 to:line::@23 line::@15: scope:[line] from line - (byte[]) plot_bit#41 ← phi( line/(byte[]) plot_bit#43 ) - (byte[]) plot_ylo#42 ← phi( line/(byte[]) plot_ylo#46 ) - (byte[]) plot_yhi#42 ← phi( line/(byte[]) plot_yhi#46 ) - (byte[]) plot_xlo#41 ← phi( line/(byte[]) plot_xlo#43 ) - (byte[]) plot_xhi#41 ← phi( line/(byte[]) plot_xhi#43 ) (byte) line::y1#2 ← phi( line/(byte) line::y1#13 ) (byte) line::y0#2 ← phi( line/(byte) line::y0#13 ) (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) @@ -5913,11 +4805,6 @@ line::@15: scope:[line] from line if((boolean~) line::$4) goto line::@2 to:line::@16 line::@2: scope:[line] from line::@15 - (byte[]) plot_bit#38 ← phi( line::@15/(byte[]) plot_bit#41 ) - (byte[]) plot_ylo#38 ← phi( line::@15/(byte[]) plot_ylo#42 ) - (byte[]) plot_yhi#38 ← phi( line::@15/(byte[]) plot_yhi#42 ) - (byte[]) plot_xlo#38 ← phi( line::@15/(byte[]) plot_xlo#41 ) - (byte[]) plot_xhi#38 ← phi( line::@15/(byte[]) plot_xhi#41 ) (byte) line::x0#11 ← phi( line::@15/(byte) line::x0#3 ) (byte) line::x1#11 ← phi( line::@15/(byte) line::x1#3 ) (byte) line::xd#2 ← phi( line::@15/(byte) line::xd#1 ) @@ -5929,11 +4816,6 @@ line::@2: scope:[line] from line::@15 if((boolean~) line::$12) goto line::@6 to:line::@20 line::@16: scope:[line] from line::@15 - (byte[]) plot_bit#37 ← phi( line::@15/(byte[]) plot_bit#41 ) - (byte[]) plot_ylo#37 ← phi( line::@15/(byte[]) plot_ylo#42 ) - (byte[]) plot_yhi#37 ← phi( line::@15/(byte[]) plot_yhi#42 ) - (byte[]) plot_xlo#37 ← phi( line::@15/(byte[]) plot_xlo#41 ) - (byte[]) plot_xhi#37 ← phi( line::@15/(byte[]) plot_xhi#41 ) (byte) line::x1#10 ← phi( line::@15/(byte) line::x1#3 ) (byte) line::x0#10 ← phi( line::@15/(byte) line::x0#3 ) (byte) line::xd#3 ← phi( line::@15/(byte) line::xd#1 ) @@ -5945,11 +4827,6 @@ line::@16: scope:[line] from line::@15 if((boolean~) line::$7) goto line::@3 to:line::@17 line::@3: scope:[line] from line::@16 - (byte[]) plot_bit#29 ← phi( line::@16/(byte[]) plot_bit#37 ) - (byte[]) plot_ylo#28 ← phi( line::@16/(byte[]) plot_ylo#37 ) - (byte[]) plot_yhi#28 ← phi( line::@16/(byte[]) plot_yhi#37 ) - (byte[]) plot_xlo#29 ← phi( line::@16/(byte[]) plot_xlo#37 ) - (byte[]) plot_xhi#29 ← phi( line::@16/(byte[]) plot_xhi#37 ) (byte) line::xd#4 ← phi( line::@16/(byte) line::xd#3 ) (byte) line::yd#4 ← phi( line::@16/(byte) line::yd#1 ) (byte) line::y1#5 ← phi( line::@16/(byte) line::y1#4 ) @@ -5963,11 +4840,6 @@ line::@3: scope:[line] from line::@16 call line_ydxi param-assignment to:line::@return line::@17: scope:[line] from line::@16 - (byte[]) plot_bit#20 ← phi( line::@16/(byte[]) plot_bit#37 ) - (byte[]) plot_ylo#19 ← phi( line::@16/(byte[]) plot_ylo#37 ) - (byte[]) plot_yhi#19 ← phi( line::@16/(byte[]) plot_yhi#37 ) - (byte[]) plot_xlo#20 ← phi( line::@16/(byte[]) plot_xlo#37 ) - (byte[]) plot_xhi#20 ← phi( line::@16/(byte[]) plot_xhi#37 ) (byte) line::yd#5 ← phi( line::@16/(byte) line::yd#1 ) (byte) line::xd#5 ← phi( line::@16/(byte) line::xd#3 ) (byte) line::x1#4 ← phi( line::@16/(byte) line::x1#10 ) @@ -5981,11 +4853,6 @@ line::@17: scope:[line] from line::@16 call line_xdyi param-assignment to:line::@return line::@6: scope:[line] from line::@2 - (byte[]) plot_bit#33 ← phi( line::@2/(byte[]) plot_bit#38 ) - (byte[]) plot_ylo#32 ← phi( line::@2/(byte[]) plot_ylo#38 ) - (byte[]) plot_yhi#32 ← phi( line::@2/(byte[]) plot_yhi#38 ) - (byte[]) plot_xlo#33 ← phi( line::@2/(byte[]) plot_xlo#38 ) - (byte[]) plot_xhi#33 ← phi( line::@2/(byte[]) plot_xhi#38 ) (byte) line::xd#6 ← phi( line::@2/(byte) line::xd#2 ) (byte) line::yd#6 ← phi( line::@2/(byte) line::yd#0 ) (byte) line::y0#7 ← phi( line::@2/(byte) line::y0#3 ) @@ -5999,11 +4866,6 @@ line::@6: scope:[line] from line::@2 call line_ydxd param-assignment to:line::@return line::@20: scope:[line] from line::@2 - (byte[]) plot_bit#24 ← phi( line::@2/(byte[]) plot_bit#38 ) - (byte[]) plot_ylo#23 ← phi( line::@2/(byte[]) plot_ylo#38 ) - (byte[]) plot_yhi#23 ← phi( line::@2/(byte[]) plot_yhi#38 ) - (byte[]) plot_xlo#24 ← phi( line::@2/(byte[]) plot_xlo#38 ) - (byte[]) plot_xhi#24 ← phi( line::@2/(byte[]) plot_xhi#38 ) (byte) line::yd#7 ← phi( line::@2/(byte) line::yd#0 ) (byte) line::xd#7 ← phi( line::@2/(byte) line::xd#2 ) (byte) line::x1#6 ← phi( line::@2/(byte) line::x1#11 ) @@ -6017,11 +4879,6 @@ line::@20: scope:[line] from line::@2 call line_xdyd param-assignment to:line::@return line::@9: scope:[line] from line::@1 - (byte[]) plot_bit#40 ← phi( line::@1/(byte[]) plot_bit#42 ) - (byte[]) plot_ylo#40 ← phi( line::@1/(byte[]) plot_ylo#43 ) - (byte[]) plot_yhi#40 ← phi( line::@1/(byte[]) plot_yhi#43 ) - (byte[]) plot_xlo#40 ← phi( line::@1/(byte[]) plot_xlo#42 ) - (byte[]) plot_xhi#40 ← phi( line::@1/(byte[]) plot_xhi#42 ) (byte) line::x0#13 ← phi( line::@1/(byte) line::x0#2 ) (byte) line::x1#13 ← phi( line::@1/(byte) line::x1#2 ) (byte) line::xd#8 ← phi( line::@1/(byte) line::xd#0 ) @@ -6033,11 +4890,6 @@ line::@9: scope:[line] from line::@1 if((boolean~) line::$25) goto line::@13 to:line::@27 line::@23: scope:[line] from line::@1 - (byte[]) plot_bit#39 ← phi( line::@1/(byte[]) plot_bit#42 ) - (byte[]) plot_ylo#39 ← phi( line::@1/(byte[]) plot_ylo#43 ) - (byte[]) plot_yhi#39 ← phi( line::@1/(byte[]) plot_yhi#43 ) - (byte[]) plot_xlo#39 ← phi( line::@1/(byte[]) plot_xlo#42 ) - (byte[]) plot_xhi#39 ← phi( line::@1/(byte[]) plot_xhi#42 ) (byte) line::x1#12 ← phi( line::@1/(byte) line::x1#2 ) (byte) line::x0#12 ← phi( line::@1/(byte) line::x0#2 ) (byte) line::xd#9 ← phi( line::@1/(byte) line::xd#0 ) @@ -6049,11 +4901,6 @@ line::@23: scope:[line] from line::@1 if((boolean~) line::$20) goto line::@10 to:line::@24 line::@10: scope:[line] from line::@23 - (byte[]) plot_bit#32 ← phi( line::@23/(byte[]) plot_bit#39 ) - (byte[]) plot_ylo#31 ← phi( line::@23/(byte[]) plot_ylo#39 ) - (byte[]) plot_yhi#31 ← phi( line::@23/(byte[]) plot_yhi#39 ) - (byte[]) plot_xlo#32 ← phi( line::@23/(byte[]) plot_xlo#39 ) - (byte[]) plot_xhi#32 ← phi( line::@23/(byte[]) plot_xhi#39 ) (byte) line::xd#10 ← phi( line::@23/(byte) line::xd#9 ) (byte) line::yd#8 ← phi( line::@23/(byte) line::yd#3 ) (byte) line::y1#9 ← phi( line::@23/(byte) line::y1#8 ) @@ -6067,11 +4914,6 @@ line::@10: scope:[line] from line::@23 call line_ydxd param-assignment to:line::@return line::@24: scope:[line] from line::@23 - (byte[]) plot_bit#25 ← phi( line::@23/(byte[]) plot_bit#39 ) - (byte[]) plot_ylo#24 ← phi( line::@23/(byte[]) plot_ylo#39 ) - (byte[]) plot_yhi#24 ← phi( line::@23/(byte[]) plot_yhi#39 ) - (byte[]) plot_xlo#25 ← phi( line::@23/(byte[]) plot_xlo#39 ) - (byte[]) plot_xhi#25 ← phi( line::@23/(byte[]) plot_xhi#39 ) (byte) line::yd#9 ← phi( line::@23/(byte) line::yd#3 ) (byte) line::xd#11 ← phi( line::@23/(byte) line::xd#9 ) (byte) line::x0#8 ← phi( line::@23/(byte) line::x0#12 ) @@ -6085,11 +4927,6 @@ line::@24: scope:[line] from line::@23 call line_xdyd param-assignment to:line::@return line::@13: scope:[line] from line::@9 - (byte[]) plot_bit#28 ← phi( line::@9/(byte[]) plot_bit#40 ) - (byte[]) plot_ylo#27 ← phi( line::@9/(byte[]) plot_ylo#40 ) - (byte[]) plot_yhi#27 ← phi( line::@9/(byte[]) plot_yhi#40 ) - (byte[]) plot_xlo#28 ← phi( line::@9/(byte[]) plot_xlo#40 ) - (byte[]) plot_xhi#28 ← phi( line::@9/(byte[]) plot_xhi#40 ) (byte) line::xd#12 ← phi( line::@9/(byte) line::xd#8 ) (byte) line::yd#10 ← phi( line::@9/(byte) line::yd#2 ) (byte) line::y0#12 ← phi( line::@9/(byte) line::y0#9 ) @@ -6103,11 +4940,6 @@ line::@13: scope:[line] from line::@9 call line_ydxi param-assignment to:line::@return line::@27: scope:[line] from line::@9 - (byte[]) plot_bit#21 ← phi( line::@9/(byte[]) plot_bit#40 ) - (byte[]) plot_ylo#20 ← phi( line::@9/(byte[]) plot_ylo#40 ) - (byte[]) plot_yhi#20 ← phi( line::@9/(byte[]) plot_yhi#40 ) - (byte[]) plot_xlo#21 ← phi( line::@9/(byte[]) plot_xlo#40 ) - (byte[]) plot_xhi#21 ← phi( line::@9/(byte[]) plot_xhi#40 ) (byte) line::yd#11 ← phi( line::@9/(byte) line::yd#2 ) (byte) line::xd#13 ← phi( line::@9/(byte) line::xd#8 ) (byte) line::x0#9 ← phi( line::@9/(byte) line::x0#13 ) @@ -6125,11 +4957,6 @@ line::@return: scope:[line] from line::@10 line::@13 line::@17 line::@20 line:: to:@return line_xdyi: scope:[line_xdyi] from line::@17 line::@27 (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) - (byte[]) plot_bit#9 ← phi( line::@17/(byte[]) plot_bit#20 line::@27/(byte[]) plot_bit#21 ) - (byte[]) plot_ylo#9 ← phi( line::@17/(byte[]) plot_ylo#19 line::@27/(byte[]) plot_ylo#20 ) - (byte[]) plot_yhi#9 ← phi( line::@17/(byte[]) plot_yhi#19 line::@27/(byte[]) plot_yhi#20 ) - (byte[]) plot_xlo#9 ← phi( line::@17/(byte[]) plot_xlo#20 line::@27/(byte[]) plot_xlo#21 ) - (byte[]) plot_xhi#9 ← phi( line::@17/(byte[]) plot_xhi#20 line::@27/(byte[]) plot_xhi#21 ) (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) @@ -6139,11 +4966,6 @@ line_xdyi: scope:[line_xdyi] from line::@17 line::@27 to:line_xdyi::@1 line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 (byte) line_xdyi::x1#5 ← phi( line_xdyi/(byte) line_xdyi::x1#6 line_xdyi::@2/(byte) line_xdyi::x1#2 ) - (byte[]) plot_bit#4 ← phi( line_xdyi/(byte[]) plot_bit#9 line_xdyi::@2/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#4 ← phi( line_xdyi/(byte[]) plot_ylo#9 line_xdyi::@2/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#4 ← phi( line_xdyi/(byte[]) plot_yhi#9 line_xdyi::@2/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#4 ← phi( line_xdyi/(byte[]) plot_xlo#9 line_xdyi::@2/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#4 ← phi( line_xdyi/(byte[]) plot_xhi#9 line_xdyi::@2/(byte[]) plot_xhi#10 ) (byte) line_xdyi::xd#4 ← phi( line_xdyi/(byte) line_xdyi::xd#5 line_xdyi::@2/(byte) line_xdyi::xd#6 ) (byte) line_xdyi::yd#4 ← phi( line_xdyi/(byte) line_xdyi::yd#2 line_xdyi::@2/(byte) line_xdyi::yd#5 ) (byte) line_xdyi::e#5 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) @@ -6154,11 +4976,6 @@ line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 call plot param-assignment to:line_xdyi::@5 line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 - (byte[]) plot_bit#23 ← phi( line_xdyi::@1/(byte[]) plot_bit#4 ) - (byte[]) plot_ylo#22 ← phi( line_xdyi::@1/(byte[]) plot_ylo#4 ) - (byte[]) plot_yhi#22 ← phi( line_xdyi::@1/(byte[]) plot_yhi#4 ) - (byte[]) plot_xlo#23 ← phi( line_xdyi::@1/(byte[]) plot_xlo#4 ) - (byte[]) plot_xhi#23 ← phi( line_xdyi::@1/(byte[]) plot_xhi#4 ) (byte) line_xdyi::y#7 ← phi( line_xdyi::@1/(byte) line_xdyi::y#3 ) (byte) line_xdyi::x1#4 ← phi( line_xdyi::@1/(byte) line_xdyi::x1#5 ) (byte) line_xdyi::xd#2 ← phi( line_xdyi::@1/(byte) line_xdyi::xd#4 ) @@ -6173,11 +4990,6 @@ line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 if((boolean~) line_xdyi::$5) goto line_xdyi::@2 to:line_xdyi::@3 line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 - (byte[]) plot_bit#10 ← phi( line_xdyi::@3/(byte[]) plot_bit#22 line_xdyi::@5/(byte[]) plot_bit#23 ) - (byte[]) plot_ylo#10 ← phi( line_xdyi::@3/(byte[]) plot_ylo#21 line_xdyi::@5/(byte[]) plot_ylo#22 ) - (byte[]) plot_yhi#10 ← phi( line_xdyi::@3/(byte[]) plot_yhi#21 line_xdyi::@5/(byte[]) plot_yhi#22 ) - (byte[]) plot_xlo#10 ← phi( line_xdyi::@3/(byte[]) plot_xlo#22 line_xdyi::@5/(byte[]) plot_xlo#23 ) - (byte[]) plot_xhi#10 ← phi( line_xdyi::@3/(byte[]) plot_xhi#22 line_xdyi::@5/(byte[]) plot_xhi#23 ) (byte) line_xdyi::xd#6 ← phi( line_xdyi::@3/(byte) line_xdyi::xd#3 line_xdyi::@5/(byte) line_xdyi::xd#2 ) (byte) line_xdyi::yd#5 ← phi( line_xdyi::@3/(byte) line_xdyi::yd#6 line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) @@ -6189,11 +5001,6 @@ line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 if((boolean~) line_xdyi::$9) goto line_xdyi::@1 to:line_xdyi::@return line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5 - (byte[]) plot_bit#22 ← phi( line_xdyi::@5/(byte[]) plot_bit#23 ) - (byte[]) plot_ylo#21 ← phi( line_xdyi::@5/(byte[]) plot_ylo#22 ) - (byte[]) plot_yhi#21 ← phi( line_xdyi::@5/(byte[]) plot_yhi#22 ) - (byte[]) plot_xlo#22 ← phi( line_xdyi::@5/(byte[]) plot_xlo#23 ) - (byte[]) plot_xhi#22 ← phi( line_xdyi::@5/(byte[]) plot_xhi#23 ) (byte) line_xdyi::yd#6 ← phi( line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::x#7 ← phi( line_xdyi::@5/(byte) line_xdyi::x#2 ) (byte) line_xdyi::x1#3 ← phi( line_xdyi::@5/(byte) line_xdyi::x1#4 ) @@ -6210,11 +5017,6 @@ line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 to:@return line_xdyd: scope:[line_xdyd] from line::@20 line::@24 (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) - (byte[]) plot_bit#11 ← phi( line::@20/(byte[]) plot_bit#24 line::@24/(byte[]) plot_bit#25 ) - (byte[]) plot_ylo#11 ← phi( line::@20/(byte[]) plot_ylo#23 line::@24/(byte[]) plot_ylo#24 ) - (byte[]) plot_yhi#11 ← phi( line::@20/(byte[]) plot_yhi#23 line::@24/(byte[]) plot_yhi#24 ) - (byte[]) plot_xlo#11 ← phi( line::@20/(byte[]) plot_xlo#24 line::@24/(byte[]) plot_xlo#25 ) - (byte[]) plot_xhi#11 ← phi( line::@20/(byte[]) plot_xhi#24 line::@24/(byte[]) plot_xhi#25 ) (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) @@ -6224,11 +5026,6 @@ line_xdyd: scope:[line_xdyd] from line::@20 line::@24 to:line_xdyd::@1 line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 (byte) line_xdyd::x1#5 ← phi( line_xdyd/(byte) line_xdyd::x1#6 line_xdyd::@2/(byte) line_xdyd::x1#2 ) - (byte[]) plot_bit#3 ← phi( line_xdyd/(byte[]) plot_bit#11 line_xdyd::@2/(byte[]) plot_bit#12 ) - (byte[]) plot_ylo#3 ← phi( line_xdyd/(byte[]) plot_ylo#11 line_xdyd::@2/(byte[]) plot_ylo#12 ) - (byte[]) plot_yhi#3 ← phi( line_xdyd/(byte[]) plot_yhi#11 line_xdyd::@2/(byte[]) plot_yhi#12 ) - (byte[]) plot_xlo#3 ← phi( line_xdyd/(byte[]) plot_xlo#11 line_xdyd::@2/(byte[]) plot_xlo#12 ) - (byte[]) plot_xhi#3 ← phi( line_xdyd/(byte[]) plot_xhi#11 line_xdyd::@2/(byte[]) plot_xhi#12 ) (byte) line_xdyd::xd#4 ← phi( line_xdyd/(byte) line_xdyd::xd#5 line_xdyd::@2/(byte) line_xdyd::xd#6 ) (byte) line_xdyd::yd#4 ← phi( line_xdyd/(byte) line_xdyd::yd#2 line_xdyd::@2/(byte) line_xdyd::yd#5 ) (byte) line_xdyd::e#5 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) @@ -6239,11 +5036,6 @@ line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 call plot param-assignment to:line_xdyd::@5 line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 - (byte[]) plot_bit#27 ← phi( line_xdyd::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#26 ← phi( line_xdyd::@1/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#26 ← phi( line_xdyd::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#27 ← phi( line_xdyd::@1/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#27 ← phi( line_xdyd::@1/(byte[]) plot_xhi#3 ) (byte) line_xdyd::y#7 ← phi( line_xdyd::@1/(byte) line_xdyd::y#3 ) (byte) line_xdyd::x1#4 ← phi( line_xdyd::@1/(byte) line_xdyd::x1#5 ) (byte) line_xdyd::xd#2 ← phi( line_xdyd::@1/(byte) line_xdyd::xd#4 ) @@ -6258,11 +5050,6 @@ line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 if((boolean~) line_xdyd::$5) goto line_xdyd::@2 to:line_xdyd::@3 line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 - (byte[]) plot_bit#12 ← phi( line_xdyd::@3/(byte[]) plot_bit#26 line_xdyd::@5/(byte[]) plot_bit#27 ) - (byte[]) plot_ylo#12 ← phi( line_xdyd::@3/(byte[]) plot_ylo#25 line_xdyd::@5/(byte[]) plot_ylo#26 ) - (byte[]) plot_yhi#12 ← phi( line_xdyd::@3/(byte[]) plot_yhi#25 line_xdyd::@5/(byte[]) plot_yhi#26 ) - (byte[]) plot_xlo#12 ← phi( line_xdyd::@3/(byte[]) plot_xlo#26 line_xdyd::@5/(byte[]) plot_xlo#27 ) - (byte[]) plot_xhi#12 ← phi( line_xdyd::@3/(byte[]) plot_xhi#26 line_xdyd::@5/(byte[]) plot_xhi#27 ) (byte) line_xdyd::xd#6 ← phi( line_xdyd::@3/(byte) line_xdyd::xd#3 line_xdyd::@5/(byte) line_xdyd::xd#2 ) (byte) line_xdyd::yd#5 ← phi( line_xdyd::@3/(byte) line_xdyd::yd#6 line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) @@ -6274,11 +5061,6 @@ line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 if((boolean~) line_xdyd::$9) goto line_xdyd::@1 to:line_xdyd::@return line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5 - (byte[]) plot_bit#26 ← phi( line_xdyd::@5/(byte[]) plot_bit#27 ) - (byte[]) plot_ylo#25 ← phi( line_xdyd::@5/(byte[]) plot_ylo#26 ) - (byte[]) plot_yhi#25 ← phi( line_xdyd::@5/(byte[]) plot_yhi#26 ) - (byte[]) plot_xlo#26 ← phi( line_xdyd::@5/(byte[]) plot_xlo#27 ) - (byte[]) plot_xhi#26 ← phi( line_xdyd::@5/(byte[]) plot_xhi#27 ) (byte) line_xdyd::yd#6 ← phi( line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::x#7 ← phi( line_xdyd::@5/(byte) line_xdyd::x#2 ) (byte) line_xdyd::x1#3 ← phi( line_xdyd::@5/(byte) line_xdyd::x1#4 ) @@ -6295,11 +5077,6 @@ line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 to:@return line_ydxi: scope:[line_ydxi] from line::@13 line::@3 (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) - (byte[]) plot_bit#13 ← phi( line::@13/(byte[]) plot_bit#28 line::@3/(byte[]) plot_bit#29 ) - (byte[]) plot_ylo#13 ← phi( line::@13/(byte[]) plot_ylo#27 line::@3/(byte[]) plot_ylo#28 ) - (byte[]) plot_yhi#13 ← phi( line::@13/(byte[]) plot_yhi#27 line::@3/(byte[]) plot_yhi#28 ) - (byte[]) plot_xlo#13 ← phi( line::@13/(byte[]) plot_xlo#28 line::@3/(byte[]) plot_xlo#29 ) - (byte[]) plot_xhi#13 ← phi( line::@13/(byte[]) plot_xhi#28 line::@3/(byte[]) plot_xhi#29 ) (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) @@ -6309,11 +5086,6 @@ line_ydxi: scope:[line_ydxi] from line::@13 line::@3 to:line_ydxi::@1 line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 (byte) line_ydxi::y1#5 ← phi( line_ydxi/(byte) line_ydxi::y1#6 line_ydxi::@2/(byte) line_ydxi::y1#2 ) - (byte[]) plot_bit#6 ← phi( line_ydxi/(byte[]) plot_bit#13 line_ydxi::@2/(byte[]) plot_bit#14 ) - (byte[]) plot_ylo#6 ← phi( line_ydxi/(byte[]) plot_ylo#13 line_ydxi::@2/(byte[]) plot_ylo#14 ) - (byte[]) plot_yhi#6 ← phi( line_ydxi/(byte[]) plot_yhi#13 line_ydxi::@2/(byte[]) plot_yhi#14 ) - (byte[]) plot_xlo#6 ← phi( line_ydxi/(byte[]) plot_xlo#13 line_ydxi::@2/(byte[]) plot_xlo#14 ) - (byte[]) plot_xhi#6 ← phi( line_ydxi/(byte[]) plot_xhi#13 line_ydxi::@2/(byte[]) plot_xhi#14 ) (byte) line_ydxi::yd#4 ← phi( line_ydxi/(byte) line_ydxi::yd#5 line_ydxi::@2/(byte) line_ydxi::yd#6 ) (byte) line_ydxi::xd#4 ← phi( line_ydxi/(byte) line_ydxi::xd#2 line_ydxi::@2/(byte) line_ydxi::xd#5 ) (byte) line_ydxi::e#5 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) @@ -6324,11 +5096,6 @@ line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 call plot param-assignment to:line_ydxi::@5 line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 - (byte[]) plot_bit#31 ← phi( line_ydxi::@1/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#30 ← phi( line_ydxi::@1/(byte[]) plot_ylo#6 ) - (byte[]) plot_yhi#30 ← phi( line_ydxi::@1/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#31 ← phi( line_ydxi::@1/(byte[]) plot_xlo#6 ) - (byte[]) plot_xhi#31 ← phi( line_ydxi::@1/(byte[]) plot_xhi#6 ) (byte) line_ydxi::x#7 ← phi( line_ydxi::@1/(byte) line_ydxi::x#3 ) (byte) line_ydxi::y1#4 ← phi( line_ydxi::@1/(byte) line_ydxi::y1#5 ) (byte) line_ydxi::yd#2 ← phi( line_ydxi::@1/(byte) line_ydxi::yd#4 ) @@ -6343,11 +5110,6 @@ line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 if((boolean~) line_ydxi::$5) goto line_ydxi::@2 to:line_ydxi::@3 line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 - (byte[]) plot_bit#14 ← phi( line_ydxi::@3/(byte[]) plot_bit#30 line_ydxi::@5/(byte[]) plot_bit#31 ) - (byte[]) plot_ylo#14 ← phi( line_ydxi::@3/(byte[]) plot_ylo#29 line_ydxi::@5/(byte[]) plot_ylo#30 ) - (byte[]) plot_yhi#14 ← phi( line_ydxi::@3/(byte[]) plot_yhi#29 line_ydxi::@5/(byte[]) plot_yhi#30 ) - (byte[]) plot_xlo#14 ← phi( line_ydxi::@3/(byte[]) plot_xlo#30 line_ydxi::@5/(byte[]) plot_xlo#31 ) - (byte[]) plot_xhi#14 ← phi( line_ydxi::@3/(byte[]) plot_xhi#30 line_ydxi::@5/(byte[]) plot_xhi#31 ) (byte) line_ydxi::yd#6 ← phi( line_ydxi::@3/(byte) line_ydxi::yd#3 line_ydxi::@5/(byte) line_ydxi::yd#2 ) (byte) line_ydxi::xd#5 ← phi( line_ydxi::@3/(byte) line_ydxi::xd#6 line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) @@ -6359,11 +5121,6 @@ line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 if((boolean~) line_ydxi::$9) goto line_ydxi::@1 to:line_ydxi::@return line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5 - (byte[]) plot_bit#30 ← phi( line_ydxi::@5/(byte[]) plot_bit#31 ) - (byte[]) plot_ylo#29 ← phi( line_ydxi::@5/(byte[]) plot_ylo#30 ) - (byte[]) plot_yhi#29 ← phi( line_ydxi::@5/(byte[]) plot_yhi#30 ) - (byte[]) plot_xlo#30 ← phi( line_ydxi::@5/(byte[]) plot_xlo#31 ) - (byte[]) plot_xhi#30 ← phi( line_ydxi::@5/(byte[]) plot_xhi#31 ) (byte) line_ydxi::xd#6 ← phi( line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::y#7 ← phi( line_ydxi::@5/(byte) line_ydxi::y#2 ) (byte) line_ydxi::y1#3 ← phi( line_ydxi::@5/(byte) line_ydxi::y1#4 ) @@ -6380,11 +5137,6 @@ line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 to:@return line_ydxd: scope:[line_ydxd] from line::@10 line::@6 (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) - (byte[]) plot_bit#15 ← phi( line::@10/(byte[]) plot_bit#32 line::@6/(byte[]) plot_bit#33 ) - (byte[]) plot_ylo#15 ← phi( line::@10/(byte[]) plot_ylo#31 line::@6/(byte[]) plot_ylo#32 ) - (byte[]) plot_yhi#15 ← phi( line::@10/(byte[]) plot_yhi#31 line::@6/(byte[]) plot_yhi#32 ) - (byte[]) plot_xlo#15 ← phi( line::@10/(byte[]) plot_xlo#32 line::@6/(byte[]) plot_xlo#33 ) - (byte[]) plot_xhi#15 ← phi( line::@10/(byte[]) plot_xhi#32 line::@6/(byte[]) plot_xhi#33 ) (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) @@ -6394,11 +5146,6 @@ line_ydxd: scope:[line_ydxd] from line::@10 line::@6 to:line_ydxd::@1 line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 (byte) line_ydxd::y1#5 ← phi( line_ydxd/(byte) line_ydxd::y1#6 line_ydxd::@2/(byte) line_ydxd::y1#2 ) - (byte[]) plot_bit#5 ← phi( line_ydxd/(byte[]) plot_bit#15 line_ydxd::@2/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#5 ← phi( line_ydxd/(byte[]) plot_ylo#15 line_ydxd::@2/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#5 ← phi( line_ydxd/(byte[]) plot_yhi#15 line_ydxd::@2/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#5 ← phi( line_ydxd/(byte[]) plot_xlo#15 line_ydxd::@2/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#5 ← phi( line_ydxd/(byte[]) plot_xhi#15 line_ydxd::@2/(byte[]) plot_xhi#16 ) (byte) line_ydxd::yd#4 ← phi( line_ydxd/(byte) line_ydxd::yd#5 line_ydxd::@2/(byte) line_ydxd::yd#6 ) (byte) line_ydxd::xd#4 ← phi( line_ydxd/(byte) line_ydxd::xd#2 line_ydxd::@2/(byte) line_ydxd::xd#5 ) (byte) line_ydxd::e#5 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) @@ -6409,11 +5156,6 @@ line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 call plot param-assignment to:line_ydxd::@5 line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 - (byte[]) plot_bit#35 ← phi( line_ydxd::@1/(byte[]) plot_bit#5 ) - (byte[]) plot_ylo#34 ← phi( line_ydxd::@1/(byte[]) plot_ylo#5 ) - (byte[]) plot_yhi#34 ← phi( line_ydxd::@1/(byte[]) plot_yhi#5 ) - (byte[]) plot_xlo#35 ← phi( line_ydxd::@1/(byte[]) plot_xlo#5 ) - (byte[]) plot_xhi#35 ← phi( line_ydxd::@1/(byte[]) plot_xhi#5 ) (byte) line_ydxd::x#7 ← phi( line_ydxd::@1/(byte) line_ydxd::x#3 ) (byte) line_ydxd::y1#4 ← phi( line_ydxd::@1/(byte) line_ydxd::y1#5 ) (byte) line_ydxd::yd#2 ← phi( line_ydxd::@1/(byte) line_ydxd::yd#4 ) @@ -6428,11 +5170,6 @@ line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 if((boolean~) line_ydxd::$5) goto line_ydxd::@2 to:line_ydxd::@3 line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 - (byte[]) plot_bit#16 ← phi( line_ydxd::@3/(byte[]) plot_bit#34 line_ydxd::@5/(byte[]) plot_bit#35 ) - (byte[]) plot_ylo#16 ← phi( line_ydxd::@3/(byte[]) plot_ylo#33 line_ydxd::@5/(byte[]) plot_ylo#34 ) - (byte[]) plot_yhi#16 ← phi( line_ydxd::@3/(byte[]) plot_yhi#33 line_ydxd::@5/(byte[]) plot_yhi#34 ) - (byte[]) plot_xlo#16 ← phi( line_ydxd::@3/(byte[]) plot_xlo#34 line_ydxd::@5/(byte[]) plot_xlo#35 ) - (byte[]) plot_xhi#16 ← phi( line_ydxd::@3/(byte[]) plot_xhi#34 line_ydxd::@5/(byte[]) plot_xhi#35 ) (byte) line_ydxd::yd#6 ← phi( line_ydxd::@3/(byte) line_ydxd::yd#3 line_ydxd::@5/(byte) line_ydxd::yd#2 ) (byte) line_ydxd::xd#5 ← phi( line_ydxd::@3/(byte) line_ydxd::xd#6 line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) @@ -6444,11 +5181,6 @@ line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 if((boolean~) line_ydxd::$9) goto line_ydxd::@1 to:line_ydxd::@return line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5 - (byte[]) plot_bit#34 ← phi( line_ydxd::@5/(byte[]) plot_bit#35 ) - (byte[]) plot_ylo#33 ← phi( line_ydxd::@5/(byte[]) plot_ylo#34 ) - (byte[]) plot_yhi#33 ← phi( line_ydxd::@5/(byte[]) plot_yhi#34 ) - (byte[]) plot_xlo#34 ← phi( line_ydxd::@5/(byte[]) plot_xlo#35 ) - (byte[]) plot_xhi#34 ← phi( line_ydxd::@5/(byte[]) plot_xhi#35 ) (byte) line_ydxd::xd#6 ← phi( line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::y#7 ← phi( line_ydxd::@5/(byte) line_ydxd::y#2 ) (byte) line_ydxd::y1#3 ← phi( line_ydxd::@5/(byte) line_ydxd::y1#4 ) @@ -6464,26 +5196,21 @@ line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 return to:@return plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 - (byte[]) plot_bit#1 ← phi( line_xdyd::@1/(byte[]) plot_bit#3 line_xdyi::@1/(byte[]) plot_bit#4 line_ydxd::@1/(byte[]) plot_bit#5 line_ydxi::@1/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#1 ← phi( line_xdyd::@1/(byte[]) plot_ylo#3 line_xdyi::@1/(byte[]) plot_ylo#4 line_ydxd::@1/(byte[]) plot_ylo#5 line_ydxi::@1/(byte[]) plot_ylo#6 ) (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) - (byte[]) plot_yhi#1 ← phi( line_xdyd::@1/(byte[]) plot_yhi#3 line_xdyi::@1/(byte[]) plot_yhi#4 line_ydxd::@1/(byte[]) plot_yhi#5 line_ydxi::@1/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#1 ← phi( line_xdyd::@1/(byte[]) plot_xlo#3 line_xdyi::@1/(byte[]) plot_xlo#4 line_ydxd::@1/(byte[]) plot_xlo#5 line_ydxi::@1/(byte[]) plot_xlo#6 ) (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) - (byte[]) plot_xhi#1 ← phi( line_xdyd::@1/(byte[]) plot_xhi#3 line_xdyi::@1/(byte[]) plot_xhi#4 line_ydxd::@1/(byte[]) plot_xhi#5 line_ydxi::@1/(byte[]) plot_xhi#6 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#4 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#4 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#4 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#4 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#4 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#4 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#4 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#4 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -6491,81 +5218,51 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@3 - (byte[]) plot_yhi#41 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_ylo#41 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_bit#7 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_xhi#7 ← phi( main::@3/(byte[]) plot_xhi#17 ) - (byte*) BITMAP#6 ← phi( main::@3/(byte*) BITMAP#8 ) - (byte[]) plot_xlo#7 ← phi( main::@3/(byte[]) plot_xlo#17 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#35 ← phi( init_plot_tables/(byte[]) plot_yhi#41 init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#35 ← phi( init_plot_tables/(byte[]) plot_ylo#41 init_plot_tables::@2/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#7 init_plot_tables::@2/(byte[]) plot_bit#8 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#7 init_plot_tables::@2/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#7 init_plot_tables::@2/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#17 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 init_plot_tables::@5/(byte[]) plot_yhi#36 ) - (byte[]) plot_ylo#17 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 init_plot_tables::@5/(byte[]) plot_ylo#36 ) - (byte[]) plot_bit#8 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#18 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#18 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#9 ) - (byte[]) plot_xlo#8 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#18 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte[]) plot_yhi#36 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 ) - (byte[]) plot_ylo#36 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 ) - (byte[]) plot_bit#18 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 ) - (byte[]) plot_xhi#18 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#9 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#18 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte[]) plot_yhi#8 ← phi( init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#8 ← phi( init_plot_tables::@2/(byte[]) plot_ylo#17 ) (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#7 init_plot_tables::@6/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#7 init_plot_tables::@6/(byte[]) plot_ylo#8 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#7 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#7 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#18 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -6573,8 +5270,6 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p if((boolean~) init_plot_tables::$14) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte[]) plot_yhi#18 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#18 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 ) (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) (byte*~) init_plot_tables::$13 ← (byte*) init_plot_tables::yoffs#3 + (word/signed word) 320 @@ -6585,16 +5280,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#5 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#5 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -6615,16 +5308,10 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 return to:@return @10: scope:[] from @begin - (byte[]) plot_yhi#47 ← phi( @begin/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#47 ← phi( @begin/(byte[]) plot_ylo#0 ) (byte) lines_cnt#9 ← phi( @begin/(byte) lines_cnt#0 ) (byte[]) lines_y#9 ← phi( @begin/(byte[]) lines_y#0 ) (byte[]) lines_x#9 ← phi( @begin/(byte[]) lines_x#0 ) - (byte[]) plot_bit#36 ← phi( @begin/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#36 ← phi( @begin/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#36 ← phi( @begin/(byte[]) plot_xlo#0 ) (byte*) D018#2 ← phi( @begin/(byte*) D018#0 ) - (byte*) BITMAP#5 ← phi( @begin/(byte*) BITMAP#0 ) (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 ) (byte*) D011#2 ← phi( @begin/(byte*) D011#0 ) (byte) RSEL#2 ← phi( @begin/(byte) RSEL#0 ) @@ -6643,24 +5330,13 @@ Not aliassing across scopes: DEN#1 DEN#2 Not aliassing across scopes: RSEL#1 RSEL#2 Not aliassing across scopes: D011#1 D011#2 Not aliassing across scopes: SCREEN#1 SCREEN#4 -Not aliassing across scopes: BITMAP#1 BITMAP#5 Not aliassing across scopes: D018#1 D018#2 -Not aliassing across scopes: plot_xlo#19 plot_xlo#36 -Not aliassing across scopes: plot_xhi#19 plot_xhi#36 -Not aliassing across scopes: plot_bit#19 plot_bit#36 Not aliassing across scopes: lines_x#8 lines_x#9 Not aliassing across scopes: lines_y#8 lines_y#9 Not aliassing across scopes: lines_cnt#8 lines_cnt#9 -Not aliassing across scopes: plot_ylo#45 plot_ylo#47 -Not aliassing across scopes: plot_yhi#45 plot_yhi#47 Not aliassing across scopes: lines_x#2 lines_x#4 Not aliassing across scopes: lines_y#2 lines_y#4 Not aliassing across scopes: lines_cnt#3 lines_cnt#4 -Not aliassing across scopes: plot_xhi#45 plot_xhi#47 -Not aliassing across scopes: plot_xlo#45 plot_xlo#47 -Not aliassing across scopes: plot_yhi#49 plot_yhi#51 -Not aliassing across scopes: plot_ylo#49 plot_ylo#51 -Not aliassing across scopes: plot_bit#45 plot_bit#47 Not aliassing across scopes: line::x0#0 lines::$0 Not aliassing across scopes: line::x1#0 lines::$2 Not aliassing across scopes: line::y0#0 lines::$3 @@ -6669,11 +5345,6 @@ Not aliassing across scopes: line::x0#1 line::x0#0 Not aliassing across scopes: line::x1#1 line::x1#0 Not aliassing across scopes: line::y0#13 line::y0#0 Not aliassing across scopes: line::y1#13 line::y1#0 -Not aliassing across scopes: plot_xhi#43 plot_xhi#44 -Not aliassing across scopes: plot_xlo#43 plot_xlo#44 -Not aliassing across scopes: plot_yhi#46 plot_yhi#48 -Not aliassing across scopes: plot_ylo#46 plot_ylo#48 -Not aliassing across scopes: plot_bit#43 plot_bit#44 Not aliassing across scopes: line_ydxi::y#0 line::y0#5 Not aliassing across scopes: line_ydxi::x#0 line::x0#4 Not aliassing across scopes: line_ydxi::y1#0 line::y1#5 @@ -6718,11 +5389,6 @@ Not aliassing across scopes: line_xdyi::yd#2 line_xdyi::yd#0 Not aliassing across scopes: line_xdyi::x#6 line_xdyi::x#0 Not aliassing across scopes: line_xdyi::y#5 line_xdyi::y#0 Not aliassing across scopes: line_xdyi::xd#5 line_xdyi::xd#0 -Not aliassing across scopes: plot_xhi#9 plot_xhi#20 -Not aliassing across scopes: plot_xlo#9 plot_xlo#20 -Not aliassing across scopes: plot_yhi#9 plot_yhi#19 -Not aliassing across scopes: plot_ylo#9 plot_ylo#19 -Not aliassing across scopes: plot_bit#9 plot_bit#20 Not aliassing across scopes: line_xdyi::x1#6 line_xdyi::x1#0 Not aliassing across scopes: plot::x#0 line_xdyi::x#3 Not aliassing across scopes: plot::y#0 line_xdyi::y#3 @@ -6730,11 +5396,6 @@ Not aliassing across scopes: line_xdyd::yd#2 line_xdyd::yd#0 Not aliassing across scopes: line_xdyd::x#6 line_xdyd::x#0 Not aliassing across scopes: line_xdyd::y#5 line_xdyd::y#0 Not aliassing across scopes: line_xdyd::xd#5 line_xdyd::xd#0 -Not aliassing across scopes: plot_xhi#11 plot_xhi#24 -Not aliassing across scopes: plot_xlo#11 plot_xlo#24 -Not aliassing across scopes: plot_yhi#11 plot_yhi#23 -Not aliassing across scopes: plot_ylo#11 plot_ylo#23 -Not aliassing across scopes: plot_bit#11 plot_bit#24 Not aliassing across scopes: line_xdyd::x1#6 line_xdyd::x1#0 Not aliassing across scopes: plot::x#1 line_xdyd::x#3 Not aliassing across scopes: plot::y#1 line_xdyd::y#3 @@ -6742,11 +5403,6 @@ Not aliassing across scopes: line_ydxi::xd#2 line_ydxi::xd#1 Not aliassing across scopes: line_ydxi::x#5 line_ydxi::x#1 Not aliassing across scopes: line_ydxi::y#6 line_ydxi::y#1 Not aliassing across scopes: line_ydxi::yd#5 line_ydxi::yd#1 -Not aliassing across scopes: plot_xhi#13 plot_xhi#28 -Not aliassing across scopes: plot_xlo#13 plot_xlo#28 -Not aliassing across scopes: plot_yhi#13 plot_yhi#27 -Not aliassing across scopes: plot_ylo#13 plot_ylo#27 -Not aliassing across scopes: plot_bit#13 plot_bit#28 Not aliassing across scopes: line_ydxi::y1#6 line_ydxi::y1#1 Not aliassing across scopes: plot::x#2 line_ydxi::x#3 Not aliassing across scopes: plot::y#2 line_ydxi::y#3 @@ -6754,67 +5410,29 @@ Not aliassing across scopes: line_ydxd::xd#2 line_ydxd::xd#1 Not aliassing across scopes: line_ydxd::x#5 line_ydxd::x#1 Not aliassing across scopes: line_ydxd::y#6 line_ydxd::y#1 Not aliassing across scopes: line_ydxd::yd#5 line_ydxd::yd#1 -Not aliassing across scopes: plot_xhi#15 plot_xhi#32 -Not aliassing across scopes: plot_xlo#15 plot_xlo#32 -Not aliassing across scopes: plot_yhi#15 plot_yhi#31 -Not aliassing across scopes: plot_ylo#15 plot_ylo#31 -Not aliassing across scopes: plot_bit#15 plot_bit#32 Not aliassing across scopes: line_ydxd::y1#6 line_ydxd::y1#1 Not aliassing across scopes: plot::x#3 line_ydxd::x#3 Not aliassing across scopes: plot::y#3 line_ydxd::y#3 -Not aliassing across scopes: plot_xhi#1 plot_xhi#3 Not aliassing across scopes: plot::x#4 plot::x#1 -Not aliassing across scopes: plot_xlo#1 plot_xlo#3 -Not aliassing across scopes: plot_yhi#1 plot_yhi#3 Not aliassing across scopes: plot::y#4 plot::y#1 -Not aliassing across scopes: plot_ylo#1 plot_ylo#3 -Not aliassing across scopes: plot_bit#1 plot_bit#3 -Not aliassing across scopes: plot_xlo#7 plot_xlo#17 -Not aliassing across scopes: BITMAP#6 BITMAP#8 -Not aliassing across scopes: plot_xhi#7 plot_xhi#17 -Not aliassing across scopes: plot_bit#7 plot_bit#17 -Not aliassing across scopes: plot_ylo#41 plot_ylo#44 -Not aliassing across scopes: plot_yhi#41 plot_yhi#44 -Not aliassing across scopes: BITMAP#3 BITMAP#1 Not aliassing across scopes: SCREEN#6 SCREEN#1 -Not aliassing across scopes: init_screen::b#0 BITMAP#3 +Not aliassing across scopes: init_screen::b#0 BITMAP#0 Not aliassing across scopes: init_screen::c#0 SCREEN#2 Not aliassing identity: SCREEN#3 SCREEN#3 -Alias (byte[]) plot_xlo#17 = (byte[]) plot_xlo#19 (byte[]) plot_xlo#48 -Alias (byte*) BITMAP#1 = (byte*) BITMAP#8 -Alias (byte[]) plot_xhi#17 = (byte[]) plot_xhi#19 (byte[]) plot_xhi#48 -Alias (byte[]) plot_bit#17 = (byte[]) plot_bit#19 (byte[]) plot_bit#48 Alias (byte[]) lines_x#5 = (byte[]) lines_x#7 (byte[]) lines_x#8 Alias (byte[]) lines_y#5 = (byte[]) lines_y#7 (byte[]) lines_y#8 Alias (byte) lines_cnt#5 = (byte) lines_cnt#7 (byte) lines_cnt#8 -Alias (byte[]) plot_ylo#44 = (byte[]) plot_ylo#45 (byte[]) plot_ylo#52 -Alias (byte[]) plot_yhi#44 = (byte[]) plot_yhi#45 (byte[]) plot_yhi#52 Alias (byte[]) lines_x#4 = (byte[]) lines_x#6 Alias (byte[]) lines_y#4 = (byte[]) lines_y#6 Alias (byte) lines_cnt#4 = (byte) lines_cnt#6 -Alias (byte[]) plot_xhi#47 = (byte[]) plot_xhi#49 -Alias (byte[]) plot_xlo#47 = (byte[]) plot_xlo#49 -Alias (byte[]) plot_yhi#51 = (byte[]) plot_yhi#53 -Alias (byte[]) plot_ylo#51 = (byte[]) plot_ylo#53 -Alias (byte[]) plot_bit#47 = (byte[]) plot_bit#49 Alias (byte) lines::l#2 = (byte) lines::l#3 Alias (byte) lines_cnt#1 = (byte) lines_cnt#2 Alias (byte[]) lines_x#1 = (byte[]) lines_x#3 Alias (byte[]) lines_y#1 = (byte[]) lines_y#3 -Alias (byte[]) plot_xhi#44 = (byte[]) plot_xhi#46 -Alias (byte[]) plot_xlo#44 = (byte[]) plot_xlo#46 -Alias (byte[]) plot_yhi#48 = (byte[]) plot_yhi#50 -Alias (byte[]) plot_ylo#48 = (byte[]) plot_ylo#50 -Alias (byte[]) plot_bit#44 = (byte[]) plot_bit#46 Alias (byte) line::x0#1 = (byte) line::x0#2 (byte) line::x0#3 (byte) line::x0#11 (byte) line::x0#10 (byte) line::x0#4 (byte) line::x0#5 (byte) line::x0#6 (byte) line::x0#13 (byte) line::x0#12 (byte) line::x0#7 (byte) line::x0#8 (byte) line::x0#9 Alias (byte) line::x1#1 = (byte) line::x1#2 (byte) line::x1#3 (byte) line::x1#11 (byte) line::x1#10 (byte) line::x1#4 (byte) line::x1#5 (byte) line::x1#6 (byte) line::x1#13 (byte) line::x1#12 (byte) line::x1#7 (byte) line::x1#8 (byte) line::x1#9 Alias (byte) line::y0#1 = (byte) line::y0#13 (byte) line::y0#2 (byte) line::y0#3 (byte) line::y0#4 (byte) line::y0#5 (byte) line::y0#6 (byte) line::y0#7 (byte) line::y0#8 (byte) line::y0#9 (byte) line::y0#10 (byte) line::y0#11 (byte) line::y0#12 Alias (byte) line::y1#1 = (byte) line::y1#13 (byte) line::y1#2 (byte) line::y1#3 (byte) line::y1#4 (byte) line::y1#5 (byte) line::y1#6 (byte) line::y1#7 (byte) line::y1#8 (byte) line::y1#9 (byte) line::y1#10 (byte) line::y1#11 (byte) line::y1#12 -Alias (byte[]) plot_xhi#20 = (byte[]) plot_xhi#42 (byte[]) plot_xhi#43 (byte[]) plot_xhi#41 (byte[]) plot_xhi#38 (byte[]) plot_xhi#37 (byte[]) plot_xhi#29 (byte[]) plot_xhi#33 (byte[]) plot_xhi#24 (byte[]) plot_xhi#40 (byte[]) plot_xhi#39 (byte[]) plot_xhi#32 (byte[]) plot_xhi#25 (byte[]) plot_xhi#28 (byte[]) plot_xhi#21 -Alias (byte[]) plot_xlo#20 = (byte[]) plot_xlo#42 (byte[]) plot_xlo#43 (byte[]) plot_xlo#41 (byte[]) plot_xlo#38 (byte[]) plot_xlo#37 (byte[]) plot_xlo#29 (byte[]) plot_xlo#33 (byte[]) plot_xlo#24 (byte[]) plot_xlo#40 (byte[]) plot_xlo#39 (byte[]) plot_xlo#32 (byte[]) plot_xlo#25 (byte[]) plot_xlo#28 (byte[]) plot_xlo#21 -Alias (byte[]) plot_yhi#19 = (byte[]) plot_yhi#43 (byte[]) plot_yhi#46 (byte[]) plot_yhi#42 (byte[]) plot_yhi#38 (byte[]) plot_yhi#37 (byte[]) plot_yhi#28 (byte[]) plot_yhi#32 (byte[]) plot_yhi#23 (byte[]) plot_yhi#40 (byte[]) plot_yhi#39 (byte[]) plot_yhi#31 (byte[]) plot_yhi#24 (byte[]) plot_yhi#27 (byte[]) plot_yhi#20 -Alias (byte[]) plot_ylo#19 = (byte[]) plot_ylo#43 (byte[]) plot_ylo#46 (byte[]) plot_ylo#42 (byte[]) plot_ylo#38 (byte[]) plot_ylo#37 (byte[]) plot_ylo#28 (byte[]) plot_ylo#32 (byte[]) plot_ylo#23 (byte[]) plot_ylo#40 (byte[]) plot_ylo#39 (byte[]) plot_ylo#31 (byte[]) plot_ylo#24 (byte[]) plot_ylo#27 (byte[]) plot_ylo#20 -Alias (byte[]) plot_bit#20 = (byte[]) plot_bit#42 (byte[]) plot_bit#43 (byte[]) plot_bit#41 (byte[]) plot_bit#38 (byte[]) plot_bit#37 (byte[]) plot_bit#29 (byte[]) plot_bit#33 (byte[]) plot_bit#24 (byte[]) plot_bit#40 (byte[]) plot_bit#39 (byte[]) plot_bit#32 (byte[]) plot_bit#25 (byte[]) plot_bit#28 (byte[]) plot_bit#21 Alias (byte) line::xd#0 = (byte~) line::$15 (byte) line::xd#8 (byte) line::xd#9 (byte) line::xd#10 (byte) line::xd#11 (byte) line::xd#12 (byte) line::xd#13 Alias (byte) line::xd#1 = (byte~) line::$2 (byte) line::xd#2 (byte) line::xd#3 (byte) line::xd#4 (byte) line::xd#5 (byte) line::xd#6 (byte) line::xd#7 Alias (byte) line::yd#0 = (byte~) line::$10 (byte) line::yd#6 (byte) line::yd#7 @@ -6828,11 +5446,6 @@ Alias (byte) line_xdyi::yd#3 = (byte) line_xdyi::yd#4 (byte) line_xdyi::yd#6 Alias (byte) line_xdyi::xd#2 = (byte) line_xdyi::xd#4 (byte) line_xdyi::xd#3 Alias (byte) line_xdyi::x1#3 = (byte) line_xdyi::x1#4 (byte) line_xdyi::x1#5 Alias (byte) line_xdyi::y#3 = (byte) line_xdyi::y#7 (byte) line_xdyi::y#4 -Alias (byte[]) plot_xhi#22 = (byte[]) plot_xhi#23 (byte[]) plot_xhi#4 -Alias (byte[]) plot_xlo#22 = (byte[]) plot_xlo#23 (byte[]) plot_xlo#4 -Alias (byte[]) plot_yhi#21 = (byte[]) plot_yhi#22 (byte[]) plot_yhi#4 -Alias (byte[]) plot_ylo#21 = (byte[]) plot_ylo#22 (byte[]) plot_ylo#4 -Alias (byte[]) plot_bit#22 = (byte[]) plot_bit#23 (byte[]) plot_bit#4 Alias (byte) line_xdyi::x#2 = (byte~) line_xdyi::$2 (byte) line_xdyi::x#7 Alias (byte) line_xdyi::e#1 = (byte~) line_xdyi::$3 (byte) line_xdyi::e#4 Alias (byte) line_xdyi::y#2 = (byte~) line_xdyi::$6 @@ -6844,11 +5457,6 @@ Alias (byte) line_xdyd::yd#3 = (byte) line_xdyd::yd#4 (byte) line_xdyd::yd#6 Alias (byte) line_xdyd::xd#2 = (byte) line_xdyd::xd#4 (byte) line_xdyd::xd#3 Alias (byte) line_xdyd::x1#3 = (byte) line_xdyd::x1#4 (byte) line_xdyd::x1#5 Alias (byte) line_xdyd::y#3 = (byte) line_xdyd::y#7 (byte) line_xdyd::y#4 -Alias (byte[]) plot_xhi#26 = (byte[]) plot_xhi#27 (byte[]) plot_xhi#3 -Alias (byte[]) plot_xlo#26 = (byte[]) plot_xlo#27 (byte[]) plot_xlo#3 -Alias (byte[]) plot_yhi#25 = (byte[]) plot_yhi#26 (byte[]) plot_yhi#3 -Alias (byte[]) plot_ylo#25 = (byte[]) plot_ylo#26 (byte[]) plot_ylo#3 -Alias (byte[]) plot_bit#26 = (byte[]) plot_bit#27 (byte[]) plot_bit#3 Alias (byte) line_xdyd::x#2 = (byte~) line_xdyd::$2 (byte) line_xdyd::x#7 Alias (byte) line_xdyd::e#1 = (byte~) line_xdyd::$3 (byte) line_xdyd::e#4 Alias (byte) line_xdyd::y#2 = (byte~) line_xdyd::$6 @@ -6860,11 +5468,6 @@ Alias (byte) line_ydxi::xd#3 = (byte) line_ydxi::xd#4 (byte) line_ydxi::xd#6 Alias (byte) line_ydxi::yd#2 = (byte) line_ydxi::yd#4 (byte) line_ydxi::yd#3 Alias (byte) line_ydxi::y1#3 = (byte) line_ydxi::y1#4 (byte) line_ydxi::y1#5 Alias (byte) line_ydxi::x#3 = (byte) line_ydxi::x#7 (byte) line_ydxi::x#4 -Alias (byte[]) plot_xhi#30 = (byte[]) plot_xhi#31 (byte[]) plot_xhi#6 -Alias (byte[]) plot_xlo#30 = (byte[]) plot_xlo#31 (byte[]) plot_xlo#6 -Alias (byte[]) plot_yhi#29 = (byte[]) plot_yhi#30 (byte[]) plot_yhi#6 -Alias (byte[]) plot_ylo#29 = (byte[]) plot_ylo#30 (byte[]) plot_ylo#6 -Alias (byte[]) plot_bit#30 = (byte[]) plot_bit#31 (byte[]) plot_bit#6 Alias (byte) line_ydxi::y#2 = (byte~) line_ydxi::$2 (byte) line_ydxi::y#7 Alias (byte) line_ydxi::e#1 = (byte~) line_ydxi::$3 (byte) line_ydxi::e#4 Alias (byte) line_ydxi::x#2 = (byte~) line_ydxi::$6 @@ -6876,11 +5479,6 @@ Alias (byte) line_ydxd::xd#3 = (byte) line_ydxd::xd#4 (byte) line_ydxd::xd#6 Alias (byte) line_ydxd::yd#2 = (byte) line_ydxd::yd#4 (byte) line_ydxd::yd#3 Alias (byte) line_ydxd::y1#3 = (byte) line_ydxd::y1#4 (byte) line_ydxd::y1#5 Alias (byte) line_ydxd::x#3 = (byte) line_ydxd::x#7 (byte) line_ydxd::x#4 -Alias (byte[]) plot_xhi#34 = (byte[]) plot_xhi#35 (byte[]) plot_xhi#5 -Alias (byte[]) plot_xlo#34 = (byte[]) plot_xlo#35 (byte[]) plot_xlo#5 -Alias (byte[]) plot_yhi#33 = (byte[]) plot_yhi#34 (byte[]) plot_yhi#5 -Alias (byte[]) plot_ylo#33 = (byte[]) plot_ylo#34 (byte[]) plot_ylo#5 -Alias (byte[]) plot_bit#34 = (byte[]) plot_bit#35 (byte[]) plot_bit#5 Alias (byte) line_ydxd::y#2 = (byte~) line_ydxd::$2 (byte) line_ydxd::y#7 Alias (byte) line_ydxd::e#1 = (byte~) line_ydxd::$3 (byte) line_ydxd::e#4 Alias (byte) line_ydxd::x#2 = (byte~) line_ydxd::$6 @@ -6888,18 +5486,8 @@ Alias (byte) line_ydxd::e#2 = (byte~) line_ydxd::$7 Alias (byte*) plot::plotter#0 = (byte*~) plot::$4 Alias (byte) init_plot_tables::bits#1 = (byte~) init_plot_tables::$2 Alias (byte) init_plot_tables::x#2 = (byte) init_plot_tables::x#4 -Alias (byte[]) plot_xlo#18 = (byte[]) plot_xlo#2 -Alias (byte*) BITMAP#2 = (byte*) BITMAP#9 -Alias (byte[]) plot_xhi#18 = (byte[]) plot_xhi#2 -Alias (byte[]) plot_bit#18 = (byte[]) plot_bit#2 -Alias (byte[]) plot_ylo#35 = (byte[]) plot_ylo#36 -Alias (byte[]) plot_yhi#35 = (byte[]) plot_yhi#36 -Alias (byte[]) plot_ylo#17 = (byte[]) plot_ylo#8 -Alias (byte[]) plot_yhi#17 = (byte[]) plot_yhi#8 Alias (byte*) init_plot_tables::yoffs#2 = (byte*) init_plot_tables::yoffs#3 Alias (byte) init_plot_tables::y#2 = (byte) init_plot_tables::y#4 -Alias (byte[]) plot_ylo#18 = (byte[]) plot_ylo#2 -Alias (byte[]) plot_yhi#18 = (byte[]) plot_yhi#2 Alias (byte*) init_plot_tables::yoffs#1 = (byte*~) init_plot_tables::$13 Alias (byte*) SCREEN#2 = (byte*) SCREEN#5 Alias (byte*) BGCOL#0 = (byte*) BGCOL#2 @@ -6909,16 +5497,10 @@ Alias (byte) DEN#0 = (byte) DEN#2 Alias (byte) RSEL#0 = (byte) RSEL#2 Alias (byte*) D011#0 = (byte*) D011#2 Alias (byte*) SCREEN#0 = (byte*) SCREEN#4 -Alias (byte*) BITMAP#0 = (byte*) BITMAP#5 Alias (byte*) D018#0 = (byte*) D018#2 -Alias (byte[]) plot_xlo#0 = (byte[]) plot_xlo#36 -Alias (byte[]) plot_xhi#0 = (byte[]) plot_xhi#36 -Alias (byte[]) plot_bit#0 = (byte[]) plot_bit#36 Alias (byte[]) lines_x#0 = (byte[]) lines_x#9 Alias (byte[]) lines_y#0 = (byte[]) lines_y#9 Alias (byte) lines_cnt#0 = (byte) lines_cnt#9 -Alias (byte[]) plot_ylo#0 = (byte[]) plot_ylo#47 -Alias (byte[]) plot_yhi#0 = (byte[]) plot_yhi#47 Succesful SSA optimization Pass2AliasElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -6941,16 +5523,10 @@ CONTROL FLOW GRAPH (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@10 main: scope:[main] from @10 - (byte[]) plot_yhi#44 ← phi( @10/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#44 ← phi( @10/(byte[]) plot_ylo#0 ) (byte) lines_cnt#5 ← phi( @10/(byte) lines_cnt#0 ) (byte[]) lines_y#5 ← phi( @10/(byte[]) lines_y#0 ) (byte[]) lines_x#5 ← phi( @10/(byte[]) lines_x#0 ) - (byte[]) plot_bit#17 ← phi( @10/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#17 ← phi( @10/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#17 ← phi( @10/(byte[]) plot_xlo#0 ) (byte*) D018#1 ← phi( @10/(byte*) D018#0 ) - (byte*) BITMAP#1 ← phi( @10/(byte*) BITMAP#0 ) (byte*) SCREEN#1 ← phi( @10/(byte*) SCREEN#0 ) (byte*) D011#1 ← phi( @10/(byte*) D011#0 ) (byte) RSEL#1 ← phi( @10/(byte) RSEL#0 ) @@ -6966,7 +5542,7 @@ main: scope:[main] from @10 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -6979,11 +5555,6 @@ main::@3: scope:[main] from main main::@4: scope:[main] from main::@3 to:main::@1 main::@1: scope:[main] from main::@4 main::@5 - (byte[]) plot_bit#47 ← phi( main::@4/(byte[]) plot_bit#17 main::@5/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#51 ← phi( main::@4/(byte[]) plot_ylo#44 main::@5/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#51 ← phi( main::@4/(byte[]) plot_yhi#44 main::@5/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#47 ← phi( main::@4/(byte[]) plot_xlo#17 main::@5/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#47 ← phi( main::@4/(byte[]) plot_xhi#17 main::@5/(byte[]) plot_xhi#47 ) (byte) lines_cnt#4 ← phi( main::@4/(byte) lines_cnt#5 main::@5/(byte) lines_cnt#4 ) (byte[]) lines_y#4 ← phi( main::@4/(byte[]) lines_y#5 main::@5/(byte[]) lines_y#4 ) (byte[]) lines_x#4 ← phi( main::@4/(byte[]) lines_x#5 main::@5/(byte[]) lines_x#4 ) @@ -6996,22 +5567,12 @@ main::@return: scope:[main] from main::@5 return to:@return lines: scope:[lines] from main::@1 - (byte[]) plot_bit#45 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#49 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#49 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#45 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#45 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#3 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#2 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#2 ← phi( main::@1/(byte[]) lines_x#4 ) (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 to:lines::@1 lines::@1: scope:[lines] from lines lines::@3 - (byte[]) plot_bit#44 ← phi( lines/(byte[]) plot_bit#45 lines::@3/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#48 ← phi( lines/(byte[]) plot_ylo#49 lines::@3/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#48 ← phi( lines/(byte[]) plot_yhi#49 lines::@3/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#44 ← phi( lines/(byte[]) plot_xlo#45 lines::@3/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#44 ← phi( lines/(byte[]) plot_xhi#45 lines::@3/(byte[]) plot_xhi#44 ) (byte) lines_cnt#1 ← phi( lines/(byte) lines_cnt#3 lines::@3/(byte) lines_cnt#1 ) (byte[]) lines_y#1 ← phi( lines/(byte[]) lines_y#2 lines::@3/(byte[]) lines_y#1 ) (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) @@ -7037,11 +5598,6 @@ lines::@return: scope:[lines] from lines::@3 return to:@return line: scope:[line] from lines::@1 - (byte[]) plot_bit#20 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#19 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#19 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#20 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#20 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte) line::y1#1 ← phi( lines::@1/(byte) line::y1#0 ) (byte) line::y0#1 ← phi( lines::@1/(byte) line::y0#0 ) (byte) line::x1#1 ← phi( lines::@1/(byte) line::x1#0 ) @@ -7148,11 +5704,6 @@ line::@return: scope:[line] from line::@10 line::@13 line::@17 line::@20 line:: to:@return line_xdyi: scope:[line_xdyi] from line::@17 line::@27 (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) - (byte[]) plot_bit#9 ← phi( line::@17/(byte[]) plot_bit#20 line::@27/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#9 ← phi( line::@17/(byte[]) plot_ylo#19 line::@27/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#9 ← phi( line::@17/(byte[]) plot_yhi#19 line::@27/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#9 ← phi( line::@17/(byte[]) plot_xlo#20 line::@27/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#9 ← phi( line::@17/(byte[]) plot_xhi#20 line::@27/(byte[]) plot_xhi#20 ) (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) @@ -7161,11 +5712,6 @@ line_xdyi: scope:[line_xdyi] from line::@17 line::@27 to:line_xdyi::@1 line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 (byte) line_xdyi::x1#3 ← phi( line_xdyi/(byte) line_xdyi::x1#6 line_xdyi::@2/(byte) line_xdyi::x1#2 ) - (byte[]) plot_bit#22 ← phi( line_xdyi/(byte[]) plot_bit#9 line_xdyi::@2/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#21 ← phi( line_xdyi/(byte[]) plot_ylo#9 line_xdyi::@2/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#21 ← phi( line_xdyi/(byte[]) plot_yhi#9 line_xdyi::@2/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#22 ← phi( line_xdyi/(byte[]) plot_xlo#9 line_xdyi::@2/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#22 ← phi( line_xdyi/(byte[]) plot_xhi#9 line_xdyi::@2/(byte[]) plot_xhi#10 ) (byte) line_xdyi::xd#2 ← phi( line_xdyi/(byte) line_xdyi::xd#5 line_xdyi::@2/(byte) line_xdyi::xd#6 ) (byte) line_xdyi::yd#3 ← phi( line_xdyi/(byte) line_xdyi::yd#2 line_xdyi::@2/(byte) line_xdyi::yd#5 ) (byte) line_xdyi::e#3 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) @@ -7182,11 +5728,6 @@ line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 if((boolean~) line_xdyi::$5) goto line_xdyi::@2 to:line_xdyi::@3 line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 - (byte[]) plot_bit#10 ← phi( line_xdyi::@3/(byte[]) plot_bit#22 line_xdyi::@5/(byte[]) plot_bit#22 ) - (byte[]) plot_ylo#10 ← phi( line_xdyi::@3/(byte[]) plot_ylo#21 line_xdyi::@5/(byte[]) plot_ylo#21 ) - (byte[]) plot_yhi#10 ← phi( line_xdyi::@3/(byte[]) plot_yhi#21 line_xdyi::@5/(byte[]) plot_yhi#21 ) - (byte[]) plot_xlo#10 ← phi( line_xdyi::@3/(byte[]) plot_xlo#22 line_xdyi::@5/(byte[]) plot_xlo#22 ) - (byte[]) plot_xhi#10 ← phi( line_xdyi::@3/(byte[]) plot_xhi#22 line_xdyi::@5/(byte[]) plot_xhi#22 ) (byte) line_xdyi::xd#6 ← phi( line_xdyi::@3/(byte) line_xdyi::xd#2 line_xdyi::@5/(byte) line_xdyi::xd#2 ) (byte) line_xdyi::yd#5 ← phi( line_xdyi::@3/(byte) line_xdyi::yd#3 line_xdyi::@5/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) @@ -7206,11 +5747,6 @@ line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 to:@return line_xdyd: scope:[line_xdyd] from line::@20 line::@24 (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) - (byte[]) plot_bit#11 ← phi( line::@20/(byte[]) plot_bit#20 line::@24/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#11 ← phi( line::@20/(byte[]) plot_ylo#19 line::@24/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#11 ← phi( line::@20/(byte[]) plot_yhi#19 line::@24/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#11 ← phi( line::@20/(byte[]) plot_xlo#20 line::@24/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#11 ← phi( line::@20/(byte[]) plot_xhi#20 line::@24/(byte[]) plot_xhi#20 ) (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) @@ -7219,11 +5755,6 @@ line_xdyd: scope:[line_xdyd] from line::@20 line::@24 to:line_xdyd::@1 line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 (byte) line_xdyd::x1#3 ← phi( line_xdyd/(byte) line_xdyd::x1#6 line_xdyd::@2/(byte) line_xdyd::x1#2 ) - (byte[]) plot_bit#26 ← phi( line_xdyd/(byte[]) plot_bit#11 line_xdyd::@2/(byte[]) plot_bit#12 ) - (byte[]) plot_ylo#25 ← phi( line_xdyd/(byte[]) plot_ylo#11 line_xdyd::@2/(byte[]) plot_ylo#12 ) - (byte[]) plot_yhi#25 ← phi( line_xdyd/(byte[]) plot_yhi#11 line_xdyd::@2/(byte[]) plot_yhi#12 ) - (byte[]) plot_xlo#26 ← phi( line_xdyd/(byte[]) plot_xlo#11 line_xdyd::@2/(byte[]) plot_xlo#12 ) - (byte[]) plot_xhi#26 ← phi( line_xdyd/(byte[]) plot_xhi#11 line_xdyd::@2/(byte[]) plot_xhi#12 ) (byte) line_xdyd::xd#2 ← phi( line_xdyd/(byte) line_xdyd::xd#5 line_xdyd::@2/(byte) line_xdyd::xd#6 ) (byte) line_xdyd::yd#3 ← phi( line_xdyd/(byte) line_xdyd::yd#2 line_xdyd::@2/(byte) line_xdyd::yd#5 ) (byte) line_xdyd::e#3 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) @@ -7240,11 +5771,6 @@ line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 if((boolean~) line_xdyd::$5) goto line_xdyd::@2 to:line_xdyd::@3 line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 - (byte[]) plot_bit#12 ← phi( line_xdyd::@3/(byte[]) plot_bit#26 line_xdyd::@5/(byte[]) plot_bit#26 ) - (byte[]) plot_ylo#12 ← phi( line_xdyd::@3/(byte[]) plot_ylo#25 line_xdyd::@5/(byte[]) plot_ylo#25 ) - (byte[]) plot_yhi#12 ← phi( line_xdyd::@3/(byte[]) plot_yhi#25 line_xdyd::@5/(byte[]) plot_yhi#25 ) - (byte[]) plot_xlo#12 ← phi( line_xdyd::@3/(byte[]) plot_xlo#26 line_xdyd::@5/(byte[]) plot_xlo#26 ) - (byte[]) plot_xhi#12 ← phi( line_xdyd::@3/(byte[]) plot_xhi#26 line_xdyd::@5/(byte[]) plot_xhi#26 ) (byte) line_xdyd::xd#6 ← phi( line_xdyd::@3/(byte) line_xdyd::xd#2 line_xdyd::@5/(byte) line_xdyd::xd#2 ) (byte) line_xdyd::yd#5 ← phi( line_xdyd::@3/(byte) line_xdyd::yd#3 line_xdyd::@5/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) @@ -7264,11 +5790,6 @@ line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 to:@return line_ydxi: scope:[line_ydxi] from line::@13 line::@3 (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) - (byte[]) plot_bit#13 ← phi( line::@13/(byte[]) plot_bit#20 line::@3/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#13 ← phi( line::@13/(byte[]) plot_ylo#19 line::@3/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#13 ← phi( line::@13/(byte[]) plot_yhi#19 line::@3/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#13 ← phi( line::@13/(byte[]) plot_xlo#20 line::@3/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#13 ← phi( line::@13/(byte[]) plot_xhi#20 line::@3/(byte[]) plot_xhi#20 ) (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) @@ -7277,11 +5798,6 @@ line_ydxi: scope:[line_ydxi] from line::@13 line::@3 to:line_ydxi::@1 line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 (byte) line_ydxi::y1#3 ← phi( line_ydxi/(byte) line_ydxi::y1#6 line_ydxi::@2/(byte) line_ydxi::y1#2 ) - (byte[]) plot_bit#30 ← phi( line_ydxi/(byte[]) plot_bit#13 line_ydxi::@2/(byte[]) plot_bit#14 ) - (byte[]) plot_ylo#29 ← phi( line_ydxi/(byte[]) plot_ylo#13 line_ydxi::@2/(byte[]) plot_ylo#14 ) - (byte[]) plot_yhi#29 ← phi( line_ydxi/(byte[]) plot_yhi#13 line_ydxi::@2/(byte[]) plot_yhi#14 ) - (byte[]) plot_xlo#30 ← phi( line_ydxi/(byte[]) plot_xlo#13 line_ydxi::@2/(byte[]) plot_xlo#14 ) - (byte[]) plot_xhi#30 ← phi( line_ydxi/(byte[]) plot_xhi#13 line_ydxi::@2/(byte[]) plot_xhi#14 ) (byte) line_ydxi::yd#2 ← phi( line_ydxi/(byte) line_ydxi::yd#5 line_ydxi::@2/(byte) line_ydxi::yd#6 ) (byte) line_ydxi::xd#3 ← phi( line_ydxi/(byte) line_ydxi::xd#2 line_ydxi::@2/(byte) line_ydxi::xd#5 ) (byte) line_ydxi::e#3 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) @@ -7298,11 +5814,6 @@ line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 if((boolean~) line_ydxi::$5) goto line_ydxi::@2 to:line_ydxi::@3 line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 - (byte[]) plot_bit#14 ← phi( line_ydxi::@3/(byte[]) plot_bit#30 line_ydxi::@5/(byte[]) plot_bit#30 ) - (byte[]) plot_ylo#14 ← phi( line_ydxi::@3/(byte[]) plot_ylo#29 line_ydxi::@5/(byte[]) plot_ylo#29 ) - (byte[]) plot_yhi#14 ← phi( line_ydxi::@3/(byte[]) plot_yhi#29 line_ydxi::@5/(byte[]) plot_yhi#29 ) - (byte[]) plot_xlo#14 ← phi( line_ydxi::@3/(byte[]) plot_xlo#30 line_ydxi::@5/(byte[]) plot_xlo#30 ) - (byte[]) plot_xhi#14 ← phi( line_ydxi::@3/(byte[]) plot_xhi#30 line_ydxi::@5/(byte[]) plot_xhi#30 ) (byte) line_ydxi::yd#6 ← phi( line_ydxi::@3/(byte) line_ydxi::yd#2 line_ydxi::@5/(byte) line_ydxi::yd#2 ) (byte) line_ydxi::xd#5 ← phi( line_ydxi::@3/(byte) line_ydxi::xd#3 line_ydxi::@5/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) @@ -7322,11 +5833,6 @@ line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 to:@return line_ydxd: scope:[line_ydxd] from line::@10 line::@6 (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) - (byte[]) plot_bit#15 ← phi( line::@10/(byte[]) plot_bit#20 line::@6/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#15 ← phi( line::@10/(byte[]) plot_ylo#19 line::@6/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#15 ← phi( line::@10/(byte[]) plot_yhi#19 line::@6/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#15 ← phi( line::@10/(byte[]) plot_xlo#20 line::@6/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#15 ← phi( line::@10/(byte[]) plot_xhi#20 line::@6/(byte[]) plot_xhi#20 ) (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) @@ -7335,11 +5841,6 @@ line_ydxd: scope:[line_ydxd] from line::@10 line::@6 to:line_ydxd::@1 line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 (byte) line_ydxd::y1#3 ← phi( line_ydxd/(byte) line_ydxd::y1#6 line_ydxd::@2/(byte) line_ydxd::y1#2 ) - (byte[]) plot_bit#34 ← phi( line_ydxd/(byte[]) plot_bit#15 line_ydxd::@2/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#33 ← phi( line_ydxd/(byte[]) plot_ylo#15 line_ydxd::@2/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#33 ← phi( line_ydxd/(byte[]) plot_yhi#15 line_ydxd::@2/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#34 ← phi( line_ydxd/(byte[]) plot_xlo#15 line_ydxd::@2/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#34 ← phi( line_ydxd/(byte[]) plot_xhi#15 line_ydxd::@2/(byte[]) plot_xhi#16 ) (byte) line_ydxd::yd#2 ← phi( line_ydxd/(byte) line_ydxd::yd#5 line_ydxd::@2/(byte) line_ydxd::yd#6 ) (byte) line_ydxd::xd#3 ← phi( line_ydxd/(byte) line_ydxd::xd#2 line_ydxd::@2/(byte) line_ydxd::xd#5 ) (byte) line_ydxd::e#3 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) @@ -7356,11 +5857,6 @@ line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 if((boolean~) line_ydxd::$5) goto line_ydxd::@2 to:line_ydxd::@3 line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 - (byte[]) plot_bit#16 ← phi( line_ydxd::@3/(byte[]) plot_bit#34 line_ydxd::@5/(byte[]) plot_bit#34 ) - (byte[]) plot_ylo#16 ← phi( line_ydxd::@3/(byte[]) plot_ylo#33 line_ydxd::@5/(byte[]) plot_ylo#33 ) - (byte[]) plot_yhi#16 ← phi( line_ydxd::@3/(byte[]) plot_yhi#33 line_ydxd::@5/(byte[]) plot_yhi#33 ) - (byte[]) plot_xlo#16 ← phi( line_ydxd::@3/(byte[]) plot_xlo#34 line_ydxd::@5/(byte[]) plot_xlo#34 ) - (byte[]) plot_xhi#16 ← phi( line_ydxd::@3/(byte[]) plot_xhi#34 line_ydxd::@5/(byte[]) plot_xhi#34 ) (byte) line_ydxd::yd#6 ← phi( line_ydxd::@3/(byte) line_ydxd::yd#2 line_ydxd::@5/(byte) line_ydxd::yd#2 ) (byte) line_ydxd::xd#5 ← phi( line_ydxd::@3/(byte) line_ydxd::xd#3 line_ydxd::@5/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) @@ -7379,25 +5875,20 @@ line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 return to:@return plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 - (byte[]) plot_bit#1 ← phi( line_xdyd::@1/(byte[]) plot_bit#26 line_xdyi::@1/(byte[]) plot_bit#22 line_ydxd::@1/(byte[]) plot_bit#34 line_ydxi::@1/(byte[]) plot_bit#30 ) - (byte[]) plot_ylo#1 ← phi( line_xdyd::@1/(byte[]) plot_ylo#25 line_xdyi::@1/(byte[]) plot_ylo#21 line_ydxd::@1/(byte[]) plot_ylo#33 line_ydxi::@1/(byte[]) plot_ylo#29 ) (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) - (byte[]) plot_yhi#1 ← phi( line_xdyd::@1/(byte[]) plot_yhi#25 line_xdyi::@1/(byte[]) plot_yhi#21 line_ydxd::@1/(byte[]) plot_yhi#33 line_ydxi::@1/(byte[]) plot_yhi#29 ) - (byte[]) plot_xlo#1 ← phi( line_xdyd::@1/(byte[]) plot_xlo#26 line_xdyi::@1/(byte[]) plot_xlo#22 line_ydxd::@1/(byte[]) plot_xlo#34 line_ydxi::@1/(byte[]) plot_xlo#30 ) (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) - (byte[]) plot_xhi#1 ← phi( line_xdyd::@1/(byte[]) plot_xhi#26 line_xdyi::@1/(byte[]) plot_xhi#22 line_ydxd::@1/(byte[]) plot_xhi#34 line_ydxi::@1/(byte[]) plot_xhi#30 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#4 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#4 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#4 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#4 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#4 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#4 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#4 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#4 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -7405,41 +5896,23 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@3 - (byte[]) plot_yhi#41 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_ylo#41 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_bit#7 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_xhi#7 ← phi( main::@3/(byte[]) plot_xhi#17 ) - (byte*) BITMAP#6 ← phi( main::@3/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#7 ← phi( main::@3/(byte[]) plot_xlo#17 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#35 ← phi( init_plot_tables/(byte[]) plot_yhi#41 init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#35 ← phi( init_plot_tables/(byte[]) plot_ylo#41 init_plot_tables::@2/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#18 ← phi( init_plot_tables/(byte[]) plot_bit#7 init_plot_tables::@2/(byte[]) plot_bit#8 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#18 ← phi( init_plot_tables/(byte[]) plot_xhi#7 init_plot_tables::@2/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#18 ← phi( init_plot_tables/(byte[]) plot_xlo#7 init_plot_tables::@2/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#18 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#18 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#18 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#17 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#35 init_plot_tables::@5/(byte[]) plot_yhi#35 ) - (byte[]) plot_ylo#17 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#35 init_plot_tables::@5/(byte[]) plot_ylo#35 ) - (byte[]) plot_bit#8 ← phi( init_plot_tables::@1/(byte[]) plot_bit#18 init_plot_tables::@5/(byte[]) plot_bit#18 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#18 init_plot_tables::@5/(byte[]) plot_xhi#18 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#8 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#18 init_plot_tables::@5/(byte[]) plot_xlo#18 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 @@ -7453,23 +5926,19 @@ init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#18 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#7 init_plot_tables::@6/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#18 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#7 init_plot_tables::@6/(byte[]) plot_ylo#17 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#18 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#18 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#7 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#18 init_plot_tables::@7/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#7 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#18 init_plot_tables::@7/(byte[]) plot_ylo#18 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#2 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -7484,16 +5953,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#2 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#2 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -7524,24 +5991,13 @@ Not aliassing across scopes: DEN#1 DEN#0 Not aliassing across scopes: RSEL#1 RSEL#0 Not aliassing across scopes: D011#1 D011#0 Not aliassing across scopes: SCREEN#1 SCREEN#0 -Not aliassing across scopes: BITMAP#1 BITMAP#0 Not aliassing across scopes: D018#1 D018#0 -Not aliassing across scopes: plot_xlo#17 plot_xlo#0 -Not aliassing across scopes: plot_xhi#17 plot_xhi#0 -Not aliassing across scopes: plot_bit#17 plot_bit#0 Not aliassing across scopes: lines_x#5 lines_x#0 Not aliassing across scopes: lines_y#5 lines_y#0 Not aliassing across scopes: lines_cnt#5 lines_cnt#0 -Not aliassing across scopes: plot_ylo#44 plot_ylo#0 -Not aliassing across scopes: plot_yhi#44 plot_yhi#0 Not aliassing across scopes: lines_x#2 lines_x#4 Not aliassing across scopes: lines_y#2 lines_y#4 Not aliassing across scopes: lines_cnt#3 lines_cnt#4 -Not aliassing across scopes: plot_xhi#45 plot_xhi#47 -Not aliassing across scopes: plot_xlo#45 plot_xlo#47 -Not aliassing across scopes: plot_yhi#49 plot_yhi#51 -Not aliassing across scopes: plot_ylo#49 plot_ylo#51 -Not aliassing across scopes: plot_bit#45 plot_bit#47 Not aliassing across scopes: line::x0#0 lines::$0 Not aliassing across scopes: line::x1#0 lines::$2 Not aliassing across scopes: line::y0#0 lines::$3 @@ -7550,11 +6006,6 @@ Not aliassing across scopes: line::x0#1 line::x0#0 Not aliassing across scopes: line::x1#1 line::x1#0 Not aliassing across scopes: line::y0#1 line::y0#0 Not aliassing across scopes: line::y1#1 line::y1#0 -Not aliassing across scopes: plot_xhi#20 plot_xhi#44 -Not aliassing across scopes: plot_xlo#20 plot_xlo#44 -Not aliassing across scopes: plot_yhi#19 plot_yhi#48 -Not aliassing across scopes: plot_ylo#19 plot_ylo#48 -Not aliassing across scopes: plot_bit#20 plot_bit#44 Not aliassing across scopes: line_ydxi::y#0 line::y0#1 Not aliassing across scopes: line_ydxi::x#0 line::x0#1 Not aliassing across scopes: line_ydxi::y1#0 line::y1#1 @@ -7599,11 +6050,6 @@ Not aliassing across scopes: line_xdyi::yd#2 line_xdyi::yd#0 Not aliassing across scopes: line_xdyi::x#6 line_xdyi::x#0 Not aliassing across scopes: line_xdyi::y#5 line_xdyi::y#0 Not aliassing across scopes: line_xdyi::xd#5 line_xdyi::xd#0 -Not aliassing across scopes: plot_xhi#9 plot_xhi#20 -Not aliassing across scopes: plot_xlo#9 plot_xlo#20 -Not aliassing across scopes: plot_yhi#9 plot_yhi#19 -Not aliassing across scopes: plot_ylo#9 plot_ylo#19 -Not aliassing across scopes: plot_bit#9 plot_bit#20 Not aliassing across scopes: line_xdyi::x1#6 line_xdyi::x1#0 Not aliassing across scopes: plot::x#0 line_xdyi::x#3 Not aliassing across scopes: plot::y#0 line_xdyi::y#3 @@ -7611,11 +6057,6 @@ Not aliassing across scopes: line_xdyd::yd#2 line_xdyd::yd#0 Not aliassing across scopes: line_xdyd::x#6 line_xdyd::x#0 Not aliassing across scopes: line_xdyd::y#5 line_xdyd::y#0 Not aliassing across scopes: line_xdyd::xd#5 line_xdyd::xd#0 -Not aliassing across scopes: plot_xhi#11 plot_xhi#20 -Not aliassing across scopes: plot_xlo#11 plot_xlo#20 -Not aliassing across scopes: plot_yhi#11 plot_yhi#19 -Not aliassing across scopes: plot_ylo#11 plot_ylo#19 -Not aliassing across scopes: plot_bit#11 plot_bit#20 Not aliassing across scopes: line_xdyd::x1#6 line_xdyd::x1#0 Not aliassing across scopes: plot::x#1 line_xdyd::x#3 Not aliassing across scopes: plot::y#1 line_xdyd::y#3 @@ -7623,11 +6064,6 @@ Not aliassing across scopes: line_ydxi::xd#2 line_ydxi::xd#1 Not aliassing across scopes: line_ydxi::x#5 line_ydxi::x#1 Not aliassing across scopes: line_ydxi::y#6 line_ydxi::y#1 Not aliassing across scopes: line_ydxi::yd#5 line_ydxi::yd#1 -Not aliassing across scopes: plot_xhi#13 plot_xhi#20 -Not aliassing across scopes: plot_xlo#13 plot_xlo#20 -Not aliassing across scopes: plot_yhi#13 plot_yhi#19 -Not aliassing across scopes: plot_ylo#13 plot_ylo#19 -Not aliassing across scopes: plot_bit#13 plot_bit#20 Not aliassing across scopes: line_ydxi::y1#6 line_ydxi::y1#1 Not aliassing across scopes: plot::x#2 line_ydxi::x#3 Not aliassing across scopes: plot::y#2 line_ydxi::y#3 @@ -7635,78 +6071,33 @@ Not aliassing across scopes: line_ydxd::xd#2 line_ydxd::xd#1 Not aliassing across scopes: line_ydxd::x#5 line_ydxd::x#1 Not aliassing across scopes: line_ydxd::y#6 line_ydxd::y#1 Not aliassing across scopes: line_ydxd::yd#5 line_ydxd::yd#1 -Not aliassing across scopes: plot_xhi#15 plot_xhi#20 -Not aliassing across scopes: plot_xlo#15 plot_xlo#20 -Not aliassing across scopes: plot_yhi#15 plot_yhi#19 -Not aliassing across scopes: plot_ylo#15 plot_ylo#19 -Not aliassing across scopes: plot_bit#15 plot_bit#20 Not aliassing across scopes: line_ydxd::y1#6 line_ydxd::y1#1 Not aliassing across scopes: plot::x#3 line_ydxd::x#3 Not aliassing across scopes: plot::y#3 line_ydxd::y#3 -Not aliassing across scopes: plot_xhi#1 plot_xhi#26 Not aliassing across scopes: plot::x#4 plot::x#1 -Not aliassing across scopes: plot_xlo#1 plot_xlo#26 -Not aliassing across scopes: plot_yhi#1 plot_yhi#25 Not aliassing across scopes: plot::y#4 plot::y#1 -Not aliassing across scopes: plot_ylo#1 plot_ylo#25 -Not aliassing across scopes: plot_bit#1 plot_bit#26 -Not aliassing across scopes: plot_xlo#7 plot_xlo#17 -Not aliassing across scopes: BITMAP#6 BITMAP#1 -Not aliassing across scopes: plot_xhi#7 plot_xhi#17 -Not aliassing across scopes: plot_bit#7 plot_bit#17 -Not aliassing across scopes: plot_ylo#41 plot_ylo#44 -Not aliassing across scopes: plot_yhi#41 plot_yhi#44 -Not aliassing across scopes: BITMAP#3 BITMAP#1 Not aliassing across scopes: SCREEN#6 SCREEN#1 -Not aliassing across scopes: init_screen::b#0 BITMAP#3 +Not aliassing across scopes: init_screen::b#0 BITMAP#0 Not aliassing across scopes: init_screen::c#0 SCREEN#2 Not aliassing identity: SCREEN#3 SCREEN#3 Alias (byte) line_xdyi::x1#2 = (byte) line_xdyi::x1#3 Alias (byte) line_xdyi::x#2 = (byte) line_xdyi::x#5 Alias (byte) line_xdyi::yd#3 = (byte) line_xdyi::yd#5 Alias (byte) line_xdyi::xd#2 = (byte) line_xdyi::xd#6 -Alias (byte[]) plot_xhi#10 = (byte[]) plot_xhi#22 -Alias (byte[]) plot_xlo#10 = (byte[]) plot_xlo#22 -Alias (byte[]) plot_yhi#10 = (byte[]) plot_yhi#21 -Alias (byte[]) plot_ylo#10 = (byte[]) plot_ylo#21 -Alias (byte[]) plot_bit#10 = (byte[]) plot_bit#22 Alias (byte) line_xdyd::x1#2 = (byte) line_xdyd::x1#3 Alias (byte) line_xdyd::x#2 = (byte) line_xdyd::x#5 Alias (byte) line_xdyd::yd#3 = (byte) line_xdyd::yd#5 Alias (byte) line_xdyd::xd#2 = (byte) line_xdyd::xd#6 -Alias (byte[]) plot_xhi#12 = (byte[]) plot_xhi#26 -Alias (byte[]) plot_xlo#12 = (byte[]) plot_xlo#26 -Alias (byte[]) plot_yhi#12 = (byte[]) plot_yhi#25 -Alias (byte[]) plot_ylo#12 = (byte[]) plot_ylo#25 -Alias (byte[]) plot_bit#12 = (byte[]) plot_bit#26 Alias (byte) line_ydxi::y1#2 = (byte) line_ydxi::y1#3 Alias (byte) line_ydxi::y#2 = (byte) line_ydxi::y#5 Alias (byte) line_ydxi::xd#3 = (byte) line_ydxi::xd#5 Alias (byte) line_ydxi::yd#2 = (byte) line_ydxi::yd#6 -Alias (byte[]) plot_xhi#14 = (byte[]) plot_xhi#30 -Alias (byte[]) plot_xlo#14 = (byte[]) plot_xlo#30 -Alias (byte[]) plot_yhi#14 = (byte[]) plot_yhi#29 -Alias (byte[]) plot_ylo#14 = (byte[]) plot_ylo#29 -Alias (byte[]) plot_bit#14 = (byte[]) plot_bit#30 Alias (byte) line_ydxd::y1#2 = (byte) line_ydxd::y1#3 Alias (byte) line_ydxd::y#2 = (byte) line_ydxd::y#5 Alias (byte) line_ydxd::xd#3 = (byte) line_ydxd::xd#5 Alias (byte) line_ydxd::yd#2 = (byte) line_ydxd::yd#6 -Alias (byte[]) plot_xhi#16 = (byte[]) plot_xhi#34 -Alias (byte[]) plot_xlo#16 = (byte[]) plot_xlo#34 -Alias (byte[]) plot_yhi#16 = (byte[]) plot_yhi#33 -Alias (byte[]) plot_ylo#16 = (byte[]) plot_ylo#33 -Alias (byte[]) plot_bit#16 = (byte[]) plot_bit#34 Alias (byte) init_plot_tables::x#2 = (byte) init_plot_tables::x#3 -Alias (byte[]) plot_xlo#18 = (byte[]) plot_xlo#8 -Alias (byte*) BITMAP#2 = (byte*) BITMAP#7 -Alias (byte[]) plot_xhi#18 = (byte[]) plot_xhi#8 -Alias (byte[]) plot_bit#18 = (byte[]) plot_bit#8 -Alias (byte[]) plot_ylo#17 = (byte[]) plot_ylo#35 -Alias (byte[]) plot_yhi#17 = (byte[]) plot_yhi#35 Alias (byte) init_plot_tables::y#2 = (byte) init_plot_tables::y#3 -Alias (byte[]) plot_ylo#18 = (byte[]) plot_ylo#7 -Alias (byte[]) plot_yhi#18 = (byte[]) plot_yhi#7 Succesful SSA optimization Pass2AliasElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -7729,16 +6120,10 @@ CONTROL FLOW GRAPH (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@10 main: scope:[main] from @10 - (byte[]) plot_yhi#44 ← phi( @10/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#44 ← phi( @10/(byte[]) plot_ylo#0 ) (byte) lines_cnt#5 ← phi( @10/(byte) lines_cnt#0 ) (byte[]) lines_y#5 ← phi( @10/(byte[]) lines_y#0 ) (byte[]) lines_x#5 ← phi( @10/(byte[]) lines_x#0 ) - (byte[]) plot_bit#17 ← phi( @10/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#17 ← phi( @10/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#17 ← phi( @10/(byte[]) plot_xlo#0 ) (byte*) D018#1 ← phi( @10/(byte*) D018#0 ) - (byte*) BITMAP#1 ← phi( @10/(byte*) BITMAP#0 ) (byte*) SCREEN#1 ← phi( @10/(byte*) SCREEN#0 ) (byte*) D011#1 ← phi( @10/(byte*) D011#0 ) (byte) RSEL#1 ← phi( @10/(byte) RSEL#0 ) @@ -7754,7 +6139,7 @@ main: scope:[main] from @10 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -7767,11 +6152,6 @@ main::@3: scope:[main] from main main::@4: scope:[main] from main::@3 to:main::@1 main::@1: scope:[main] from main::@4 main::@5 - (byte[]) plot_bit#47 ← phi( main::@4/(byte[]) plot_bit#17 main::@5/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#51 ← phi( main::@4/(byte[]) plot_ylo#44 main::@5/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#51 ← phi( main::@4/(byte[]) plot_yhi#44 main::@5/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#47 ← phi( main::@4/(byte[]) plot_xlo#17 main::@5/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#47 ← phi( main::@4/(byte[]) plot_xhi#17 main::@5/(byte[]) plot_xhi#47 ) (byte) lines_cnt#4 ← phi( main::@4/(byte) lines_cnt#5 main::@5/(byte) lines_cnt#4 ) (byte[]) lines_y#4 ← phi( main::@4/(byte[]) lines_y#5 main::@5/(byte[]) lines_y#4 ) (byte[]) lines_x#4 ← phi( main::@4/(byte[]) lines_x#5 main::@5/(byte[]) lines_x#4 ) @@ -7784,22 +6164,12 @@ main::@return: scope:[main] from main::@5 return to:@return lines: scope:[lines] from main::@1 - (byte[]) plot_bit#45 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#49 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#49 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#45 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#45 ← phi( main::@1/(byte[]) plot_xhi#47 ) (byte) lines_cnt#3 ← phi( main::@1/(byte) lines_cnt#4 ) (byte[]) lines_y#2 ← phi( main::@1/(byte[]) lines_y#4 ) (byte[]) lines_x#2 ← phi( main::@1/(byte[]) lines_x#4 ) (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 to:lines::@1 lines::@1: scope:[lines] from lines lines::@3 - (byte[]) plot_bit#44 ← phi( lines/(byte[]) plot_bit#45 lines::@3/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#48 ← phi( lines/(byte[]) plot_ylo#49 lines::@3/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#48 ← phi( lines/(byte[]) plot_yhi#49 lines::@3/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#44 ← phi( lines/(byte[]) plot_xlo#45 lines::@3/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#44 ← phi( lines/(byte[]) plot_xhi#45 lines::@3/(byte[]) plot_xhi#44 ) (byte) lines_cnt#1 ← phi( lines/(byte) lines_cnt#3 lines::@3/(byte) lines_cnt#1 ) (byte[]) lines_y#1 ← phi( lines/(byte[]) lines_y#2 lines::@3/(byte[]) lines_y#1 ) (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) @@ -7825,11 +6195,6 @@ lines::@return: scope:[lines] from lines::@3 return to:@return line: scope:[line] from lines::@1 - (byte[]) plot_bit#20 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#19 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#19 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#20 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#20 ← phi( lines::@1/(byte[]) plot_xhi#44 ) (byte) line::y1#1 ← phi( lines::@1/(byte) line::y1#0 ) (byte) line::y0#1 ← phi( lines::@1/(byte) line::y0#0 ) (byte) line::x1#1 ← phi( lines::@1/(byte) line::x1#0 ) @@ -7936,11 +6301,6 @@ line::@return: scope:[line] from line::@10 line::@13 line::@17 line::@20 line:: to:@return line_xdyi: scope:[line_xdyi] from line::@17 line::@27 (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) - (byte[]) plot_bit#9 ← phi( line::@17/(byte[]) plot_bit#20 line::@27/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#9 ← phi( line::@17/(byte[]) plot_ylo#19 line::@27/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#9 ← phi( line::@17/(byte[]) plot_yhi#19 line::@27/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#9 ← phi( line::@17/(byte[]) plot_xlo#20 line::@27/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#9 ← phi( line::@17/(byte[]) plot_xhi#20 line::@27/(byte[]) plot_xhi#20 ) (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) @@ -7949,11 +6309,6 @@ line_xdyi: scope:[line_xdyi] from line::@17 line::@27 to:line_xdyi::@1 line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 (byte) line_xdyi::x1#2 ← phi( line_xdyi/(byte) line_xdyi::x1#6 line_xdyi::@2/(byte) line_xdyi::x1#2 ) - (byte[]) plot_bit#10 ← phi( line_xdyi/(byte[]) plot_bit#9 line_xdyi::@2/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#10 ← phi( line_xdyi/(byte[]) plot_ylo#9 line_xdyi::@2/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#10 ← phi( line_xdyi/(byte[]) plot_yhi#9 line_xdyi::@2/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#10 ← phi( line_xdyi/(byte[]) plot_xlo#9 line_xdyi::@2/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#10 ← phi( line_xdyi/(byte[]) plot_xhi#9 line_xdyi::@2/(byte[]) plot_xhi#10 ) (byte) line_xdyi::xd#2 ← phi( line_xdyi/(byte) line_xdyi::xd#5 line_xdyi::@2/(byte) line_xdyi::xd#2 ) (byte) line_xdyi::yd#3 ← phi( line_xdyi/(byte) line_xdyi::yd#2 line_xdyi::@2/(byte) line_xdyi::yd#3 ) (byte) line_xdyi::e#3 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) @@ -7985,11 +6340,6 @@ line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 to:@return line_xdyd: scope:[line_xdyd] from line::@20 line::@24 (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) - (byte[]) plot_bit#11 ← phi( line::@20/(byte[]) plot_bit#20 line::@24/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#11 ← phi( line::@20/(byte[]) plot_ylo#19 line::@24/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#11 ← phi( line::@20/(byte[]) plot_yhi#19 line::@24/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#11 ← phi( line::@20/(byte[]) plot_xlo#20 line::@24/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#11 ← phi( line::@20/(byte[]) plot_xhi#20 line::@24/(byte[]) plot_xhi#20 ) (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) @@ -7998,11 +6348,6 @@ line_xdyd: scope:[line_xdyd] from line::@20 line::@24 to:line_xdyd::@1 line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 (byte) line_xdyd::x1#2 ← phi( line_xdyd/(byte) line_xdyd::x1#6 line_xdyd::@2/(byte) line_xdyd::x1#2 ) - (byte[]) plot_bit#12 ← phi( line_xdyd/(byte[]) plot_bit#11 line_xdyd::@2/(byte[]) plot_bit#12 ) - (byte[]) plot_ylo#12 ← phi( line_xdyd/(byte[]) plot_ylo#11 line_xdyd::@2/(byte[]) plot_ylo#12 ) - (byte[]) plot_yhi#12 ← phi( line_xdyd/(byte[]) plot_yhi#11 line_xdyd::@2/(byte[]) plot_yhi#12 ) - (byte[]) plot_xlo#12 ← phi( line_xdyd/(byte[]) plot_xlo#11 line_xdyd::@2/(byte[]) plot_xlo#12 ) - (byte[]) plot_xhi#12 ← phi( line_xdyd/(byte[]) plot_xhi#11 line_xdyd::@2/(byte[]) plot_xhi#12 ) (byte) line_xdyd::xd#2 ← phi( line_xdyd/(byte) line_xdyd::xd#5 line_xdyd::@2/(byte) line_xdyd::xd#2 ) (byte) line_xdyd::yd#3 ← phi( line_xdyd/(byte) line_xdyd::yd#2 line_xdyd::@2/(byte) line_xdyd::yd#3 ) (byte) line_xdyd::e#3 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) @@ -8034,11 +6379,6 @@ line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 to:@return line_ydxi: scope:[line_ydxi] from line::@13 line::@3 (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) - (byte[]) plot_bit#13 ← phi( line::@13/(byte[]) plot_bit#20 line::@3/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#13 ← phi( line::@13/(byte[]) plot_ylo#19 line::@3/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#13 ← phi( line::@13/(byte[]) plot_yhi#19 line::@3/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#13 ← phi( line::@13/(byte[]) plot_xlo#20 line::@3/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#13 ← phi( line::@13/(byte[]) plot_xhi#20 line::@3/(byte[]) plot_xhi#20 ) (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) @@ -8047,11 +6387,6 @@ line_ydxi: scope:[line_ydxi] from line::@13 line::@3 to:line_ydxi::@1 line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 (byte) line_ydxi::y1#2 ← phi( line_ydxi/(byte) line_ydxi::y1#6 line_ydxi::@2/(byte) line_ydxi::y1#2 ) - (byte[]) plot_bit#14 ← phi( line_ydxi/(byte[]) plot_bit#13 line_ydxi::@2/(byte[]) plot_bit#14 ) - (byte[]) plot_ylo#14 ← phi( line_ydxi/(byte[]) plot_ylo#13 line_ydxi::@2/(byte[]) plot_ylo#14 ) - (byte[]) plot_yhi#14 ← phi( line_ydxi/(byte[]) plot_yhi#13 line_ydxi::@2/(byte[]) plot_yhi#14 ) - (byte[]) plot_xlo#14 ← phi( line_ydxi/(byte[]) plot_xlo#13 line_ydxi::@2/(byte[]) plot_xlo#14 ) - (byte[]) plot_xhi#14 ← phi( line_ydxi/(byte[]) plot_xhi#13 line_ydxi::@2/(byte[]) plot_xhi#14 ) (byte) line_ydxi::yd#2 ← phi( line_ydxi/(byte) line_ydxi::yd#5 line_ydxi::@2/(byte) line_ydxi::yd#2 ) (byte) line_ydxi::xd#3 ← phi( line_ydxi/(byte) line_ydxi::xd#2 line_ydxi::@2/(byte) line_ydxi::xd#3 ) (byte) line_ydxi::e#3 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) @@ -8083,11 +6418,6 @@ line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 to:@return line_ydxd: scope:[line_ydxd] from line::@10 line::@6 (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) - (byte[]) plot_bit#15 ← phi( line::@10/(byte[]) plot_bit#20 line::@6/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#15 ← phi( line::@10/(byte[]) plot_ylo#19 line::@6/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#15 ← phi( line::@10/(byte[]) plot_yhi#19 line::@6/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#15 ← phi( line::@10/(byte[]) plot_xlo#20 line::@6/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#15 ← phi( line::@10/(byte[]) plot_xhi#20 line::@6/(byte[]) plot_xhi#20 ) (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) @@ -8096,11 +6426,6 @@ line_ydxd: scope:[line_ydxd] from line::@10 line::@6 to:line_ydxd::@1 line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 (byte) line_ydxd::y1#2 ← phi( line_ydxd/(byte) line_ydxd::y1#6 line_ydxd::@2/(byte) line_ydxd::y1#2 ) - (byte[]) plot_bit#16 ← phi( line_ydxd/(byte[]) plot_bit#15 line_ydxd::@2/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#16 ← phi( line_ydxd/(byte[]) plot_ylo#15 line_ydxd::@2/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#16 ← phi( line_ydxd/(byte[]) plot_yhi#15 line_ydxd::@2/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#16 ← phi( line_ydxd/(byte[]) plot_xlo#15 line_ydxd::@2/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#16 ← phi( line_ydxd/(byte[]) plot_xhi#15 line_ydxd::@2/(byte[]) plot_xhi#16 ) (byte) line_ydxd::yd#2 ← phi( line_ydxd/(byte) line_ydxd::yd#5 line_ydxd::@2/(byte) line_ydxd::yd#2 ) (byte) line_ydxd::xd#3 ← phi( line_ydxd/(byte) line_ydxd::xd#2 line_ydxd::@2/(byte) line_ydxd::xd#3 ) (byte) line_ydxd::e#3 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) @@ -8131,1353 +6456,20 @@ line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 return to:@return plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 - (byte[]) plot_bit#1 ← phi( line_xdyd::@1/(byte[]) plot_bit#12 line_xdyi::@1/(byte[]) plot_bit#10 line_ydxd::@1/(byte[]) plot_bit#16 line_ydxi::@1/(byte[]) plot_bit#14 ) - (byte[]) plot_ylo#1 ← phi( line_xdyd::@1/(byte[]) plot_ylo#12 line_xdyi::@1/(byte[]) plot_ylo#10 line_ydxd::@1/(byte[]) plot_ylo#16 line_ydxi::@1/(byte[]) plot_ylo#14 ) (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) - (byte[]) plot_yhi#1 ← phi( line_xdyd::@1/(byte[]) plot_yhi#12 line_xdyi::@1/(byte[]) plot_yhi#10 line_ydxd::@1/(byte[]) plot_yhi#16 line_ydxi::@1/(byte[]) plot_yhi#14 ) - (byte[]) plot_xlo#1 ← phi( line_xdyd::@1/(byte[]) plot_xlo#12 line_xdyi::@1/(byte[]) plot_xlo#10 line_ydxd::@1/(byte[]) plot_xlo#16 line_ydxi::@1/(byte[]) plot_xlo#14 ) (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) - (byte[]) plot_xhi#1 ← phi( line_xdyd::@1/(byte[]) plot_xhi#12 line_xdyi::@1/(byte[]) plot_xhi#10 line_ydxd::@1/(byte[]) plot_xhi#16 line_ydxi::@1/(byte[]) plot_xhi#14 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#4 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#4 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#4 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#4 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#4 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#4 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#4 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#4 - (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 - *((byte*) plot::plotter#0) ← (byte~) plot::$6 - to:plot::@return -plot::@return: scope:[plot] from plot - return - to:@return -init_plot_tables: scope:[init_plot_tables] from main::@3 - (byte[]) plot_yhi#41 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_ylo#41 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_bit#7 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_xhi#7 ← phi( main::@3/(byte[]) plot_xhi#17 ) - (byte*) BITMAP#6 ← phi( main::@3/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#7 ← phi( main::@3/(byte[]) plot_xlo#17 ) - (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 - (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 - to:init_plot_tables::@1 -init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#17 ← phi( init_plot_tables/(byte[]) plot_yhi#41 init_plot_tables::@2/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#17 ← phi( init_plot_tables/(byte[]) plot_ylo#41 init_plot_tables::@2/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#18 ← phi( init_plot_tables/(byte[]) plot_bit#7 init_plot_tables::@2/(byte[]) plot_bit#18 ) - (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#18 ← phi( init_plot_tables/(byte[]) plot_xhi#7 init_plot_tables::@2/(byte[]) plot_xhi#18 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#18 ← phi( init_plot_tables/(byte[]) plot_xlo#7 init_plot_tables::@2/(byte[]) plot_xlo#18 ) - (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) - (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#18 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#18 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#18 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 - (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 - (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 - if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 - to:init_plot_tables::@5 -init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 - (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 - if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 - to:init_plot_tables::@6 -init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 - to:init_plot_tables::@2 -init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 - (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 - to:init_plot_tables::@3 -init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#18 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#18 init_plot_tables::@6/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#18 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#18 init_plot_tables::@6/(byte[]) plot_ylo#17 ) - (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) - (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) - (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 - (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 - (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#18 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 - (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#18 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 - (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 - (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 - if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 - to:init_plot_tables::@7 -init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) - (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#2 - (boolean~) init_plot_tables::$14 ← (byte) init_plot_tables::y#1 != (byte/signed byte/word/signed word) 0 - if((boolean~) init_plot_tables::$14) goto init_plot_tables::@3 - to:init_plot_tables::@return -init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (word/signed word) 320 - to:init_plot_tables::@4 -init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 - return - to:@return -init_screen: scope:[init_screen] from main - (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 - to:init_screen::@1 -init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 - (byte*) SCREEN#2 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#2 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) - (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) - *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 - (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 - (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 - if((boolean~) init_screen::$1) goto init_screen::@1 - to:init_screen::@3 -init_screen::@3: scope:[init_screen] from init_screen::@1 - (byte*) init_screen::c#0 ← (byte*) SCREEN#2 - to:init_screen::@2 -init_screen::@2: scope:[init_screen] from init_screen::@2 init_screen::@3 - (byte*) SCREEN#3 ← phi( init_screen::@2/(byte*) SCREEN#3 init_screen::@3/(byte*) SCREEN#2 ) - (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@3/(byte*) init_screen::c#0 ) - *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word) 20 - (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - (byte*~) init_screen::$2 ← (byte*) SCREEN#3 + (word/signed word) 1024 - (boolean~) init_screen::$3 ← (byte*) init_screen::c#1 != (byte*~) init_screen::$2 - if((boolean~) init_screen::$3) goto init_screen::@2 - to:init_screen::@return -init_screen::@return: scope:[init_screen] from init_screen::@2 - return - to:@return -@10: scope:[] from @begin - call main param-assignment - to:@end -@end: scope:[] from @10 - -Not aliassing across scopes: BGCOL#1 BGCOL#0 -Not aliassing across scopes: FGCOL#1 FGCOL#0 -Not aliassing across scopes: BMM#1 BMM#0 -Not aliassing across scopes: DEN#1 DEN#0 -Not aliassing across scopes: RSEL#1 RSEL#0 -Not aliassing across scopes: D011#1 D011#0 -Not aliassing across scopes: SCREEN#1 SCREEN#0 -Not aliassing across scopes: BITMAP#1 BITMAP#0 -Not aliassing across scopes: D018#1 D018#0 -Not aliassing across scopes: plot_xlo#17 plot_xlo#0 -Not aliassing across scopes: plot_xhi#17 plot_xhi#0 -Not aliassing across scopes: plot_bit#17 plot_bit#0 -Not aliassing across scopes: lines_x#5 lines_x#0 -Not aliassing across scopes: lines_y#5 lines_y#0 -Not aliassing across scopes: lines_cnt#5 lines_cnt#0 -Not aliassing across scopes: plot_ylo#44 plot_ylo#0 -Not aliassing across scopes: plot_yhi#44 plot_yhi#0 -Not aliassing across scopes: lines_x#2 lines_x#4 -Not aliassing across scopes: lines_y#2 lines_y#4 -Not aliassing across scopes: lines_cnt#3 lines_cnt#4 -Not aliassing across scopes: plot_xhi#45 plot_xhi#47 -Not aliassing across scopes: plot_xlo#45 plot_xlo#47 -Not aliassing across scopes: plot_yhi#49 plot_yhi#51 -Not aliassing across scopes: plot_ylo#49 plot_ylo#51 -Not aliassing across scopes: plot_bit#45 plot_bit#47 -Not aliassing across scopes: line::x0#0 lines::$0 -Not aliassing across scopes: line::x1#0 lines::$2 -Not aliassing across scopes: line::y0#0 lines::$3 -Not aliassing across scopes: line::y1#0 lines::$5 -Not aliassing across scopes: line::x0#1 line::x0#0 -Not aliassing across scopes: line::x1#1 line::x1#0 -Not aliassing across scopes: line::y0#1 line::y0#0 -Not aliassing across scopes: line::y1#1 line::y1#0 -Not aliassing across scopes: plot_xhi#20 plot_xhi#44 -Not aliassing across scopes: plot_xlo#20 plot_xlo#44 -Not aliassing across scopes: plot_yhi#19 plot_yhi#48 -Not aliassing across scopes: plot_ylo#19 plot_ylo#48 -Not aliassing across scopes: plot_bit#20 plot_bit#44 -Not aliassing across scopes: line_ydxi::y#0 line::y0#1 -Not aliassing across scopes: line_ydxi::x#0 line::x0#1 -Not aliassing across scopes: line_ydxi::y1#0 line::y1#1 -Not aliassing across scopes: line_ydxi::yd#0 line::yd#1 -Not aliassing across scopes: line_ydxi::xd#0 line::xd#1 -Not aliassing across scopes: line_xdyi::x#0 line::x0#1 -Not aliassing across scopes: line_xdyi::y#0 line::y0#1 -Not aliassing across scopes: line_xdyi::x1#0 line::x1#1 -Not aliassing across scopes: line_xdyi::xd#0 line::xd#1 -Not aliassing across scopes: line_xdyi::yd#0 line::yd#1 -Not aliassing across scopes: line_ydxd::y#0 line::y1#1 -Not aliassing across scopes: line_ydxd::x#0 line::x1#1 -Not aliassing across scopes: line_ydxd::y1#0 line::y0#1 -Not aliassing across scopes: line_ydxd::yd#0 line::yd#0 -Not aliassing across scopes: line_ydxd::xd#0 line::xd#1 -Not aliassing across scopes: line_xdyd::x#0 line::x0#1 -Not aliassing across scopes: line_xdyd::y#0 line::y0#1 -Not aliassing across scopes: line_xdyd::x1#0 line::x1#1 -Not aliassing across scopes: line_xdyd::xd#0 line::xd#1 -Not aliassing across scopes: line_xdyd::yd#0 line::yd#0 -Not aliassing across scopes: line_ydxd::y#1 line::y0#1 -Not aliassing across scopes: line_ydxd::x#1 line::x0#1 -Not aliassing across scopes: line_ydxd::y1#1 line::y1#1 -Not aliassing across scopes: line_ydxd::yd#1 line::yd#3 -Not aliassing across scopes: line_ydxd::xd#1 line::xd#0 -Not aliassing across scopes: line_xdyd::x#1 line::x1#1 -Not aliassing across scopes: line_xdyd::y#1 line::y1#1 -Not aliassing across scopes: line_xdyd::x1#1 line::x0#1 -Not aliassing across scopes: line_xdyd::xd#1 line::xd#0 -Not aliassing across scopes: line_xdyd::yd#1 line::yd#3 -Not aliassing across scopes: line_ydxi::y#1 line::y1#1 -Not aliassing across scopes: line_ydxi::x#1 line::x1#1 -Not aliassing across scopes: line_ydxi::y1#1 line::y0#1 -Not aliassing across scopes: line_ydxi::yd#1 line::yd#10 -Not aliassing across scopes: line_ydxi::xd#1 line::xd#0 -Not aliassing across scopes: line_xdyi::x#1 line::x1#1 -Not aliassing across scopes: line_xdyi::y#1 line::y1#1 -Not aliassing across scopes: line_xdyi::x1#1 line::x0#1 -Not aliassing across scopes: line_xdyi::xd#1 line::xd#0 -Not aliassing across scopes: line_xdyi::yd#1 line::yd#10 -Not aliassing across scopes: line_xdyi::yd#2 line_xdyi::yd#0 -Not aliassing across scopes: line_xdyi::x#6 line_xdyi::x#0 -Not aliassing across scopes: line_xdyi::y#5 line_xdyi::y#0 -Not aliassing across scopes: line_xdyi::xd#5 line_xdyi::xd#0 -Not aliassing across scopes: plot_xhi#9 plot_xhi#20 -Not aliassing across scopes: plot_xlo#9 plot_xlo#20 -Not aliassing across scopes: plot_yhi#9 plot_yhi#19 -Not aliassing across scopes: plot_ylo#9 plot_ylo#19 -Not aliassing across scopes: plot_bit#9 plot_bit#20 -Not aliassing across scopes: line_xdyi::x1#6 line_xdyi::x1#0 -Not aliassing across scopes: plot::x#0 line_xdyi::x#3 -Not aliassing across scopes: plot::y#0 line_xdyi::y#3 -Not aliassing across scopes: line_xdyd::yd#2 line_xdyd::yd#0 -Not aliassing across scopes: line_xdyd::x#6 line_xdyd::x#0 -Not aliassing across scopes: line_xdyd::y#5 line_xdyd::y#0 -Not aliassing across scopes: line_xdyd::xd#5 line_xdyd::xd#0 -Not aliassing across scopes: plot_xhi#11 plot_xhi#20 -Not aliassing across scopes: plot_xlo#11 plot_xlo#20 -Not aliassing across scopes: plot_yhi#11 plot_yhi#19 -Not aliassing across scopes: plot_ylo#11 plot_ylo#19 -Not aliassing across scopes: plot_bit#11 plot_bit#20 -Not aliassing across scopes: line_xdyd::x1#6 line_xdyd::x1#0 -Not aliassing across scopes: plot::x#1 line_xdyd::x#3 -Not aliassing across scopes: plot::y#1 line_xdyd::y#3 -Not aliassing across scopes: line_ydxi::xd#2 line_ydxi::xd#1 -Not aliassing across scopes: line_ydxi::x#5 line_ydxi::x#1 -Not aliassing across scopes: line_ydxi::y#6 line_ydxi::y#1 -Not aliassing across scopes: line_ydxi::yd#5 line_ydxi::yd#1 -Not aliassing across scopes: plot_xhi#13 plot_xhi#20 -Not aliassing across scopes: plot_xlo#13 plot_xlo#20 -Not aliassing across scopes: plot_yhi#13 plot_yhi#19 -Not aliassing across scopes: plot_ylo#13 plot_ylo#19 -Not aliassing across scopes: plot_bit#13 plot_bit#20 -Not aliassing across scopes: line_ydxi::y1#6 line_ydxi::y1#1 -Not aliassing across scopes: plot::x#2 line_ydxi::x#3 -Not aliassing across scopes: plot::y#2 line_ydxi::y#3 -Not aliassing across scopes: line_ydxd::xd#2 line_ydxd::xd#1 -Not aliassing across scopes: line_ydxd::x#5 line_ydxd::x#1 -Not aliassing across scopes: line_ydxd::y#6 line_ydxd::y#1 -Not aliassing across scopes: line_ydxd::yd#5 line_ydxd::yd#1 -Not aliassing across scopes: plot_xhi#15 plot_xhi#20 -Not aliassing across scopes: plot_xlo#15 plot_xlo#20 -Not aliassing across scopes: plot_yhi#15 plot_yhi#19 -Not aliassing across scopes: plot_ylo#15 plot_ylo#19 -Not aliassing across scopes: plot_bit#15 plot_bit#20 -Not aliassing across scopes: line_ydxd::y1#6 line_ydxd::y1#1 -Not aliassing across scopes: plot::x#3 line_ydxd::x#3 -Not aliassing across scopes: plot::y#3 line_ydxd::y#3 -Not aliassing across scopes: plot_xhi#1 plot_xhi#12 -Not aliassing across scopes: plot::x#4 plot::x#1 -Not aliassing across scopes: plot_xlo#1 plot_xlo#12 -Not aliassing across scopes: plot_yhi#1 plot_yhi#12 -Not aliassing across scopes: plot::y#4 plot::y#1 -Not aliassing across scopes: plot_ylo#1 plot_ylo#12 -Not aliassing across scopes: plot_bit#1 plot_bit#12 -Not aliassing across scopes: plot_xlo#7 plot_xlo#17 -Not aliassing across scopes: BITMAP#6 BITMAP#1 -Not aliassing across scopes: plot_xhi#7 plot_xhi#17 -Not aliassing across scopes: plot_bit#7 plot_bit#17 -Not aliassing across scopes: plot_ylo#41 plot_ylo#44 -Not aliassing across scopes: plot_yhi#41 plot_yhi#44 -Not aliassing identity: plot_ylo#18 plot_ylo#18 -Not aliassing identity: plot_yhi#18 plot_yhi#18 -Not aliassing across scopes: BITMAP#3 BITMAP#1 -Not aliassing across scopes: SCREEN#6 SCREEN#1 -Not aliassing across scopes: init_screen::b#0 BITMAP#3 -Not aliassing across scopes: init_screen::c#0 SCREEN#2 -Not aliassing identity: SCREEN#3 SCREEN#3 -Self Phi Eliminated (byte[]) lines_x#4 -Self Phi Eliminated (byte[]) lines_y#4 -Self Phi Eliminated (byte) lines_cnt#4 -Self Phi Eliminated (byte[]) plot_xhi#47 -Self Phi Eliminated (byte[]) plot_xlo#47 -Self Phi Eliminated (byte[]) plot_yhi#51 -Self Phi Eliminated (byte[]) plot_ylo#51 -Self Phi Eliminated (byte[]) plot_bit#47 -Self Phi Eliminated (byte[]) lines_x#1 -Self Phi Eliminated (byte[]) lines_y#1 -Self Phi Eliminated (byte) lines_cnt#1 -Self Phi Eliminated (byte[]) plot_xhi#44 -Self Phi Eliminated (byte[]) plot_xlo#44 -Self Phi Eliminated (byte[]) plot_yhi#48 -Self Phi Eliminated (byte[]) plot_ylo#48 -Self Phi Eliminated (byte[]) plot_bit#44 -Self Phi Eliminated (byte) line_xdyi::yd#3 -Self Phi Eliminated (byte) line_xdyi::xd#2 -Self Phi Eliminated (byte[]) plot_xhi#10 -Self Phi Eliminated (byte[]) plot_xlo#10 -Self Phi Eliminated (byte[]) plot_yhi#10 -Self Phi Eliminated (byte[]) plot_ylo#10 -Self Phi Eliminated (byte[]) plot_bit#10 -Self Phi Eliminated (byte) line_xdyi::x1#2 -Self Phi Eliminated (byte) line_xdyd::yd#3 -Self Phi Eliminated (byte) line_xdyd::xd#2 -Self Phi Eliminated (byte[]) plot_xhi#12 -Self Phi Eliminated (byte[]) plot_xlo#12 -Self Phi Eliminated (byte[]) plot_yhi#12 -Self Phi Eliminated (byte[]) plot_ylo#12 -Self Phi Eliminated (byte[]) plot_bit#12 -Self Phi Eliminated (byte) line_xdyd::x1#2 -Self Phi Eliminated (byte) line_ydxi::xd#3 -Self Phi Eliminated (byte) line_ydxi::yd#2 -Self Phi Eliminated (byte[]) plot_xhi#14 -Self Phi Eliminated (byte[]) plot_xlo#14 -Self Phi Eliminated (byte[]) plot_yhi#14 -Self Phi Eliminated (byte[]) plot_ylo#14 -Self Phi Eliminated (byte[]) plot_bit#14 -Self Phi Eliminated (byte) line_ydxi::y1#2 -Self Phi Eliminated (byte) line_ydxd::xd#3 -Self Phi Eliminated (byte) line_ydxd::yd#2 -Self Phi Eliminated (byte[]) plot_xhi#16 -Self Phi Eliminated (byte[]) plot_xlo#16 -Self Phi Eliminated (byte[]) plot_yhi#16 -Self Phi Eliminated (byte[]) plot_ylo#16 -Self Phi Eliminated (byte[]) plot_bit#16 -Self Phi Eliminated (byte) line_ydxd::y1#2 -Self Phi Eliminated (byte[]) plot_xlo#18 -Self Phi Eliminated (byte*) BITMAP#2 -Self Phi Eliminated (byte[]) plot_xhi#18 -Self Phi Eliminated (byte[]) plot_bit#18 -Self Phi Eliminated (byte[]) plot_ylo#17 -Self Phi Eliminated (byte[]) plot_yhi#17 -Self Phi Eliminated (byte[]) plot_ylo#18 -Self Phi Eliminated (byte[]) plot_yhi#18 -Self Phi Eliminated (byte*) BITMAP#4 -Self Phi Eliminated (byte*) SCREEN#2 -Self Phi Eliminated (byte*) SCREEN#3 -Succesful SSA optimization Pass2SelfPhiElimination -CONTROL FLOW GRAPH -@begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word) 53280 - (byte*) FGCOL#0 ← ((byte*)) (word) 53281 - (byte*) D018#0 ← ((byte*)) (word) 53272 - (byte*) D011#0 ← ((byte*)) (word) 53265 - (byte) BMM#0 ← (byte/signed byte/word/signed word) 32 - (byte) DEN#0 ← (byte/signed byte/word/signed word) 16 - (byte) RSEL#0 ← (byte/signed byte/word/signed word) 8 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 - (byte*) BITMAP#0 ← ((byte*)) (word/signed word) 8192 - (byte[]) plot_xlo#0 ← ((byte*)) (word/signed word) 4096 - (byte[]) plot_xhi#0 ← ((byte*)) (word/signed word) 4352 - (byte[]) plot_ylo#0 ← ((byte*)) (word/signed word) 4608 - (byte[]) plot_yhi#0 ← ((byte*)) (word/signed word) 4864 - (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 - (byte[]) lines_x#0 ← { (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 110, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 10, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 60 } - (byte[]) lines_y#0 ← { (byte/signed byte/word/signed word) 10, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 110, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 10 } - (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 - to:@10 -main: scope:[main] from @10 - (byte[]) plot_yhi#44 ← phi( @10/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#44 ← phi( @10/(byte[]) plot_ylo#0 ) - (byte) lines_cnt#5 ← phi( @10/(byte) lines_cnt#0 ) - (byte[]) lines_y#5 ← phi( @10/(byte[]) lines_y#0 ) - (byte[]) lines_x#5 ← phi( @10/(byte[]) lines_x#0 ) - (byte[]) plot_bit#17 ← phi( @10/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#17 ← phi( @10/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#17 ← phi( @10/(byte[]) plot_xlo#0 ) - (byte*) D018#1 ← phi( @10/(byte*) D018#0 ) - (byte*) BITMAP#1 ← phi( @10/(byte*) BITMAP#0 ) - (byte*) SCREEN#1 ← phi( @10/(byte*) SCREEN#0 ) - (byte*) D011#1 ← phi( @10/(byte*) D011#0 ) - (byte) RSEL#1 ← phi( @10/(byte) RSEL#0 ) - (byte) DEN#1 ← phi( @10/(byte) DEN#0 ) - (byte) BMM#1 ← phi( @10/(byte) BMM#0 ) - (byte*) FGCOL#1 ← phi( @10/(byte*) FGCOL#0 ) - (byte*) BGCOL#1 ← phi( @10/(byte*) BGCOL#0 ) - *((byte*) BGCOL#1) ← (byte/signed byte/word/signed word) 0 - *((byte*) FGCOL#1) ← (byte/signed byte/word/signed word) 0 - (byte~) main::$0 ← (byte) BMM#1 | (byte) DEN#1 - (byte~) main::$1 ← (byte~) main::$0 | (byte) RSEL#1 - (byte~) main::$2 ← (byte~) main::$1 | (byte/signed byte/word/signed word) 3 - *((byte*) D011#1) ← (byte~) main::$2 - (word~) main::$3 ← ((word)) (byte*) SCREEN#1 - (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 - (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 - (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 - (byte~) main::$8 ← ((byte)) (word~) main::$7 - *((byte*) D018#1) ← (byte~) main::$8 - call init_screen param-assignment - to:main::@3 -main::@3: scope:[main] from main - call init_plot_tables param-assignment - to:main::@4 -main::@4: scope:[main] from main::@3 - to:main::@1 -main::@1: scope:[main] from main::@4 main::@5 - (byte[]) plot_bit#47 ← phi( main::@4/(byte[]) plot_bit#17 ) - (byte[]) plot_ylo#51 ← phi( main::@4/(byte[]) plot_ylo#44 ) - (byte[]) plot_yhi#51 ← phi( main::@4/(byte[]) plot_yhi#44 ) - (byte[]) plot_xlo#47 ← phi( main::@4/(byte[]) plot_xlo#17 ) - (byte[]) plot_xhi#47 ← phi( main::@4/(byte[]) plot_xhi#17 ) - (byte) lines_cnt#4 ← phi( main::@4/(byte) lines_cnt#5 ) - (byte[]) lines_y#4 ← phi( main::@4/(byte[]) lines_y#5 ) - (byte[]) lines_x#4 ← phi( main::@4/(byte[]) lines_x#5 ) - call lines param-assignment - to:main::@5 -main::@5: scope:[main] from main::@1 - if(true) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@5 - return - to:@return -lines: scope:[lines] from main::@1 - (byte[]) plot_bit#45 ← phi( main::@1/(byte[]) plot_bit#47 ) - (byte[]) plot_ylo#49 ← phi( main::@1/(byte[]) plot_ylo#51 ) - (byte[]) plot_yhi#49 ← phi( main::@1/(byte[]) plot_yhi#51 ) - (byte[]) plot_xlo#45 ← phi( main::@1/(byte[]) plot_xlo#47 ) - (byte[]) plot_xhi#45 ← phi( main::@1/(byte[]) plot_xhi#47 ) - (byte) lines_cnt#3 ← phi( main::@1/(byte) lines_cnt#4 ) - (byte[]) lines_y#2 ← phi( main::@1/(byte[]) lines_y#4 ) - (byte[]) lines_x#2 ← phi( main::@1/(byte[]) lines_x#4 ) - (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 - to:lines::@1 -lines::@1: scope:[lines] from lines lines::@3 - (byte[]) plot_bit#44 ← phi( lines/(byte[]) plot_bit#45 ) - (byte[]) plot_ylo#48 ← phi( lines/(byte[]) plot_ylo#49 ) - (byte[]) plot_yhi#48 ← phi( lines/(byte[]) plot_yhi#49 ) - (byte[]) plot_xlo#44 ← phi( lines/(byte[]) plot_xlo#45 ) - (byte[]) plot_xhi#44 ← phi( lines/(byte[]) plot_xhi#45 ) - (byte) lines_cnt#1 ← phi( lines/(byte) lines_cnt#3 ) - (byte[]) lines_y#1 ← phi( lines/(byte[]) lines_y#2 ) - (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) - (byte[]) lines_x#1 ← phi( lines/(byte[]) lines_x#2 ) - (byte~) lines::$0 ← (byte[]) lines_x#1 *idx (byte) lines::l#2 - (byte~) lines::$1 ← (byte) lines::l#2 + (byte/signed byte/word/signed word) 1 - (byte~) lines::$2 ← (byte[]) lines_x#1 *idx (byte~) lines::$1 - (byte~) lines::$3 ← (byte[]) lines_y#1 *idx (byte) lines::l#2 - (byte~) lines::$4 ← (byte) lines::l#2 + (byte/signed byte/word/signed word) 1 - (byte~) lines::$5 ← (byte[]) lines_y#1 *idx (byte~) lines::$4 - (byte) line::x0#0 ← (byte~) lines::$0 - (byte) line::x1#0 ← (byte~) lines::$2 - (byte) line::y0#0 ← (byte~) lines::$3 - (byte) line::y1#0 ← (byte~) lines::$5 - call line param-assignment - to:lines::@3 -lines::@3: scope:[lines] from lines::@1 - (byte) lines::l#1 ← ++ (byte) lines::l#2 - (boolean~) lines::$7 ← (byte) lines::l#1 < (byte) lines_cnt#1 - if((boolean~) lines::$7) goto lines::@1 - to:lines::@return -lines::@return: scope:[lines] from lines::@3 - return - to:@return -line: scope:[line] from lines::@1 - (byte[]) plot_bit#20 ← phi( lines::@1/(byte[]) plot_bit#44 ) - (byte[]) plot_ylo#19 ← phi( lines::@1/(byte[]) plot_ylo#48 ) - (byte[]) plot_yhi#19 ← phi( lines::@1/(byte[]) plot_yhi#48 ) - (byte[]) plot_xlo#20 ← phi( lines::@1/(byte[]) plot_xlo#44 ) - (byte[]) plot_xhi#20 ← phi( lines::@1/(byte[]) plot_xhi#44 ) - (byte) line::y1#1 ← phi( lines::@1/(byte) line::y1#0 ) - (byte) line::y0#1 ← phi( lines::@1/(byte) line::y0#0 ) - (byte) line::x1#1 ← phi( lines::@1/(byte) line::x1#0 ) - (byte) line::x0#1 ← phi( lines::@1/(byte) line::x0#0 ) - (boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1 - if((boolean~) line::$1) goto line::@1 - to:line::@15 -line::@1: scope:[line] from line - (byte) line::xd#0 ← (byte) line::x0#1 - (byte) line::x1#1 - (boolean~) line::$17 ← (byte) line::y0#1 >= (byte) line::y1#1 - if((boolean~) line::$17) goto line::@9 - to:line::@23 -line::@15: scope:[line] from line - (byte) line::xd#1 ← (byte) line::x1#1 - (byte) line::x0#1 - (boolean~) line::$4 ← (byte) line::y0#1 >= (byte) line::y1#1 - if((boolean~) line::$4) goto line::@2 - to:line::@16 -line::@2: scope:[line] from line::@15 - (byte) line::yd#0 ← (byte) line::y0#1 - (byte) line::y1#1 - (boolean~) line::$12 ← (byte) line::yd#0 >= (byte) line::xd#1 - if((boolean~) line::$12) goto line::@6 - to:line::@20 -line::@16: scope:[line] from line::@15 - (byte) line::yd#1 ← (byte) line::y1#1 - (byte) line::y0#1 - (boolean~) line::$7 ← (byte) line::yd#1 >= (byte) line::xd#1 - if((boolean~) line::$7) goto line::@3 - to:line::@17 -line::@3: scope:[line] from line::@16 - (byte) line_ydxi::y#0 ← (byte) line::y0#1 - (byte) line_ydxi::x#0 ← (byte) line::x0#1 - (byte) line_ydxi::y1#0 ← (byte) line::y1#1 - (byte) line_ydxi::yd#0 ← (byte) line::yd#1 - (byte) line_ydxi::xd#0 ← (byte) line::xd#1 - call line_ydxi param-assignment - to:line::@return -line::@17: scope:[line] from line::@16 - (byte) line_xdyi::x#0 ← (byte) line::x0#1 - (byte) line_xdyi::y#0 ← (byte) line::y0#1 - (byte) line_xdyi::x1#0 ← (byte) line::x1#1 - (byte) line_xdyi::xd#0 ← (byte) line::xd#1 - (byte) line_xdyi::yd#0 ← (byte) line::yd#1 - call line_xdyi param-assignment - to:line::@return -line::@6: scope:[line] from line::@2 - (byte) line_ydxd::y#0 ← (byte) line::y1#1 - (byte) line_ydxd::x#0 ← (byte) line::x1#1 - (byte) line_ydxd::y1#0 ← (byte) line::y0#1 - (byte) line_ydxd::yd#0 ← (byte) line::yd#0 - (byte) line_ydxd::xd#0 ← (byte) line::xd#1 - call line_ydxd param-assignment - to:line::@return -line::@20: scope:[line] from line::@2 - (byte) line_xdyd::x#0 ← (byte) line::x0#1 - (byte) line_xdyd::y#0 ← (byte) line::y0#1 - (byte) line_xdyd::x1#0 ← (byte) line::x1#1 - (byte) line_xdyd::xd#0 ← (byte) line::xd#1 - (byte) line_xdyd::yd#0 ← (byte) line::yd#0 - call line_xdyd param-assignment - to:line::@return -line::@9: scope:[line] from line::@1 - (byte) line::yd#10 ← (byte) line::y0#1 - (byte) line::y1#1 - (boolean~) line::$25 ← (byte) line::yd#10 >= (byte) line::xd#0 - if((boolean~) line::$25) goto line::@13 - to:line::@27 -line::@23: scope:[line] from line::@1 - (byte) line::yd#3 ← (byte) line::y1#1 - (byte) line::y0#1 - (boolean~) line::$20 ← (byte) line::yd#3 >= (byte) line::xd#0 - if((boolean~) line::$20) goto line::@10 - to:line::@24 -line::@10: scope:[line] from line::@23 - (byte) line_ydxd::y#1 ← (byte) line::y0#1 - (byte) line_ydxd::x#1 ← (byte) line::x0#1 - (byte) line_ydxd::y1#1 ← (byte) line::y1#1 - (byte) line_ydxd::yd#1 ← (byte) line::yd#3 - (byte) line_ydxd::xd#1 ← (byte) line::xd#0 - call line_ydxd param-assignment - to:line::@return -line::@24: scope:[line] from line::@23 - (byte) line_xdyd::x#1 ← (byte) line::x1#1 - (byte) line_xdyd::y#1 ← (byte) line::y1#1 - (byte) line_xdyd::x1#1 ← (byte) line::x0#1 - (byte) line_xdyd::xd#1 ← (byte) line::xd#0 - (byte) line_xdyd::yd#1 ← (byte) line::yd#3 - call line_xdyd param-assignment - to:line::@return -line::@13: scope:[line] from line::@9 - (byte) line_ydxi::y#1 ← (byte) line::y1#1 - (byte) line_ydxi::x#1 ← (byte) line::x1#1 - (byte) line_ydxi::y1#1 ← (byte) line::y0#1 - (byte) line_ydxi::yd#1 ← (byte) line::yd#10 - (byte) line_ydxi::xd#1 ← (byte) line::xd#0 - call line_ydxi param-assignment - to:line::@return -line::@27: scope:[line] from line::@9 - (byte) line_xdyi::x#1 ← (byte) line::x1#1 - (byte) line_xdyi::y#1 ← (byte) line::y1#1 - (byte) line_xdyi::x1#1 ← (byte) line::x0#1 - (byte) line_xdyi::xd#1 ← (byte) line::xd#0 - (byte) line_xdyi::yd#1 ← (byte) line::yd#10 - call line_xdyi param-assignment - to:line::@return -line::@return: scope:[line] from line::@10 line::@13 line::@17 line::@20 line::@24 line::@27 line::@3 line::@6 - return - to:@return -line_xdyi: scope:[line_xdyi] from line::@17 line::@27 - (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) - (byte[]) plot_bit#9 ← phi( line::@17/(byte[]) plot_bit#20 line::@27/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#9 ← phi( line::@17/(byte[]) plot_ylo#19 line::@27/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#9 ← phi( line::@17/(byte[]) plot_yhi#19 line::@27/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#9 ← phi( line::@17/(byte[]) plot_xlo#20 line::@27/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#9 ← phi( line::@17/(byte[]) plot_xhi#20 line::@27/(byte[]) plot_xhi#20 ) - (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) - (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) - (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) - (byte) line_xdyi::yd#2 ← phi( line::@17/(byte) line_xdyi::yd#0 line::@27/(byte) line_xdyi::yd#1 ) - (byte) line_xdyi::e#0 ← (byte) line_xdyi::yd#2 >> (byte/signed byte/word/signed word) 1 - to:line_xdyi::@1 -line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 - (byte) line_xdyi::x1#2 ← phi( line_xdyi/(byte) line_xdyi::x1#6 ) - (byte[]) plot_bit#10 ← phi( line_xdyi/(byte[]) plot_bit#9 ) - (byte[]) plot_ylo#10 ← phi( line_xdyi/(byte[]) plot_ylo#9 ) - (byte[]) plot_yhi#10 ← phi( line_xdyi/(byte[]) plot_yhi#9 ) - (byte[]) plot_xlo#10 ← phi( line_xdyi/(byte[]) plot_xlo#9 ) - (byte[]) plot_xhi#10 ← phi( line_xdyi/(byte[]) plot_xhi#9 ) - (byte) line_xdyi::xd#2 ← phi( line_xdyi/(byte) line_xdyi::xd#5 ) - (byte) line_xdyi::yd#3 ← phi( line_xdyi/(byte) line_xdyi::yd#2 ) - (byte) line_xdyi::e#3 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) - (byte) line_xdyi::y#3 ← phi( line_xdyi/(byte) line_xdyi::y#5 line_xdyi::@2/(byte) line_xdyi::y#6 ) - (byte) line_xdyi::x#3 ← phi( line_xdyi/(byte) line_xdyi::x#6 line_xdyi::@2/(byte) line_xdyi::x#2 ) - (byte) plot::x#0 ← (byte) line_xdyi::x#3 - (byte) plot::y#0 ← (byte) line_xdyi::y#3 - call plot param-assignment - to:line_xdyi::@5 -line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 - (byte) line_xdyi::x#2 ← (byte) line_xdyi::x#3 + (byte/signed byte/word/signed word) 1 - (byte) line_xdyi::e#1 ← (byte) line_xdyi::e#3 + (byte) line_xdyi::yd#3 - (boolean~) line_xdyi::$5 ← (byte) line_xdyi::xd#2 >= (byte) line_xdyi::e#1 - if((boolean~) line_xdyi::$5) goto line_xdyi::@2 - to:line_xdyi::@3 -line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 - (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) - (byte) line_xdyi::y#6 ← phi( line_xdyi::@3/(byte) line_xdyi::y#2 line_xdyi::@5/(byte) line_xdyi::y#3 ) - (byte~) line_xdyi::$8 ← (byte) line_xdyi::x1#2 + (byte/signed byte/word/signed word) 1 - (boolean~) line_xdyi::$9 ← (byte) line_xdyi::x#2 < (byte~) line_xdyi::$8 - if((boolean~) line_xdyi::$9) goto line_xdyi::@1 - to:line_xdyi::@return -line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5 - (byte) line_xdyi::y#2 ← (byte) line_xdyi::y#3 + (byte/signed byte/word/signed word) 1 - (byte) line_xdyi::e#2 ← (byte) line_xdyi::e#1 - (byte) line_xdyi::xd#2 - to:line_xdyi::@2 -line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 - return - to:@return -line_xdyd: scope:[line_xdyd] from line::@20 line::@24 - (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) - (byte[]) plot_bit#11 ← phi( line::@20/(byte[]) plot_bit#20 line::@24/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#11 ← phi( line::@20/(byte[]) plot_ylo#19 line::@24/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#11 ← phi( line::@20/(byte[]) plot_yhi#19 line::@24/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#11 ← phi( line::@20/(byte[]) plot_xlo#20 line::@24/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#11 ← phi( line::@20/(byte[]) plot_xhi#20 line::@24/(byte[]) plot_xhi#20 ) - (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) - (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) - (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) - (byte) line_xdyd::yd#2 ← phi( line::@20/(byte) line_xdyd::yd#0 line::@24/(byte) line_xdyd::yd#1 ) - (byte) line_xdyd::e#0 ← (byte) line_xdyd::yd#2 >> (byte/signed byte/word/signed word) 1 - to:line_xdyd::@1 -line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 - (byte) line_xdyd::x1#2 ← phi( line_xdyd/(byte) line_xdyd::x1#6 ) - (byte[]) plot_bit#12 ← phi( line_xdyd/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#12 ← phi( line_xdyd/(byte[]) plot_ylo#11 ) - (byte[]) plot_yhi#12 ← phi( line_xdyd/(byte[]) plot_yhi#11 ) - (byte[]) plot_xlo#12 ← phi( line_xdyd/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#12 ← phi( line_xdyd/(byte[]) plot_xhi#11 ) - (byte) line_xdyd::xd#2 ← phi( line_xdyd/(byte) line_xdyd::xd#5 ) - (byte) line_xdyd::yd#3 ← phi( line_xdyd/(byte) line_xdyd::yd#2 ) - (byte) line_xdyd::e#3 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) - (byte) line_xdyd::y#3 ← phi( line_xdyd/(byte) line_xdyd::y#5 line_xdyd::@2/(byte) line_xdyd::y#6 ) - (byte) line_xdyd::x#3 ← phi( line_xdyd/(byte) line_xdyd::x#6 line_xdyd::@2/(byte) line_xdyd::x#2 ) - (byte) plot::x#1 ← (byte) line_xdyd::x#3 - (byte) plot::y#1 ← (byte) line_xdyd::y#3 - call plot param-assignment - to:line_xdyd::@5 -line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 - (byte) line_xdyd::x#2 ← (byte) line_xdyd::x#3 + (byte/signed byte/word/signed word) 1 - (byte) line_xdyd::e#1 ← (byte) line_xdyd::e#3 + (byte) line_xdyd::yd#3 - (boolean~) line_xdyd::$5 ← (byte) line_xdyd::xd#2 >= (byte) line_xdyd::e#1 - if((boolean~) line_xdyd::$5) goto line_xdyd::@2 - to:line_xdyd::@3 -line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 - (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) - (byte) line_xdyd::y#6 ← phi( line_xdyd::@3/(byte) line_xdyd::y#2 line_xdyd::@5/(byte) line_xdyd::y#3 ) - (byte~) line_xdyd::$8 ← (byte) line_xdyd::x1#2 + (byte/signed byte/word/signed word) 1 - (boolean~) line_xdyd::$9 ← (byte) line_xdyd::x#2 < (byte~) line_xdyd::$8 - if((boolean~) line_xdyd::$9) goto line_xdyd::@1 - to:line_xdyd::@return -line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5 - (byte) line_xdyd::y#2 ← (byte) line_xdyd::y#3 - (byte/signed byte/word/signed word) 1 - (byte) line_xdyd::e#2 ← (byte) line_xdyd::e#1 - (byte) line_xdyd::xd#2 - to:line_xdyd::@2 -line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 - return - to:@return -line_ydxi: scope:[line_ydxi] from line::@13 line::@3 - (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) - (byte[]) plot_bit#13 ← phi( line::@13/(byte[]) plot_bit#20 line::@3/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#13 ← phi( line::@13/(byte[]) plot_ylo#19 line::@3/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#13 ← phi( line::@13/(byte[]) plot_yhi#19 line::@3/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#13 ← phi( line::@13/(byte[]) plot_xlo#20 line::@3/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#13 ← phi( line::@13/(byte[]) plot_xhi#20 line::@3/(byte[]) plot_xhi#20 ) - (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) - (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) - (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) - (byte) line_ydxi::xd#2 ← phi( line::@13/(byte) line_ydxi::xd#1 line::@3/(byte) line_ydxi::xd#0 ) - (byte) line_ydxi::e#0 ← (byte) line_ydxi::xd#2 >> (byte/signed byte/word/signed word) 1 - to:line_ydxi::@1 -line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 - (byte) line_ydxi::y1#2 ← phi( line_ydxi/(byte) line_ydxi::y1#6 ) - (byte[]) plot_bit#14 ← phi( line_ydxi/(byte[]) plot_bit#13 ) - (byte[]) plot_ylo#14 ← phi( line_ydxi/(byte[]) plot_ylo#13 ) - (byte[]) plot_yhi#14 ← phi( line_ydxi/(byte[]) plot_yhi#13 ) - (byte[]) plot_xlo#14 ← phi( line_ydxi/(byte[]) plot_xlo#13 ) - (byte[]) plot_xhi#14 ← phi( line_ydxi/(byte[]) plot_xhi#13 ) - (byte) line_ydxi::yd#2 ← phi( line_ydxi/(byte) line_ydxi::yd#5 ) - (byte) line_ydxi::xd#3 ← phi( line_ydxi/(byte) line_ydxi::xd#2 ) - (byte) line_ydxi::e#3 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) - (byte) line_ydxi::y#3 ← phi( line_ydxi/(byte) line_ydxi::y#6 line_ydxi::@2/(byte) line_ydxi::y#2 ) - (byte) line_ydxi::x#3 ← phi( line_ydxi/(byte) line_ydxi::x#5 line_ydxi::@2/(byte) line_ydxi::x#6 ) - (byte) plot::x#2 ← (byte) line_ydxi::x#3 - (byte) plot::y#2 ← (byte) line_ydxi::y#3 - call plot param-assignment - to:line_ydxi::@5 -line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 - (byte) line_ydxi::y#2 ← (byte) line_ydxi::y#3 + (byte/signed byte/word/signed word) 1 - (byte) line_ydxi::e#1 ← (byte) line_ydxi::e#3 + (byte) line_ydxi::xd#3 - (boolean~) line_ydxi::$5 ← (byte) line_ydxi::yd#2 >= (byte) line_ydxi::e#1 - if((boolean~) line_ydxi::$5) goto line_ydxi::@2 - to:line_ydxi::@3 -line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 - (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) - (byte) line_ydxi::x#6 ← phi( line_ydxi::@3/(byte) line_ydxi::x#2 line_ydxi::@5/(byte) line_ydxi::x#3 ) - (byte~) line_ydxi::$8 ← (byte) line_ydxi::y1#2 + (byte/signed byte/word/signed word) 1 - (boolean~) line_ydxi::$9 ← (byte) line_ydxi::y#2 < (byte~) line_ydxi::$8 - if((boolean~) line_ydxi::$9) goto line_ydxi::@1 - to:line_ydxi::@return -line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5 - (byte) line_ydxi::x#2 ← (byte) line_ydxi::x#3 + (byte/signed byte/word/signed word) 1 - (byte) line_ydxi::e#2 ← (byte) line_ydxi::e#1 - (byte) line_ydxi::yd#2 - to:line_ydxi::@2 -line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 - return - to:@return -line_ydxd: scope:[line_ydxd] from line::@10 line::@6 - (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) - (byte[]) plot_bit#15 ← phi( line::@10/(byte[]) plot_bit#20 line::@6/(byte[]) plot_bit#20 ) - (byte[]) plot_ylo#15 ← phi( line::@10/(byte[]) plot_ylo#19 line::@6/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#15 ← phi( line::@10/(byte[]) plot_yhi#19 line::@6/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#15 ← phi( line::@10/(byte[]) plot_xlo#20 line::@6/(byte[]) plot_xlo#20 ) - (byte[]) plot_xhi#15 ← phi( line::@10/(byte[]) plot_xhi#20 line::@6/(byte[]) plot_xhi#20 ) - (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) - (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) - (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) - (byte) line_ydxd::xd#2 ← phi( line::@10/(byte) line_ydxd::xd#1 line::@6/(byte) line_ydxd::xd#0 ) - (byte) line_ydxd::e#0 ← (byte) line_ydxd::xd#2 >> (byte/signed byte/word/signed word) 1 - to:line_ydxd::@1 -line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 - (byte) line_ydxd::y1#2 ← phi( line_ydxd/(byte) line_ydxd::y1#6 ) - (byte[]) plot_bit#16 ← phi( line_ydxd/(byte[]) plot_bit#15 ) - (byte[]) plot_ylo#16 ← phi( line_ydxd/(byte[]) plot_ylo#15 ) - (byte[]) plot_yhi#16 ← phi( line_ydxd/(byte[]) plot_yhi#15 ) - (byte[]) plot_xlo#16 ← phi( line_ydxd/(byte[]) plot_xlo#15 ) - (byte[]) plot_xhi#16 ← phi( line_ydxd/(byte[]) plot_xhi#15 ) - (byte) line_ydxd::yd#2 ← phi( line_ydxd/(byte) line_ydxd::yd#5 ) - (byte) line_ydxd::xd#3 ← phi( line_ydxd/(byte) line_ydxd::xd#2 ) - (byte) line_ydxd::e#3 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) - (byte) line_ydxd::y#3 ← phi( line_ydxd/(byte) line_ydxd::y#6 line_ydxd::@2/(byte) line_ydxd::y#2 ) - (byte) line_ydxd::x#3 ← phi( line_ydxd/(byte) line_ydxd::x#5 line_ydxd::@2/(byte) line_ydxd::x#6 ) - (byte) plot::x#3 ← (byte) line_ydxd::x#3 - (byte) plot::y#3 ← (byte) line_ydxd::y#3 - call plot param-assignment - to:line_ydxd::@5 -line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 - (byte) line_ydxd::y#2 ← (byte) line_ydxd::y#3 + (byte/signed byte/word/signed word) 1 - (byte) line_ydxd::e#1 ← (byte) line_ydxd::e#3 + (byte) line_ydxd::xd#3 - (boolean~) line_ydxd::$5 ← (byte) line_ydxd::yd#2 >= (byte) line_ydxd::e#1 - if((boolean~) line_ydxd::$5) goto line_ydxd::@2 - to:line_ydxd::@3 -line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 - (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) - (byte) line_ydxd::x#6 ← phi( line_ydxd::@3/(byte) line_ydxd::x#2 line_ydxd::@5/(byte) line_ydxd::x#3 ) - (byte~) line_ydxd::$8 ← (byte) line_ydxd::y1#2 + (byte/signed byte/word/signed word) 1 - (boolean~) line_ydxd::$9 ← (byte) line_ydxd::y#2 < (byte~) line_ydxd::$8 - if((boolean~) line_ydxd::$9) goto line_ydxd::@1 - to:line_ydxd::@return -line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5 - (byte) line_ydxd::x#2 ← (byte) line_ydxd::x#3 - (byte/signed byte/word/signed word) 1 - (byte) line_ydxd::e#2 ← (byte) line_ydxd::e#1 - (byte) line_ydxd::yd#2 - to:line_ydxd::@2 -line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 - return - to:@return -plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 - (byte[]) plot_bit#1 ← phi( line_xdyd::@1/(byte[]) plot_bit#12 line_xdyi::@1/(byte[]) plot_bit#10 line_ydxd::@1/(byte[]) plot_bit#16 line_ydxi::@1/(byte[]) plot_bit#14 ) - (byte[]) plot_ylo#1 ← phi( line_xdyd::@1/(byte[]) plot_ylo#12 line_xdyi::@1/(byte[]) plot_ylo#10 line_ydxd::@1/(byte[]) plot_ylo#16 line_ydxi::@1/(byte[]) plot_ylo#14 ) - (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) - (byte[]) plot_yhi#1 ← phi( line_xdyd::@1/(byte[]) plot_yhi#12 line_xdyi::@1/(byte[]) plot_yhi#10 line_ydxd::@1/(byte[]) plot_yhi#16 line_ydxi::@1/(byte[]) plot_yhi#14 ) - (byte[]) plot_xlo#1 ← phi( line_xdyd::@1/(byte[]) plot_xlo#12 line_xdyi::@1/(byte[]) plot_xlo#10 line_ydxd::@1/(byte[]) plot_xlo#16 line_ydxi::@1/(byte[]) plot_xlo#14 ) - (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) - (byte[]) plot_xhi#1 ← phi( line_xdyd::@1/(byte[]) plot_xhi#12 line_xdyi::@1/(byte[]) plot_xhi#10 line_ydxd::@1/(byte[]) plot_xhi#16 line_ydxi::@1/(byte[]) plot_xhi#14 ) - (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 - (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#4 - (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#4 - (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#4 - (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#4 - (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 - (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#4 - (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 - *((byte*) plot::plotter#0) ← (byte~) plot::$6 - to:plot::@return -plot::@return: scope:[plot] from plot - return - to:@return -init_plot_tables: scope:[init_plot_tables] from main::@3 - (byte[]) plot_yhi#41 ← phi( main::@3/(byte[]) plot_yhi#44 ) - (byte[]) plot_ylo#41 ← phi( main::@3/(byte[]) plot_ylo#44 ) - (byte[]) plot_bit#7 ← phi( main::@3/(byte[]) plot_bit#17 ) - (byte[]) plot_xhi#7 ← phi( main::@3/(byte[]) plot_xhi#17 ) - (byte*) BITMAP#6 ← phi( main::@3/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#7 ← phi( main::@3/(byte[]) plot_xlo#17 ) - (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 - (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 - to:init_plot_tables::@1 -init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#17 ← phi( init_plot_tables/(byte[]) plot_yhi#41 ) - (byte[]) plot_ylo#17 ← phi( init_plot_tables/(byte[]) plot_ylo#41 ) - (byte[]) plot_bit#18 ← phi( init_plot_tables/(byte[]) plot_bit#7 ) - (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#18 ← phi( init_plot_tables/(byte[]) plot_xhi#7 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 ) - (byte[]) plot_xlo#18 ← phi( init_plot_tables/(byte[]) plot_xlo#7 ) - (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) - (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#18 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#18 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#18 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 - (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 - (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 - if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 - to:init_plot_tables::@5 -init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 - (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 - if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 - to:init_plot_tables::@6 -init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 - to:init_plot_tables::@2 -init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 - (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 - to:init_plot_tables::@3 -init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#18 ← phi( init_plot_tables::@6/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#18 ← phi( init_plot_tables::@6/(byte[]) plot_ylo#17 ) - (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) - (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) - (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 - (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 - (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#18 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 - (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#18 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 - (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 - (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 - if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 - to:init_plot_tables::@7 -init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) - (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#2 - (boolean~) init_plot_tables::$14 ← (byte) init_plot_tables::y#1 != (byte/signed byte/word/signed word) 0 - if((boolean~) init_plot_tables::$14) goto init_plot_tables::@3 - to:init_plot_tables::@return -init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (word/signed word) 320 - to:init_plot_tables::@4 -init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 - return - to:@return -init_screen: scope:[init_screen] from main - (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 - to:init_screen::@1 -init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 - (byte*) SCREEN#2 ← phi( init_screen/(byte*) SCREEN#6 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 ) - (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) - *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 - (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 - (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 - if((boolean~) init_screen::$1) goto init_screen::@1 - to:init_screen::@3 -init_screen::@3: scope:[init_screen] from init_screen::@1 - (byte*) init_screen::c#0 ← (byte*) SCREEN#2 - to:init_screen::@2 -init_screen::@2: scope:[init_screen] from init_screen::@2 init_screen::@3 - (byte*) SCREEN#3 ← phi( init_screen::@3/(byte*) SCREEN#2 ) - (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@3/(byte*) init_screen::c#0 ) - *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word) 20 - (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - (byte*~) init_screen::$2 ← (byte*) SCREEN#3 + (word/signed word) 1024 - (boolean~) init_screen::$3 ← (byte*) init_screen::c#1 != (byte*~) init_screen::$2 - if((boolean~) init_screen::$3) goto init_screen::@2 - to:init_screen::@return -init_screen::@return: scope:[init_screen] from init_screen::@2 - return - to:@return -@10: scope:[] from @begin - call main param-assignment - to:@end -@end: scope:[] from @10 - -Redundant Phi (byte*) BGCOL#1 (byte*) BGCOL#0 -Redundant Phi (byte*) FGCOL#1 (byte*) FGCOL#0 -Redundant Phi (byte) BMM#1 (byte) BMM#0 -Redundant Phi (byte) DEN#1 (byte) DEN#0 -Redundant Phi (byte) RSEL#1 (byte) RSEL#0 -Redundant Phi (byte*) D011#1 (byte*) D011#0 -Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0 -Redundant Phi (byte*) BITMAP#1 (byte*) BITMAP#0 -Redundant Phi (byte*) D018#1 (byte*) D018#0 -Redundant Phi (byte[]) plot_xlo#17 (byte[]) plot_xlo#0 -Redundant Phi (byte[]) plot_xhi#17 (byte[]) plot_xhi#0 -Redundant Phi (byte[]) plot_bit#17 (byte[]) plot_bit#0 -Redundant Phi (byte[]) lines_x#5 (byte[]) lines_x#0 -Redundant Phi (byte[]) lines_y#5 (byte[]) lines_y#0 -Redundant Phi (byte) lines_cnt#5 (byte) lines_cnt#0 -Redundant Phi (byte[]) plot_ylo#44 (byte[]) plot_ylo#0 -Redundant Phi (byte[]) plot_yhi#44 (byte[]) plot_yhi#0 -Redundant Phi (byte[]) lines_x#4 (byte[]) lines_x#5 -Redundant Phi (byte[]) lines_y#4 (byte[]) lines_y#5 -Redundant Phi (byte) lines_cnt#4 (byte) lines_cnt#5 -Redundant Phi (byte[]) plot_xhi#47 (byte[]) plot_xhi#17 -Redundant Phi (byte[]) plot_xlo#47 (byte[]) plot_xlo#17 -Redundant Phi (byte[]) plot_yhi#51 (byte[]) plot_yhi#44 -Redundant Phi (byte[]) plot_ylo#51 (byte[]) plot_ylo#44 -Redundant Phi (byte[]) plot_bit#47 (byte[]) plot_bit#17 -Redundant Phi (byte[]) lines_x#2 (byte[]) lines_x#4 -Redundant Phi (byte[]) lines_y#2 (byte[]) lines_y#4 -Redundant Phi (byte) lines_cnt#3 (byte) lines_cnt#4 -Redundant Phi (byte[]) plot_xhi#45 (byte[]) plot_xhi#47 -Redundant Phi (byte[]) plot_xlo#45 (byte[]) plot_xlo#47 -Redundant Phi (byte[]) plot_yhi#49 (byte[]) plot_yhi#51 -Redundant Phi (byte[]) plot_ylo#49 (byte[]) plot_ylo#51 -Redundant Phi (byte[]) plot_bit#45 (byte[]) plot_bit#47 -Redundant Phi (byte[]) lines_x#1 (byte[]) lines_x#2 -Redundant Phi (byte[]) lines_y#1 (byte[]) lines_y#2 -Redundant Phi (byte) lines_cnt#1 (byte) lines_cnt#3 -Redundant Phi (byte[]) plot_xhi#44 (byte[]) plot_xhi#45 -Redundant Phi (byte[]) plot_xlo#44 (byte[]) plot_xlo#45 -Redundant Phi (byte[]) plot_yhi#48 (byte[]) plot_yhi#49 -Redundant Phi (byte[]) plot_ylo#48 (byte[]) plot_ylo#49 -Redundant Phi (byte[]) plot_bit#44 (byte[]) plot_bit#45 -Redundant Phi (byte) line::x0#1 (byte) line::x0#0 -Redundant Phi (byte) line::x1#1 (byte) line::x1#0 -Redundant Phi (byte) line::y0#1 (byte) line::y0#0 -Redundant Phi (byte) line::y1#1 (byte) line::y1#0 -Redundant Phi (byte[]) plot_xhi#20 (byte[]) plot_xhi#44 -Redundant Phi (byte[]) plot_xlo#20 (byte[]) plot_xlo#44 -Redundant Phi (byte[]) plot_yhi#19 (byte[]) plot_yhi#48 -Redundant Phi (byte[]) plot_ylo#19 (byte[]) plot_ylo#48 -Redundant Phi (byte[]) plot_bit#20 (byte[]) plot_bit#44 -Redundant Phi (byte[]) plot_xhi#9 (byte[]) plot_xhi#20 -Redundant Phi (byte[]) plot_xlo#9 (byte[]) plot_xlo#20 -Redundant Phi (byte[]) plot_yhi#9 (byte[]) plot_yhi#19 -Redundant Phi (byte[]) plot_ylo#9 (byte[]) plot_ylo#19 -Redundant Phi (byte[]) plot_bit#9 (byte[]) plot_bit#20 -Redundant Phi (byte) line_xdyi::yd#3 (byte) line_xdyi::yd#2 -Redundant Phi (byte) line_xdyi::xd#2 (byte) line_xdyi::xd#5 -Redundant Phi (byte[]) plot_xhi#10 (byte[]) plot_xhi#9 -Redundant Phi (byte[]) plot_xlo#10 (byte[]) plot_xlo#9 -Redundant Phi (byte[]) plot_yhi#10 (byte[]) plot_yhi#9 -Redundant Phi (byte[]) plot_ylo#10 (byte[]) plot_ylo#9 -Redundant Phi (byte[]) plot_bit#10 (byte[]) plot_bit#9 -Redundant Phi (byte) line_xdyi::x1#2 (byte) line_xdyi::x1#6 -Redundant Phi (byte[]) plot_xhi#11 (byte[]) plot_xhi#20 -Redundant Phi (byte[]) plot_xlo#11 (byte[]) plot_xlo#20 -Redundant Phi (byte[]) plot_yhi#11 (byte[]) plot_yhi#19 -Redundant Phi (byte[]) plot_ylo#11 (byte[]) plot_ylo#19 -Redundant Phi (byte[]) plot_bit#11 (byte[]) plot_bit#20 -Redundant Phi (byte) line_xdyd::yd#3 (byte) line_xdyd::yd#2 -Redundant Phi (byte) line_xdyd::xd#2 (byte) line_xdyd::xd#5 -Redundant Phi (byte[]) plot_xhi#12 (byte[]) plot_xhi#11 -Redundant Phi (byte[]) plot_xlo#12 (byte[]) plot_xlo#11 -Redundant Phi (byte[]) plot_yhi#12 (byte[]) plot_yhi#11 -Redundant Phi (byte[]) plot_ylo#12 (byte[]) plot_ylo#11 -Redundant Phi (byte[]) plot_bit#12 (byte[]) plot_bit#11 -Redundant Phi (byte) line_xdyd::x1#2 (byte) line_xdyd::x1#6 -Redundant Phi (byte[]) plot_xhi#13 (byte[]) plot_xhi#20 -Redundant Phi (byte[]) plot_xlo#13 (byte[]) plot_xlo#20 -Redundant Phi (byte[]) plot_yhi#13 (byte[]) plot_yhi#19 -Redundant Phi (byte[]) plot_ylo#13 (byte[]) plot_ylo#19 -Redundant Phi (byte[]) plot_bit#13 (byte[]) plot_bit#20 -Redundant Phi (byte) line_ydxi::xd#3 (byte) line_ydxi::xd#2 -Redundant Phi (byte) line_ydxi::yd#2 (byte) line_ydxi::yd#5 -Redundant Phi (byte[]) plot_xhi#14 (byte[]) plot_xhi#13 -Redundant Phi (byte[]) plot_xlo#14 (byte[]) plot_xlo#13 -Redundant Phi (byte[]) plot_yhi#14 (byte[]) plot_yhi#13 -Redundant Phi (byte[]) plot_ylo#14 (byte[]) plot_ylo#13 -Redundant Phi (byte[]) plot_bit#14 (byte[]) plot_bit#13 -Redundant Phi (byte) line_ydxi::y1#2 (byte) line_ydxi::y1#6 -Redundant Phi (byte[]) plot_xhi#15 (byte[]) plot_xhi#20 -Redundant Phi (byte[]) plot_xlo#15 (byte[]) plot_xlo#20 -Redundant Phi (byte[]) plot_yhi#15 (byte[]) plot_yhi#19 -Redundant Phi (byte[]) plot_ylo#15 (byte[]) plot_ylo#19 -Redundant Phi (byte[]) plot_bit#15 (byte[]) plot_bit#20 -Redundant Phi (byte) line_ydxd::xd#3 (byte) line_ydxd::xd#2 -Redundant Phi (byte) line_ydxd::yd#2 (byte) line_ydxd::yd#5 -Redundant Phi (byte[]) plot_xhi#16 (byte[]) plot_xhi#15 -Redundant Phi (byte[]) plot_xlo#16 (byte[]) plot_xlo#15 -Redundant Phi (byte[]) plot_yhi#16 (byte[]) plot_yhi#15 -Redundant Phi (byte[]) plot_ylo#16 (byte[]) plot_ylo#15 -Redundant Phi (byte[]) plot_bit#16 (byte[]) plot_bit#15 -Redundant Phi (byte) line_ydxd::y1#2 (byte) line_ydxd::y1#6 -Redundant Phi (byte[]) plot_xlo#7 (byte[]) plot_xlo#17 -Redundant Phi (byte*) BITMAP#6 (byte*) BITMAP#1 -Redundant Phi (byte[]) plot_xhi#7 (byte[]) plot_xhi#17 -Redundant Phi (byte[]) plot_bit#7 (byte[]) plot_bit#17 -Redundant Phi (byte[]) plot_ylo#41 (byte[]) plot_ylo#44 -Redundant Phi (byte[]) plot_yhi#41 (byte[]) plot_yhi#44 -Redundant Phi (byte[]) plot_xlo#18 (byte[]) plot_xlo#7 -Redundant Phi (byte*) BITMAP#2 (byte*) BITMAP#6 -Redundant Phi (byte[]) plot_xhi#18 (byte[]) plot_xhi#7 -Redundant Phi (byte[]) plot_bit#18 (byte[]) plot_bit#7 -Redundant Phi (byte[]) plot_ylo#17 (byte[]) plot_ylo#41 -Redundant Phi (byte[]) plot_yhi#17 (byte[]) plot_yhi#41 -Redundant Phi (byte[]) plot_ylo#18 (byte[]) plot_ylo#17 -Redundant Phi (byte[]) plot_yhi#18 (byte[]) plot_yhi#17 -Redundant Phi (byte*) BITMAP#3 (byte*) BITMAP#1 -Redundant Phi (byte*) SCREEN#6 (byte*) SCREEN#1 -Redundant Phi (byte*) BITMAP#4 (byte*) BITMAP#3 -Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#6 -Redundant Phi (byte*) SCREEN#3 (byte*) SCREEN#2 -Succesful SSA optimization Pass2RedundantPhiElimination -CONTROL FLOW GRAPH -@begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word) 53280 - (byte*) FGCOL#0 ← ((byte*)) (word) 53281 - (byte*) D018#0 ← ((byte*)) (word) 53272 - (byte*) D011#0 ← ((byte*)) (word) 53265 - (byte) BMM#0 ← (byte/signed byte/word/signed word) 32 - (byte) DEN#0 ← (byte/signed byte/word/signed word) 16 - (byte) RSEL#0 ← (byte/signed byte/word/signed word) 8 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 - (byte*) BITMAP#0 ← ((byte*)) (word/signed word) 8192 - (byte[]) plot_xlo#0 ← ((byte*)) (word/signed word) 4096 - (byte[]) plot_xhi#0 ← ((byte*)) (word/signed word) 4352 - (byte[]) plot_ylo#0 ← ((byte*)) (word/signed word) 4608 - (byte[]) plot_yhi#0 ← ((byte*)) (word/signed word) 4864 - (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 - (byte[]) lines_x#0 ← { (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 110, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 10, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 60 } - (byte[]) lines_y#0 ← { (byte/signed byte/word/signed word) 10, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 110, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 10 } - (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 - to:@10 -main: scope:[main] from @10 - *((byte*) BGCOL#0) ← (byte/signed byte/word/signed word) 0 - *((byte*) FGCOL#0) ← (byte/signed byte/word/signed word) 0 - (byte~) main::$0 ← (byte) BMM#0 | (byte) DEN#0 - (byte~) main::$1 ← (byte~) main::$0 | (byte) RSEL#0 - (byte~) main::$2 ← (byte~) main::$1 | (byte/signed byte/word/signed word) 3 - *((byte*) D011#0) ← (byte~) main::$2 - (word~) main::$3 ← ((word)) (byte*) SCREEN#0 - (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#0 - (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 - (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 - (byte~) main::$8 ← ((byte)) (word~) main::$7 - *((byte*) D018#0) ← (byte~) main::$8 - call init_screen param-assignment - to:main::@3 -main::@3: scope:[main] from main - call init_plot_tables param-assignment - to:main::@4 -main::@4: scope:[main] from main::@3 - to:main::@1 -main::@1: scope:[main] from main::@4 main::@5 - call lines param-assignment - to:main::@5 -main::@5: scope:[main] from main::@1 - if(true) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@5 - return - to:@return -lines: scope:[lines] from main::@1 - (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 - to:lines::@1 -lines::@1: scope:[lines] from lines lines::@3 - (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) - (byte~) lines::$0 ← (byte[]) lines_x#0 *idx (byte) lines::l#2 - (byte~) lines::$1 ← (byte) lines::l#2 + (byte/signed byte/word/signed word) 1 - (byte~) lines::$2 ← (byte[]) lines_x#0 *idx (byte~) lines::$1 - (byte~) lines::$3 ← (byte[]) lines_y#0 *idx (byte) lines::l#2 - (byte~) lines::$4 ← (byte) lines::l#2 + (byte/signed byte/word/signed word) 1 - (byte~) lines::$5 ← (byte[]) lines_y#0 *idx (byte~) lines::$4 - (byte) line::x0#0 ← (byte~) lines::$0 - (byte) line::x1#0 ← (byte~) lines::$2 - (byte) line::y0#0 ← (byte~) lines::$3 - (byte) line::y1#0 ← (byte~) lines::$5 - call line param-assignment - to:lines::@3 -lines::@3: scope:[lines] from lines::@1 - (byte) lines::l#1 ← ++ (byte) lines::l#2 - (boolean~) lines::$7 ← (byte) lines::l#1 < (byte) lines_cnt#0 - if((boolean~) lines::$7) goto lines::@1 - to:lines::@return -lines::@return: scope:[lines] from lines::@3 - return - to:@return -line: scope:[line] from lines::@1 - (boolean~) line::$1 ← (byte) line::x0#0 >= (byte) line::x1#0 - if((boolean~) line::$1) goto line::@1 - to:line::@15 -line::@1: scope:[line] from line - (byte) line::xd#0 ← (byte) line::x0#0 - (byte) line::x1#0 - (boolean~) line::$17 ← (byte) line::y0#0 >= (byte) line::y1#0 - if((boolean~) line::$17) goto line::@9 - to:line::@23 -line::@15: scope:[line] from line - (byte) line::xd#1 ← (byte) line::x1#0 - (byte) line::x0#0 - (boolean~) line::$4 ← (byte) line::y0#0 >= (byte) line::y1#0 - if((boolean~) line::$4) goto line::@2 - to:line::@16 -line::@2: scope:[line] from line::@15 - (byte) line::yd#0 ← (byte) line::y0#0 - (byte) line::y1#0 - (boolean~) line::$12 ← (byte) line::yd#0 >= (byte) line::xd#1 - if((boolean~) line::$12) goto line::@6 - to:line::@20 -line::@16: scope:[line] from line::@15 - (byte) line::yd#1 ← (byte) line::y1#0 - (byte) line::y0#0 - (boolean~) line::$7 ← (byte) line::yd#1 >= (byte) line::xd#1 - if((boolean~) line::$7) goto line::@3 - to:line::@17 -line::@3: scope:[line] from line::@16 - (byte) line_ydxi::y#0 ← (byte) line::y0#0 - (byte) line_ydxi::x#0 ← (byte) line::x0#0 - (byte) line_ydxi::y1#0 ← (byte) line::y1#0 - (byte) line_ydxi::yd#0 ← (byte) line::yd#1 - (byte) line_ydxi::xd#0 ← (byte) line::xd#1 - call line_ydxi param-assignment - to:line::@return -line::@17: scope:[line] from line::@16 - (byte) line_xdyi::x#0 ← (byte) line::x0#0 - (byte) line_xdyi::y#0 ← (byte) line::y0#0 - (byte) line_xdyi::x1#0 ← (byte) line::x1#0 - (byte) line_xdyi::xd#0 ← (byte) line::xd#1 - (byte) line_xdyi::yd#0 ← (byte) line::yd#1 - call line_xdyi param-assignment - to:line::@return -line::@6: scope:[line] from line::@2 - (byte) line_ydxd::y#0 ← (byte) line::y1#0 - (byte) line_ydxd::x#0 ← (byte) line::x1#0 - (byte) line_ydxd::y1#0 ← (byte) line::y0#0 - (byte) line_ydxd::yd#0 ← (byte) line::yd#0 - (byte) line_ydxd::xd#0 ← (byte) line::xd#1 - call line_ydxd param-assignment - to:line::@return -line::@20: scope:[line] from line::@2 - (byte) line_xdyd::x#0 ← (byte) line::x0#0 - (byte) line_xdyd::y#0 ← (byte) line::y0#0 - (byte) line_xdyd::x1#0 ← (byte) line::x1#0 - (byte) line_xdyd::xd#0 ← (byte) line::xd#1 - (byte) line_xdyd::yd#0 ← (byte) line::yd#0 - call line_xdyd param-assignment - to:line::@return -line::@9: scope:[line] from line::@1 - (byte) line::yd#10 ← (byte) line::y0#0 - (byte) line::y1#0 - (boolean~) line::$25 ← (byte) line::yd#10 >= (byte) line::xd#0 - if((boolean~) line::$25) goto line::@13 - to:line::@27 -line::@23: scope:[line] from line::@1 - (byte) line::yd#3 ← (byte) line::y1#0 - (byte) line::y0#0 - (boolean~) line::$20 ← (byte) line::yd#3 >= (byte) line::xd#0 - if((boolean~) line::$20) goto line::@10 - to:line::@24 -line::@10: scope:[line] from line::@23 - (byte) line_ydxd::y#1 ← (byte) line::y0#0 - (byte) line_ydxd::x#1 ← (byte) line::x0#0 - (byte) line_ydxd::y1#1 ← (byte) line::y1#0 - (byte) line_ydxd::yd#1 ← (byte) line::yd#3 - (byte) line_ydxd::xd#1 ← (byte) line::xd#0 - call line_ydxd param-assignment - to:line::@return -line::@24: scope:[line] from line::@23 - (byte) line_xdyd::x#1 ← (byte) line::x1#0 - (byte) line_xdyd::y#1 ← (byte) line::y1#0 - (byte) line_xdyd::x1#1 ← (byte) line::x0#0 - (byte) line_xdyd::xd#1 ← (byte) line::xd#0 - (byte) line_xdyd::yd#1 ← (byte) line::yd#3 - call line_xdyd param-assignment - to:line::@return -line::@13: scope:[line] from line::@9 - (byte) line_ydxi::y#1 ← (byte) line::y1#0 - (byte) line_ydxi::x#1 ← (byte) line::x1#0 - (byte) line_ydxi::y1#1 ← (byte) line::y0#0 - (byte) line_ydxi::yd#1 ← (byte) line::yd#10 - (byte) line_ydxi::xd#1 ← (byte) line::xd#0 - call line_ydxi param-assignment - to:line::@return -line::@27: scope:[line] from line::@9 - (byte) line_xdyi::x#1 ← (byte) line::x1#0 - (byte) line_xdyi::y#1 ← (byte) line::y1#0 - (byte) line_xdyi::x1#1 ← (byte) line::x0#0 - (byte) line_xdyi::xd#1 ← (byte) line::xd#0 - (byte) line_xdyi::yd#1 ← (byte) line::yd#10 - call line_xdyi param-assignment - to:line::@return -line::@return: scope:[line] from line::@10 line::@13 line::@17 line::@20 line::@24 line::@27 line::@3 line::@6 - return - to:@return -line_xdyi: scope:[line_xdyi] from line::@17 line::@27 - (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) - (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) - (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) - (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) - (byte) line_xdyi::yd#2 ← phi( line::@17/(byte) line_xdyi::yd#0 line::@27/(byte) line_xdyi::yd#1 ) - (byte) line_xdyi::e#0 ← (byte) line_xdyi::yd#2 >> (byte/signed byte/word/signed word) 1 - to:line_xdyi::@1 -line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 - (byte) line_xdyi::e#3 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) - (byte) line_xdyi::y#3 ← phi( line_xdyi/(byte) line_xdyi::y#5 line_xdyi::@2/(byte) line_xdyi::y#6 ) - (byte) line_xdyi::x#3 ← phi( line_xdyi/(byte) line_xdyi::x#6 line_xdyi::@2/(byte) line_xdyi::x#2 ) - (byte) plot::x#0 ← (byte) line_xdyi::x#3 - (byte) plot::y#0 ← (byte) line_xdyi::y#3 - call plot param-assignment - to:line_xdyi::@5 -line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 - (byte) line_xdyi::x#2 ← (byte) line_xdyi::x#3 + (byte/signed byte/word/signed word) 1 - (byte) line_xdyi::e#1 ← (byte) line_xdyi::e#3 + (byte) line_xdyi::yd#2 - (boolean~) line_xdyi::$5 ← (byte) line_xdyi::xd#5 >= (byte) line_xdyi::e#1 - if((boolean~) line_xdyi::$5) goto line_xdyi::@2 - to:line_xdyi::@3 -line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 - (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) - (byte) line_xdyi::y#6 ← phi( line_xdyi::@3/(byte) line_xdyi::y#2 line_xdyi::@5/(byte) line_xdyi::y#3 ) - (byte~) line_xdyi::$8 ← (byte) line_xdyi::x1#6 + (byte/signed byte/word/signed word) 1 - (boolean~) line_xdyi::$9 ← (byte) line_xdyi::x#2 < (byte~) line_xdyi::$8 - if((boolean~) line_xdyi::$9) goto line_xdyi::@1 - to:line_xdyi::@return -line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5 - (byte) line_xdyi::y#2 ← (byte) line_xdyi::y#3 + (byte/signed byte/word/signed word) 1 - (byte) line_xdyi::e#2 ← (byte) line_xdyi::e#1 - (byte) line_xdyi::xd#5 - to:line_xdyi::@2 -line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 - return - to:@return -line_xdyd: scope:[line_xdyd] from line::@20 line::@24 - (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) - (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) - (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) - (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) - (byte) line_xdyd::yd#2 ← phi( line::@20/(byte) line_xdyd::yd#0 line::@24/(byte) line_xdyd::yd#1 ) - (byte) line_xdyd::e#0 ← (byte) line_xdyd::yd#2 >> (byte/signed byte/word/signed word) 1 - to:line_xdyd::@1 -line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 - (byte) line_xdyd::e#3 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) - (byte) line_xdyd::y#3 ← phi( line_xdyd/(byte) line_xdyd::y#5 line_xdyd::@2/(byte) line_xdyd::y#6 ) - (byte) line_xdyd::x#3 ← phi( line_xdyd/(byte) line_xdyd::x#6 line_xdyd::@2/(byte) line_xdyd::x#2 ) - (byte) plot::x#1 ← (byte) line_xdyd::x#3 - (byte) plot::y#1 ← (byte) line_xdyd::y#3 - call plot param-assignment - to:line_xdyd::@5 -line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 - (byte) line_xdyd::x#2 ← (byte) line_xdyd::x#3 + (byte/signed byte/word/signed word) 1 - (byte) line_xdyd::e#1 ← (byte) line_xdyd::e#3 + (byte) line_xdyd::yd#2 - (boolean~) line_xdyd::$5 ← (byte) line_xdyd::xd#5 >= (byte) line_xdyd::e#1 - if((boolean~) line_xdyd::$5) goto line_xdyd::@2 - to:line_xdyd::@3 -line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 - (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) - (byte) line_xdyd::y#6 ← phi( line_xdyd::@3/(byte) line_xdyd::y#2 line_xdyd::@5/(byte) line_xdyd::y#3 ) - (byte~) line_xdyd::$8 ← (byte) line_xdyd::x1#6 + (byte/signed byte/word/signed word) 1 - (boolean~) line_xdyd::$9 ← (byte) line_xdyd::x#2 < (byte~) line_xdyd::$8 - if((boolean~) line_xdyd::$9) goto line_xdyd::@1 - to:line_xdyd::@return -line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5 - (byte) line_xdyd::y#2 ← (byte) line_xdyd::y#3 - (byte/signed byte/word/signed word) 1 - (byte) line_xdyd::e#2 ← (byte) line_xdyd::e#1 - (byte) line_xdyd::xd#5 - to:line_xdyd::@2 -line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 - return - to:@return -line_ydxi: scope:[line_ydxi] from line::@13 line::@3 - (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) - (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) - (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) - (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) - (byte) line_ydxi::xd#2 ← phi( line::@13/(byte) line_ydxi::xd#1 line::@3/(byte) line_ydxi::xd#0 ) - (byte) line_ydxi::e#0 ← (byte) line_ydxi::xd#2 >> (byte/signed byte/word/signed word) 1 - to:line_ydxi::@1 -line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 - (byte) line_ydxi::e#3 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) - (byte) line_ydxi::y#3 ← phi( line_ydxi/(byte) line_ydxi::y#6 line_ydxi::@2/(byte) line_ydxi::y#2 ) - (byte) line_ydxi::x#3 ← phi( line_ydxi/(byte) line_ydxi::x#5 line_ydxi::@2/(byte) line_ydxi::x#6 ) - (byte) plot::x#2 ← (byte) line_ydxi::x#3 - (byte) plot::y#2 ← (byte) line_ydxi::y#3 - call plot param-assignment - to:line_ydxi::@5 -line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 - (byte) line_ydxi::y#2 ← (byte) line_ydxi::y#3 + (byte/signed byte/word/signed word) 1 - (byte) line_ydxi::e#1 ← (byte) line_ydxi::e#3 + (byte) line_ydxi::xd#2 - (boolean~) line_ydxi::$5 ← (byte) line_ydxi::yd#5 >= (byte) line_ydxi::e#1 - if((boolean~) line_ydxi::$5) goto line_ydxi::@2 - to:line_ydxi::@3 -line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 - (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) - (byte) line_ydxi::x#6 ← phi( line_ydxi::@3/(byte) line_ydxi::x#2 line_ydxi::@5/(byte) line_ydxi::x#3 ) - (byte~) line_ydxi::$8 ← (byte) line_ydxi::y1#6 + (byte/signed byte/word/signed word) 1 - (boolean~) line_ydxi::$9 ← (byte) line_ydxi::y#2 < (byte~) line_ydxi::$8 - if((boolean~) line_ydxi::$9) goto line_ydxi::@1 - to:line_ydxi::@return -line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5 - (byte) line_ydxi::x#2 ← (byte) line_ydxi::x#3 + (byte/signed byte/word/signed word) 1 - (byte) line_ydxi::e#2 ← (byte) line_ydxi::e#1 - (byte) line_ydxi::yd#5 - to:line_ydxi::@2 -line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 - return - to:@return -line_ydxd: scope:[line_ydxd] from line::@10 line::@6 - (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) - (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) - (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) - (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) - (byte) line_ydxd::xd#2 ← phi( line::@10/(byte) line_ydxd::xd#1 line::@6/(byte) line_ydxd::xd#0 ) - (byte) line_ydxd::e#0 ← (byte) line_ydxd::xd#2 >> (byte/signed byte/word/signed word) 1 - to:line_ydxd::@1 -line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 - (byte) line_ydxd::e#3 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) - (byte) line_ydxd::y#3 ← phi( line_ydxd/(byte) line_ydxd::y#6 line_ydxd::@2/(byte) line_ydxd::y#2 ) - (byte) line_ydxd::x#3 ← phi( line_ydxd/(byte) line_ydxd::x#5 line_ydxd::@2/(byte) line_ydxd::x#6 ) - (byte) plot::x#3 ← (byte) line_ydxd::x#3 - (byte) plot::y#3 ← (byte) line_ydxd::y#3 - call plot param-assignment - to:line_ydxd::@5 -line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 - (byte) line_ydxd::y#2 ← (byte) line_ydxd::y#3 + (byte/signed byte/word/signed word) 1 - (byte) line_ydxd::e#1 ← (byte) line_ydxd::e#3 + (byte) line_ydxd::xd#2 - (boolean~) line_ydxd::$5 ← (byte) line_ydxd::yd#5 >= (byte) line_ydxd::e#1 - if((boolean~) line_ydxd::$5) goto line_ydxd::@2 - to:line_ydxd::@3 -line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 - (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) - (byte) line_ydxd::x#6 ← phi( line_ydxd::@3/(byte) line_ydxd::x#2 line_ydxd::@5/(byte) line_ydxd::x#3 ) - (byte~) line_ydxd::$8 ← (byte) line_ydxd::y1#6 + (byte/signed byte/word/signed word) 1 - (boolean~) line_ydxd::$9 ← (byte) line_ydxd::y#2 < (byte~) line_ydxd::$8 - if((boolean~) line_ydxd::$9) goto line_ydxd::@1 - to:line_ydxd::@return -line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5 - (byte) line_ydxd::x#2 ← (byte) line_ydxd::x#3 - (byte/signed byte/word/signed word) 1 - (byte) line_ydxd::e#2 ← (byte) line_ydxd::e#1 - (byte) line_ydxd::yd#5 - to:line_ydxd::@2 -line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 - return - to:@return -plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 - (byte[]) plot_bit#1 ← phi( line_xdyd::@1/(byte[]) plot_bit#0 line_xdyi::@1/(byte[]) plot_bit#0 line_ydxd::@1/(byte[]) plot_bit#0 line_ydxi::@1/(byte[]) plot_bit#0 ) - (byte[]) plot_ylo#1 ← phi( line_xdyd::@1/(byte[]) plot_ylo#0 line_xdyi::@1/(byte[]) plot_ylo#0 line_ydxd::@1/(byte[]) plot_ylo#0 line_ydxi::@1/(byte[]) plot_ylo#0 ) - (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) - (byte[]) plot_yhi#1 ← phi( line_xdyd::@1/(byte[]) plot_yhi#0 line_xdyi::@1/(byte[]) plot_yhi#0 line_ydxd::@1/(byte[]) plot_yhi#0 line_ydxi::@1/(byte[]) plot_yhi#0 ) - (byte[]) plot_xlo#1 ← phi( line_xdyd::@1/(byte[]) plot_xlo#0 line_xdyi::@1/(byte[]) plot_xlo#0 line_ydxd::@1/(byte[]) plot_xlo#0 line_ydxi::@1/(byte[]) plot_xlo#0 ) - (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) - (byte[]) plot_xhi#1 ← phi( line_xdyd::@1/(byte[]) plot_xhi#0 line_xdyi::@1/(byte[]) plot_xhi#0 line_ydxd::@1/(byte[]) plot_xhi#0 line_ydxi::@1/(byte[]) plot_xhi#0 ) - (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 - (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#4 - (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#4 - (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#4 - (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#4 - (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 - (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#4 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#4 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -9539,9 +6531,11 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 return to:@return init_screen: scope:[init_screen] from main + (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 + (byte*) SCREEN#2 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#2 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 @@ -9550,13 +6544,14 @@ init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 init_screen::@3: scope:[init_screen] from init_screen::@1 - (byte*) init_screen::c#0 ← (byte*) SCREEN#0 + (byte*) init_screen::c#0 ← (byte*) SCREEN#2 to:init_screen::@2 init_screen::@2: scope:[init_screen] from init_screen::@2 init_screen::@3 + (byte*) SCREEN#3 ← phi( init_screen::@2/(byte*) SCREEN#3 init_screen::@3/(byte*) SCREEN#2 ) (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@3/(byte*) init_screen::c#0 ) *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word) 20 (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 - (byte*~) init_screen::$2 ← (byte*) SCREEN#0 + (word/signed word) 1024 + (byte*~) init_screen::$2 ← (byte*) SCREEN#3 + (word/signed word) 1024 (boolean~) init_screen::$3 ← (byte*) init_screen::c#1 != (byte*~) init_screen::$2 if((boolean~) init_screen::$3) goto init_screen::@2 to:init_screen::@return @@ -9568,11 +6563,626 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 to:@end @end: scope:[] from @10 -Redundant Phi (byte[]) plot_xhi#1 (byte[]) plot_xhi#0 -Redundant Phi (byte[]) plot_xlo#1 (byte[]) plot_xlo#0 -Redundant Phi (byte[]) plot_yhi#1 (byte[]) plot_yhi#0 -Redundant Phi (byte[]) plot_ylo#1 (byte[]) plot_ylo#0 -Redundant Phi (byte[]) plot_bit#1 (byte[]) plot_bit#0 +Not aliassing across scopes: BGCOL#1 BGCOL#0 +Not aliassing across scopes: FGCOL#1 FGCOL#0 +Not aliassing across scopes: BMM#1 BMM#0 +Not aliassing across scopes: DEN#1 DEN#0 +Not aliassing across scopes: RSEL#1 RSEL#0 +Not aliassing across scopes: D011#1 D011#0 +Not aliassing across scopes: SCREEN#1 SCREEN#0 +Not aliassing across scopes: D018#1 D018#0 +Not aliassing across scopes: lines_x#5 lines_x#0 +Not aliassing across scopes: lines_y#5 lines_y#0 +Not aliassing across scopes: lines_cnt#5 lines_cnt#0 +Not aliassing across scopes: lines_x#2 lines_x#4 +Not aliassing across scopes: lines_y#2 lines_y#4 +Not aliassing across scopes: lines_cnt#3 lines_cnt#4 +Not aliassing across scopes: line::x0#0 lines::$0 +Not aliassing across scopes: line::x1#0 lines::$2 +Not aliassing across scopes: line::y0#0 lines::$3 +Not aliassing across scopes: line::y1#0 lines::$5 +Not aliassing across scopes: line::x0#1 line::x0#0 +Not aliassing across scopes: line::x1#1 line::x1#0 +Not aliassing across scopes: line::y0#1 line::y0#0 +Not aliassing across scopes: line::y1#1 line::y1#0 +Not aliassing across scopes: line_ydxi::y#0 line::y0#1 +Not aliassing across scopes: line_ydxi::x#0 line::x0#1 +Not aliassing across scopes: line_ydxi::y1#0 line::y1#1 +Not aliassing across scopes: line_ydxi::yd#0 line::yd#1 +Not aliassing across scopes: line_ydxi::xd#0 line::xd#1 +Not aliassing across scopes: line_xdyi::x#0 line::x0#1 +Not aliassing across scopes: line_xdyi::y#0 line::y0#1 +Not aliassing across scopes: line_xdyi::x1#0 line::x1#1 +Not aliassing across scopes: line_xdyi::xd#0 line::xd#1 +Not aliassing across scopes: line_xdyi::yd#0 line::yd#1 +Not aliassing across scopes: line_ydxd::y#0 line::y1#1 +Not aliassing across scopes: line_ydxd::x#0 line::x1#1 +Not aliassing across scopes: line_ydxd::y1#0 line::y0#1 +Not aliassing across scopes: line_ydxd::yd#0 line::yd#0 +Not aliassing across scopes: line_ydxd::xd#0 line::xd#1 +Not aliassing across scopes: line_xdyd::x#0 line::x0#1 +Not aliassing across scopes: line_xdyd::y#0 line::y0#1 +Not aliassing across scopes: line_xdyd::x1#0 line::x1#1 +Not aliassing across scopes: line_xdyd::xd#0 line::xd#1 +Not aliassing across scopes: line_xdyd::yd#0 line::yd#0 +Not aliassing across scopes: line_ydxd::y#1 line::y0#1 +Not aliassing across scopes: line_ydxd::x#1 line::x0#1 +Not aliassing across scopes: line_ydxd::y1#1 line::y1#1 +Not aliassing across scopes: line_ydxd::yd#1 line::yd#3 +Not aliassing across scopes: line_ydxd::xd#1 line::xd#0 +Not aliassing across scopes: line_xdyd::x#1 line::x1#1 +Not aliassing across scopes: line_xdyd::y#1 line::y1#1 +Not aliassing across scopes: line_xdyd::x1#1 line::x0#1 +Not aliassing across scopes: line_xdyd::xd#1 line::xd#0 +Not aliassing across scopes: line_xdyd::yd#1 line::yd#3 +Not aliassing across scopes: line_ydxi::y#1 line::y1#1 +Not aliassing across scopes: line_ydxi::x#1 line::x1#1 +Not aliassing across scopes: line_ydxi::y1#1 line::y0#1 +Not aliassing across scopes: line_ydxi::yd#1 line::yd#10 +Not aliassing across scopes: line_ydxi::xd#1 line::xd#0 +Not aliassing across scopes: line_xdyi::x#1 line::x1#1 +Not aliassing across scopes: line_xdyi::y#1 line::y1#1 +Not aliassing across scopes: line_xdyi::x1#1 line::x0#1 +Not aliassing across scopes: line_xdyi::xd#1 line::xd#0 +Not aliassing across scopes: line_xdyi::yd#1 line::yd#10 +Not aliassing across scopes: line_xdyi::yd#2 line_xdyi::yd#0 +Not aliassing across scopes: line_xdyi::x#6 line_xdyi::x#0 +Not aliassing across scopes: line_xdyi::y#5 line_xdyi::y#0 +Not aliassing across scopes: line_xdyi::xd#5 line_xdyi::xd#0 +Not aliassing across scopes: line_xdyi::x1#6 line_xdyi::x1#0 +Not aliassing across scopes: plot::x#0 line_xdyi::x#3 +Not aliassing across scopes: plot::y#0 line_xdyi::y#3 +Not aliassing across scopes: line_xdyd::yd#2 line_xdyd::yd#0 +Not aliassing across scopes: line_xdyd::x#6 line_xdyd::x#0 +Not aliassing across scopes: line_xdyd::y#5 line_xdyd::y#0 +Not aliassing across scopes: line_xdyd::xd#5 line_xdyd::xd#0 +Not aliassing across scopes: line_xdyd::x1#6 line_xdyd::x1#0 +Not aliassing across scopes: plot::x#1 line_xdyd::x#3 +Not aliassing across scopes: plot::y#1 line_xdyd::y#3 +Not aliassing across scopes: line_ydxi::xd#2 line_ydxi::xd#1 +Not aliassing across scopes: line_ydxi::x#5 line_ydxi::x#1 +Not aliassing across scopes: line_ydxi::y#6 line_ydxi::y#1 +Not aliassing across scopes: line_ydxi::yd#5 line_ydxi::yd#1 +Not aliassing across scopes: line_ydxi::y1#6 line_ydxi::y1#1 +Not aliassing across scopes: plot::x#2 line_ydxi::x#3 +Not aliassing across scopes: plot::y#2 line_ydxi::y#3 +Not aliassing across scopes: line_ydxd::xd#2 line_ydxd::xd#1 +Not aliassing across scopes: line_ydxd::x#5 line_ydxd::x#1 +Not aliassing across scopes: line_ydxd::y#6 line_ydxd::y#1 +Not aliassing across scopes: line_ydxd::yd#5 line_ydxd::yd#1 +Not aliassing across scopes: line_ydxd::y1#6 line_ydxd::y1#1 +Not aliassing across scopes: plot::x#3 line_ydxd::x#3 +Not aliassing across scopes: plot::y#3 line_ydxd::y#3 +Not aliassing across scopes: plot::x#4 plot::x#1 +Not aliassing across scopes: plot::y#4 plot::y#1 +Not aliassing across scopes: SCREEN#6 SCREEN#1 +Not aliassing across scopes: init_screen::b#0 BITMAP#0 +Not aliassing across scopes: init_screen::c#0 SCREEN#2 +Not aliassing identity: SCREEN#3 SCREEN#3 +Self Phi Eliminated (byte[]) lines_x#4 +Self Phi Eliminated (byte[]) lines_y#4 +Self Phi Eliminated (byte) lines_cnt#4 +Self Phi Eliminated (byte[]) lines_x#1 +Self Phi Eliminated (byte[]) lines_y#1 +Self Phi Eliminated (byte) lines_cnt#1 +Self Phi Eliminated (byte) line_xdyi::yd#3 +Self Phi Eliminated (byte) line_xdyi::xd#2 +Self Phi Eliminated (byte) line_xdyi::x1#2 +Self Phi Eliminated (byte) line_xdyd::yd#3 +Self Phi Eliminated (byte) line_xdyd::xd#2 +Self Phi Eliminated (byte) line_xdyd::x1#2 +Self Phi Eliminated (byte) line_ydxi::xd#3 +Self Phi Eliminated (byte) line_ydxi::yd#2 +Self Phi Eliminated (byte) line_ydxi::y1#2 +Self Phi Eliminated (byte) line_ydxd::xd#3 +Self Phi Eliminated (byte) line_ydxd::yd#2 +Self Phi Eliminated (byte) line_ydxd::y1#2 +Self Phi Eliminated (byte*) SCREEN#2 +Self Phi Eliminated (byte*) SCREEN#3 +Succesful SSA optimization Pass2SelfPhiElimination +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) BGCOL#0 ← ((byte*)) (word) 53280 + (byte*) FGCOL#0 ← ((byte*)) (word) 53281 + (byte*) D018#0 ← ((byte*)) (word) 53272 + (byte*) D011#0 ← ((byte*)) (word) 53265 + (byte) BMM#0 ← (byte/signed byte/word/signed word) 32 + (byte) DEN#0 ← (byte/signed byte/word/signed word) 16 + (byte) RSEL#0 ← (byte/signed byte/word/signed word) 8 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 + (byte*) BITMAP#0 ← ((byte*)) (word/signed word) 8192 + (byte[]) plot_xlo#0 ← ((byte*)) (word/signed word) 4096 + (byte[]) plot_xhi#0 ← ((byte*)) (word/signed word) 4352 + (byte[]) plot_ylo#0 ← ((byte*)) (word/signed word) 4608 + (byte[]) plot_yhi#0 ← ((byte*)) (word/signed word) 4864 + (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 + (byte[]) lines_x#0 ← { (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 110, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 10, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 60 } + (byte[]) lines_y#0 ← { (byte/signed byte/word/signed word) 10, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 110, (byte/signed byte/word/signed word) 80, (byte/signed byte/word/signed word) 60, (byte/signed byte/word/signed word) 40, (byte/signed byte/word/signed word) 10 } + (byte) lines_cnt#0 ← (byte/signed byte/word/signed word) 8 + to:@10 +main: scope:[main] from @10 + (byte) lines_cnt#5 ← phi( @10/(byte) lines_cnt#0 ) + (byte[]) lines_y#5 ← phi( @10/(byte[]) lines_y#0 ) + (byte[]) lines_x#5 ← phi( @10/(byte[]) lines_x#0 ) + (byte*) D018#1 ← phi( @10/(byte*) D018#0 ) + (byte*) SCREEN#1 ← phi( @10/(byte*) SCREEN#0 ) + (byte*) D011#1 ← phi( @10/(byte*) D011#0 ) + (byte) RSEL#1 ← phi( @10/(byte) RSEL#0 ) + (byte) DEN#1 ← phi( @10/(byte) DEN#0 ) + (byte) BMM#1 ← phi( @10/(byte) BMM#0 ) + (byte*) FGCOL#1 ← phi( @10/(byte*) FGCOL#0 ) + (byte*) BGCOL#1 ← phi( @10/(byte*) BGCOL#0 ) + *((byte*) BGCOL#1) ← (byte/signed byte/word/signed word) 0 + *((byte*) FGCOL#1) ← (byte/signed byte/word/signed word) 0 + (byte~) main::$0 ← (byte) BMM#1 | (byte) DEN#1 + (byte~) main::$1 ← (byte~) main::$0 | (byte) RSEL#1 + (byte~) main::$2 ← (byte~) main::$1 | (byte/signed byte/word/signed word) 3 + *((byte*) D011#1) ← (byte~) main::$2 + (word~) main::$3 ← ((word)) (byte*) SCREEN#1 + (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 + (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 + (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 + (byte~) main::$8 ← ((byte)) (word~) main::$7 + *((byte*) D018#1) ← (byte~) main::$8 + call init_screen param-assignment + to:main::@3 +main::@3: scope:[main] from main + call init_plot_tables param-assignment + to:main::@4 +main::@4: scope:[main] from main::@3 + to:main::@1 +main::@1: scope:[main] from main::@4 main::@5 + (byte) lines_cnt#4 ← phi( main::@4/(byte) lines_cnt#5 ) + (byte[]) lines_y#4 ← phi( main::@4/(byte[]) lines_y#5 ) + (byte[]) lines_x#4 ← phi( main::@4/(byte[]) lines_x#5 ) + call lines param-assignment + to:main::@5 +main::@5: scope:[main] from main::@1 + if(true) goto main::@1 + to:main::@return +main::@return: scope:[main] from main::@5 + return + to:@return +lines: scope:[lines] from main::@1 + (byte) lines_cnt#3 ← phi( main::@1/(byte) lines_cnt#4 ) + (byte[]) lines_y#2 ← phi( main::@1/(byte[]) lines_y#4 ) + (byte[]) lines_x#2 ← phi( main::@1/(byte[]) lines_x#4 ) + (byte) lines::l#0 ← (byte/signed byte/word/signed word) 0 + to:lines::@1 +lines::@1: scope:[lines] from lines lines::@3 + (byte) lines_cnt#1 ← phi( lines/(byte) lines_cnt#3 ) + (byte[]) lines_y#1 ← phi( lines/(byte[]) lines_y#2 ) + (byte) lines::l#2 ← phi( lines/(byte) lines::l#0 lines::@3/(byte) lines::l#1 ) + (byte[]) lines_x#1 ← phi( lines/(byte[]) lines_x#2 ) + (byte~) lines::$0 ← (byte[]) lines_x#1 *idx (byte) lines::l#2 + (byte~) lines::$1 ← (byte) lines::l#2 + (byte/signed byte/word/signed word) 1 + (byte~) lines::$2 ← (byte[]) lines_x#1 *idx (byte~) lines::$1 + (byte~) lines::$3 ← (byte[]) lines_y#1 *idx (byte) lines::l#2 + (byte~) lines::$4 ← (byte) lines::l#2 + (byte/signed byte/word/signed word) 1 + (byte~) lines::$5 ← (byte[]) lines_y#1 *idx (byte~) lines::$4 + (byte) line::x0#0 ← (byte~) lines::$0 + (byte) line::x1#0 ← (byte~) lines::$2 + (byte) line::y0#0 ← (byte~) lines::$3 + (byte) line::y1#0 ← (byte~) lines::$5 + call line param-assignment + to:lines::@3 +lines::@3: scope:[lines] from lines::@1 + (byte) lines::l#1 ← ++ (byte) lines::l#2 + (boolean~) lines::$7 ← (byte) lines::l#1 < (byte) lines_cnt#1 + if((boolean~) lines::$7) goto lines::@1 + to:lines::@return +lines::@return: scope:[lines] from lines::@3 + return + to:@return +line: scope:[line] from lines::@1 + (byte) line::y1#1 ← phi( lines::@1/(byte) line::y1#0 ) + (byte) line::y0#1 ← phi( lines::@1/(byte) line::y0#0 ) + (byte) line::x1#1 ← phi( lines::@1/(byte) line::x1#0 ) + (byte) line::x0#1 ← phi( lines::@1/(byte) line::x0#0 ) + (boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1 + if((boolean~) line::$1) goto line::@1 + to:line::@15 +line::@1: scope:[line] from line + (byte) line::xd#0 ← (byte) line::x0#1 - (byte) line::x1#1 + (boolean~) line::$17 ← (byte) line::y0#1 >= (byte) line::y1#1 + if((boolean~) line::$17) goto line::@9 + to:line::@23 +line::@15: scope:[line] from line + (byte) line::xd#1 ← (byte) line::x1#1 - (byte) line::x0#1 + (boolean~) line::$4 ← (byte) line::y0#1 >= (byte) line::y1#1 + if((boolean~) line::$4) goto line::@2 + to:line::@16 +line::@2: scope:[line] from line::@15 + (byte) line::yd#0 ← (byte) line::y0#1 - (byte) line::y1#1 + (boolean~) line::$12 ← (byte) line::yd#0 >= (byte) line::xd#1 + if((boolean~) line::$12) goto line::@6 + to:line::@20 +line::@16: scope:[line] from line::@15 + (byte) line::yd#1 ← (byte) line::y1#1 - (byte) line::y0#1 + (boolean~) line::$7 ← (byte) line::yd#1 >= (byte) line::xd#1 + if((boolean~) line::$7) goto line::@3 + to:line::@17 +line::@3: scope:[line] from line::@16 + (byte) line_ydxi::y#0 ← (byte) line::y0#1 + (byte) line_ydxi::x#0 ← (byte) line::x0#1 + (byte) line_ydxi::y1#0 ← (byte) line::y1#1 + (byte) line_ydxi::yd#0 ← (byte) line::yd#1 + (byte) line_ydxi::xd#0 ← (byte) line::xd#1 + call line_ydxi param-assignment + to:line::@return +line::@17: scope:[line] from line::@16 + (byte) line_xdyi::x#0 ← (byte) line::x0#1 + (byte) line_xdyi::y#0 ← (byte) line::y0#1 + (byte) line_xdyi::x1#0 ← (byte) line::x1#1 + (byte) line_xdyi::xd#0 ← (byte) line::xd#1 + (byte) line_xdyi::yd#0 ← (byte) line::yd#1 + call line_xdyi param-assignment + to:line::@return +line::@6: scope:[line] from line::@2 + (byte) line_ydxd::y#0 ← (byte) line::y1#1 + (byte) line_ydxd::x#0 ← (byte) line::x1#1 + (byte) line_ydxd::y1#0 ← (byte) line::y0#1 + (byte) line_ydxd::yd#0 ← (byte) line::yd#0 + (byte) line_ydxd::xd#0 ← (byte) line::xd#1 + call line_ydxd param-assignment + to:line::@return +line::@20: scope:[line] from line::@2 + (byte) line_xdyd::x#0 ← (byte) line::x0#1 + (byte) line_xdyd::y#0 ← (byte) line::y0#1 + (byte) line_xdyd::x1#0 ← (byte) line::x1#1 + (byte) line_xdyd::xd#0 ← (byte) line::xd#1 + (byte) line_xdyd::yd#0 ← (byte) line::yd#0 + call line_xdyd param-assignment + to:line::@return +line::@9: scope:[line] from line::@1 + (byte) line::yd#10 ← (byte) line::y0#1 - (byte) line::y1#1 + (boolean~) line::$25 ← (byte) line::yd#10 >= (byte) line::xd#0 + if((boolean~) line::$25) goto line::@13 + to:line::@27 +line::@23: scope:[line] from line::@1 + (byte) line::yd#3 ← (byte) line::y1#1 - (byte) line::y0#1 + (boolean~) line::$20 ← (byte) line::yd#3 >= (byte) line::xd#0 + if((boolean~) line::$20) goto line::@10 + to:line::@24 +line::@10: scope:[line] from line::@23 + (byte) line_ydxd::y#1 ← (byte) line::y0#1 + (byte) line_ydxd::x#1 ← (byte) line::x0#1 + (byte) line_ydxd::y1#1 ← (byte) line::y1#1 + (byte) line_ydxd::yd#1 ← (byte) line::yd#3 + (byte) line_ydxd::xd#1 ← (byte) line::xd#0 + call line_ydxd param-assignment + to:line::@return +line::@24: scope:[line] from line::@23 + (byte) line_xdyd::x#1 ← (byte) line::x1#1 + (byte) line_xdyd::y#1 ← (byte) line::y1#1 + (byte) line_xdyd::x1#1 ← (byte) line::x0#1 + (byte) line_xdyd::xd#1 ← (byte) line::xd#0 + (byte) line_xdyd::yd#1 ← (byte) line::yd#3 + call line_xdyd param-assignment + to:line::@return +line::@13: scope:[line] from line::@9 + (byte) line_ydxi::y#1 ← (byte) line::y1#1 + (byte) line_ydxi::x#1 ← (byte) line::x1#1 + (byte) line_ydxi::y1#1 ← (byte) line::y0#1 + (byte) line_ydxi::yd#1 ← (byte) line::yd#10 + (byte) line_ydxi::xd#1 ← (byte) line::xd#0 + call line_ydxi param-assignment + to:line::@return +line::@27: scope:[line] from line::@9 + (byte) line_xdyi::x#1 ← (byte) line::x1#1 + (byte) line_xdyi::y#1 ← (byte) line::y1#1 + (byte) line_xdyi::x1#1 ← (byte) line::x0#1 + (byte) line_xdyi::xd#1 ← (byte) line::xd#0 + (byte) line_xdyi::yd#1 ← (byte) line::yd#10 + call line_xdyi param-assignment + to:line::@return +line::@return: scope:[line] from line::@10 line::@13 line::@17 line::@20 line::@24 line::@27 line::@3 line::@6 + return + to:@return +line_xdyi: scope:[line_xdyi] from line::@17 line::@27 + (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) + (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) + (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) + (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) + (byte) line_xdyi::yd#2 ← phi( line::@17/(byte) line_xdyi::yd#0 line::@27/(byte) line_xdyi::yd#1 ) + (byte) line_xdyi::e#0 ← (byte) line_xdyi::yd#2 >> (byte/signed byte/word/signed word) 1 + to:line_xdyi::@1 +line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2 + (byte) line_xdyi::x1#2 ← phi( line_xdyi/(byte) line_xdyi::x1#6 ) + (byte) line_xdyi::xd#2 ← phi( line_xdyi/(byte) line_xdyi::xd#5 ) + (byte) line_xdyi::yd#3 ← phi( line_xdyi/(byte) line_xdyi::yd#2 ) + (byte) line_xdyi::e#3 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) + (byte) line_xdyi::y#3 ← phi( line_xdyi/(byte) line_xdyi::y#5 line_xdyi::@2/(byte) line_xdyi::y#6 ) + (byte) line_xdyi::x#3 ← phi( line_xdyi/(byte) line_xdyi::x#6 line_xdyi::@2/(byte) line_xdyi::x#2 ) + (byte) plot::x#0 ← (byte) line_xdyi::x#3 + (byte) plot::y#0 ← (byte) line_xdyi::y#3 + call plot param-assignment + to:line_xdyi::@5 +line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1 + (byte) line_xdyi::x#2 ← (byte) line_xdyi::x#3 + (byte/signed byte/word/signed word) 1 + (byte) line_xdyi::e#1 ← (byte) line_xdyi::e#3 + (byte) line_xdyi::yd#3 + (boolean~) line_xdyi::$5 ← (byte) line_xdyi::xd#2 >= (byte) line_xdyi::e#1 + if((boolean~) line_xdyi::$5) goto line_xdyi::@2 + to:line_xdyi::@3 +line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5 + (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) + (byte) line_xdyi::y#6 ← phi( line_xdyi::@3/(byte) line_xdyi::y#2 line_xdyi::@5/(byte) line_xdyi::y#3 ) + (byte~) line_xdyi::$8 ← (byte) line_xdyi::x1#2 + (byte/signed byte/word/signed word) 1 + (boolean~) line_xdyi::$9 ← (byte) line_xdyi::x#2 < (byte~) line_xdyi::$8 + if((boolean~) line_xdyi::$9) goto line_xdyi::@1 + to:line_xdyi::@return +line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5 + (byte) line_xdyi::y#2 ← (byte) line_xdyi::y#3 + (byte/signed byte/word/signed word) 1 + (byte) line_xdyi::e#2 ← (byte) line_xdyi::e#1 - (byte) line_xdyi::xd#2 + to:line_xdyi::@2 +line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2 + return + to:@return +line_xdyd: scope:[line_xdyd] from line::@20 line::@24 + (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) + (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) + (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) + (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) + (byte) line_xdyd::yd#2 ← phi( line::@20/(byte) line_xdyd::yd#0 line::@24/(byte) line_xdyd::yd#1 ) + (byte) line_xdyd::e#0 ← (byte) line_xdyd::yd#2 >> (byte/signed byte/word/signed word) 1 + to:line_xdyd::@1 +line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2 + (byte) line_xdyd::x1#2 ← phi( line_xdyd/(byte) line_xdyd::x1#6 ) + (byte) line_xdyd::xd#2 ← phi( line_xdyd/(byte) line_xdyd::xd#5 ) + (byte) line_xdyd::yd#3 ← phi( line_xdyd/(byte) line_xdyd::yd#2 ) + (byte) line_xdyd::e#3 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) + (byte) line_xdyd::y#3 ← phi( line_xdyd/(byte) line_xdyd::y#5 line_xdyd::@2/(byte) line_xdyd::y#6 ) + (byte) line_xdyd::x#3 ← phi( line_xdyd/(byte) line_xdyd::x#6 line_xdyd::@2/(byte) line_xdyd::x#2 ) + (byte) plot::x#1 ← (byte) line_xdyd::x#3 + (byte) plot::y#1 ← (byte) line_xdyd::y#3 + call plot param-assignment + to:line_xdyd::@5 +line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1 + (byte) line_xdyd::x#2 ← (byte) line_xdyd::x#3 + (byte/signed byte/word/signed word) 1 + (byte) line_xdyd::e#1 ← (byte) line_xdyd::e#3 + (byte) line_xdyd::yd#3 + (boolean~) line_xdyd::$5 ← (byte) line_xdyd::xd#2 >= (byte) line_xdyd::e#1 + if((boolean~) line_xdyd::$5) goto line_xdyd::@2 + to:line_xdyd::@3 +line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5 + (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) + (byte) line_xdyd::y#6 ← phi( line_xdyd::@3/(byte) line_xdyd::y#2 line_xdyd::@5/(byte) line_xdyd::y#3 ) + (byte~) line_xdyd::$8 ← (byte) line_xdyd::x1#2 + (byte/signed byte/word/signed word) 1 + (boolean~) line_xdyd::$9 ← (byte) line_xdyd::x#2 < (byte~) line_xdyd::$8 + if((boolean~) line_xdyd::$9) goto line_xdyd::@1 + to:line_xdyd::@return +line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5 + (byte) line_xdyd::y#2 ← (byte) line_xdyd::y#3 - (byte/signed byte/word/signed word) 1 + (byte) line_xdyd::e#2 ← (byte) line_xdyd::e#1 - (byte) line_xdyd::xd#2 + to:line_xdyd::@2 +line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2 + return + to:@return +line_ydxi: scope:[line_ydxi] from line::@13 line::@3 + (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) + (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) + (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) + (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) + (byte) line_ydxi::xd#2 ← phi( line::@13/(byte) line_ydxi::xd#1 line::@3/(byte) line_ydxi::xd#0 ) + (byte) line_ydxi::e#0 ← (byte) line_ydxi::xd#2 >> (byte/signed byte/word/signed word) 1 + to:line_ydxi::@1 +line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2 + (byte) line_ydxi::y1#2 ← phi( line_ydxi/(byte) line_ydxi::y1#6 ) + (byte) line_ydxi::yd#2 ← phi( line_ydxi/(byte) line_ydxi::yd#5 ) + (byte) line_ydxi::xd#3 ← phi( line_ydxi/(byte) line_ydxi::xd#2 ) + (byte) line_ydxi::e#3 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) + (byte) line_ydxi::y#3 ← phi( line_ydxi/(byte) line_ydxi::y#6 line_ydxi::@2/(byte) line_ydxi::y#2 ) + (byte) line_ydxi::x#3 ← phi( line_ydxi/(byte) line_ydxi::x#5 line_ydxi::@2/(byte) line_ydxi::x#6 ) + (byte) plot::x#2 ← (byte) line_ydxi::x#3 + (byte) plot::y#2 ← (byte) line_ydxi::y#3 + call plot param-assignment + to:line_ydxi::@5 +line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1 + (byte) line_ydxi::y#2 ← (byte) line_ydxi::y#3 + (byte/signed byte/word/signed word) 1 + (byte) line_ydxi::e#1 ← (byte) line_ydxi::e#3 + (byte) line_ydxi::xd#3 + (boolean~) line_ydxi::$5 ← (byte) line_ydxi::yd#2 >= (byte) line_ydxi::e#1 + if((boolean~) line_ydxi::$5) goto line_ydxi::@2 + to:line_ydxi::@3 +line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5 + (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) + (byte) line_ydxi::x#6 ← phi( line_ydxi::@3/(byte) line_ydxi::x#2 line_ydxi::@5/(byte) line_ydxi::x#3 ) + (byte~) line_ydxi::$8 ← (byte) line_ydxi::y1#2 + (byte/signed byte/word/signed word) 1 + (boolean~) line_ydxi::$9 ← (byte) line_ydxi::y#2 < (byte~) line_ydxi::$8 + if((boolean~) line_ydxi::$9) goto line_ydxi::@1 + to:line_ydxi::@return +line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5 + (byte) line_ydxi::x#2 ← (byte) line_ydxi::x#3 + (byte/signed byte/word/signed word) 1 + (byte) line_ydxi::e#2 ← (byte) line_ydxi::e#1 - (byte) line_ydxi::yd#2 + to:line_ydxi::@2 +line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2 + return + to:@return +line_ydxd: scope:[line_ydxd] from line::@10 line::@6 + (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) + (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) + (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) + (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) + (byte) line_ydxd::xd#2 ← phi( line::@10/(byte) line_ydxd::xd#1 line::@6/(byte) line_ydxd::xd#0 ) + (byte) line_ydxd::e#0 ← (byte) line_ydxd::xd#2 >> (byte/signed byte/word/signed word) 1 + to:line_ydxd::@1 +line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2 + (byte) line_ydxd::y1#2 ← phi( line_ydxd/(byte) line_ydxd::y1#6 ) + (byte) line_ydxd::yd#2 ← phi( line_ydxd/(byte) line_ydxd::yd#5 ) + (byte) line_ydxd::xd#3 ← phi( line_ydxd/(byte) line_ydxd::xd#2 ) + (byte) line_ydxd::e#3 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) + (byte) line_ydxd::y#3 ← phi( line_ydxd/(byte) line_ydxd::y#6 line_ydxd::@2/(byte) line_ydxd::y#2 ) + (byte) line_ydxd::x#3 ← phi( line_ydxd/(byte) line_ydxd::x#5 line_ydxd::@2/(byte) line_ydxd::x#6 ) + (byte) plot::x#3 ← (byte) line_ydxd::x#3 + (byte) plot::y#3 ← (byte) line_ydxd::y#3 + call plot param-assignment + to:line_ydxd::@5 +line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1 + (byte) line_ydxd::y#2 ← (byte) line_ydxd::y#3 + (byte/signed byte/word/signed word) 1 + (byte) line_ydxd::e#1 ← (byte) line_ydxd::e#3 + (byte) line_ydxd::xd#3 + (boolean~) line_ydxd::$5 ← (byte) line_ydxd::yd#2 >= (byte) line_ydxd::e#1 + if((boolean~) line_ydxd::$5) goto line_ydxd::@2 + to:line_ydxd::@3 +line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5 + (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) + (byte) line_ydxd::x#6 ← phi( line_ydxd::@3/(byte) line_ydxd::x#2 line_ydxd::@5/(byte) line_ydxd::x#3 ) + (byte~) line_ydxd::$8 ← (byte) line_ydxd::y1#2 + (byte/signed byte/word/signed word) 1 + (boolean~) line_ydxd::$9 ← (byte) line_ydxd::y#2 < (byte~) line_ydxd::$8 + if((boolean~) line_ydxd::$9) goto line_ydxd::@1 + to:line_ydxd::@return +line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5 + (byte) line_ydxd::x#2 ← (byte) line_ydxd::x#3 - (byte/signed byte/word/signed word) 1 + (byte) line_ydxd::e#2 ← (byte) line_ydxd::e#1 - (byte) line_ydxd::yd#2 + to:line_ydxd::@2 +line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2 + return + to:@return +plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1 + (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) + (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) + (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 + (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#4 + (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#4 + (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#4 + (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#4 + (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 + (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#4 + (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 + *((byte*) plot::plotter#0) ← (byte~) plot::$6 + to:plot::@return +plot::@return: scope:[plot] from plot + return + to:@return +init_plot_tables: scope:[init_plot_tables] from main::@3 + (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 + (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 + to:init_plot_tables::@1 +init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 + (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) + (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) + (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 + (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 + if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 + to:init_plot_tables::@5 +init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 + (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) + (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 + (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 + if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 + to:init_plot_tables::@6 +init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 + (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 + to:init_plot_tables::@2 +init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 + (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 + (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 + to:init_plot_tables::@3 +init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 + (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) + (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) + (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 + (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 + (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 + (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 + if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 + to:init_plot_tables::@7 +init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 + (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) + (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#2 + (boolean~) init_plot_tables::$14 ← (byte) init_plot_tables::y#1 != (byte/signed byte/word/signed word) 0 + if((boolean~) init_plot_tables::$14) goto init_plot_tables::@3 + to:init_plot_tables::@return +init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 + (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (word/signed word) 320 + to:init_plot_tables::@4 +init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 + return + to:@return +init_screen: scope:[init_screen] from main + (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 + to:init_screen::@1 +init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 + (byte*) SCREEN#2 ← phi( init_screen/(byte*) SCREEN#6 ) + (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) + *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 + (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 + (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 + if((boolean~) init_screen::$1) goto init_screen::@1 + to:init_screen::@3 +init_screen::@3: scope:[init_screen] from init_screen::@1 + (byte*) init_screen::c#0 ← (byte*) SCREEN#2 + to:init_screen::@2 +init_screen::@2: scope:[init_screen] from init_screen::@2 init_screen::@3 + (byte*) SCREEN#3 ← phi( init_screen::@3/(byte*) SCREEN#2 ) + (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@3/(byte*) init_screen::c#0 ) + *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word) 20 + (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 + (byte*~) init_screen::$2 ← (byte*) SCREEN#3 + (word/signed word) 1024 + (boolean~) init_screen::$3 ← (byte*) init_screen::c#1 != (byte*~) init_screen::$2 + if((boolean~) init_screen::$3) goto init_screen::@2 + to:init_screen::@return +init_screen::@return: scope:[init_screen] from init_screen::@2 + return + to:@return +@10: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @10 + +Redundant Phi (byte*) BGCOL#1 (byte*) BGCOL#0 +Redundant Phi (byte*) FGCOL#1 (byte*) FGCOL#0 +Redundant Phi (byte) BMM#1 (byte) BMM#0 +Redundant Phi (byte) DEN#1 (byte) DEN#0 +Redundant Phi (byte) RSEL#1 (byte) RSEL#0 +Redundant Phi (byte*) D011#1 (byte*) D011#0 +Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0 +Redundant Phi (byte*) D018#1 (byte*) D018#0 +Redundant Phi (byte[]) lines_x#5 (byte[]) lines_x#0 +Redundant Phi (byte[]) lines_y#5 (byte[]) lines_y#0 +Redundant Phi (byte) lines_cnt#5 (byte) lines_cnt#0 +Redundant Phi (byte[]) lines_x#4 (byte[]) lines_x#5 +Redundant Phi (byte[]) lines_y#4 (byte[]) lines_y#5 +Redundant Phi (byte) lines_cnt#4 (byte) lines_cnt#5 +Redundant Phi (byte[]) lines_x#2 (byte[]) lines_x#4 +Redundant Phi (byte[]) lines_y#2 (byte[]) lines_y#4 +Redundant Phi (byte) lines_cnt#3 (byte) lines_cnt#4 +Redundant Phi (byte[]) lines_x#1 (byte[]) lines_x#2 +Redundant Phi (byte[]) lines_y#1 (byte[]) lines_y#2 +Redundant Phi (byte) lines_cnt#1 (byte) lines_cnt#3 +Redundant Phi (byte) line::x0#1 (byte) line::x0#0 +Redundant Phi (byte) line::x1#1 (byte) line::x1#0 +Redundant Phi (byte) line::y0#1 (byte) line::y0#0 +Redundant Phi (byte) line::y1#1 (byte) line::y1#0 +Redundant Phi (byte) line_xdyi::yd#3 (byte) line_xdyi::yd#2 +Redundant Phi (byte) line_xdyi::xd#2 (byte) line_xdyi::xd#5 +Redundant Phi (byte) line_xdyi::x1#2 (byte) line_xdyi::x1#6 +Redundant Phi (byte) line_xdyd::yd#3 (byte) line_xdyd::yd#2 +Redundant Phi (byte) line_xdyd::xd#2 (byte) line_xdyd::xd#5 +Redundant Phi (byte) line_xdyd::x1#2 (byte) line_xdyd::x1#6 +Redundant Phi (byte) line_ydxi::xd#3 (byte) line_ydxi::xd#2 +Redundant Phi (byte) line_ydxi::yd#2 (byte) line_ydxi::yd#5 +Redundant Phi (byte) line_ydxi::y1#2 (byte) line_ydxi::y1#6 +Redundant Phi (byte) line_ydxd::xd#3 (byte) line_ydxd::xd#2 +Redundant Phi (byte) line_ydxd::yd#2 (byte) line_ydxd::yd#5 +Redundant Phi (byte) line_ydxd::y1#2 (byte) line_ydxd::y1#6 +Redundant Phi (byte*) SCREEN#6 (byte*) SCREEN#1 +Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#6 +Redundant Phi (byte*) SCREEN#3 (byte*) SCREEN#2 Succesful SSA optimization Pass2RedundantPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from diff --git a/src/main/java/dk/camelot64/kickc/test/ref/bitmap-plotter.log b/src/main/java/dk/camelot64/kickc/test/ref/bitmap-plotter.log index 4bce6310a..612a30da3 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/bitmap-plotter.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/bitmap-plotter.log @@ -950,16 +950,10 @@ CONTROL FLOW GRAPH SSA to:@1 main: scope:[main] from @5 (byte) plots_cnt#10 ← phi( @5/(byte) plots_cnt#11 ) - (byte[]) plot_yhi#18 ← phi( @5/(byte[]) plot_yhi#20 ) - (byte[]) plot_ylo#18 ← phi( @5/(byte[]) plot_ylo#20 ) (byte[]) plots_y#10 ← phi( @5/(byte[]) plots_y#11 ) (byte[]) plots_x#10 ← phi( @5/(byte[]) plots_x#11 ) - (byte[]) plot_bit#10 ← phi( @5/(byte[]) plot_bit#12 ) - (byte[]) plot_xhi#10 ← phi( @5/(byte[]) plot_xhi#12 ) - (byte[]) plot_xlo#10 ← phi( @5/(byte[]) plot_xlo#12 ) (byte*) RASTER#6 ← phi( @5/(byte*) RASTER#8 ) (byte*) D018#1 ← phi( @5/(byte*) D018#2 ) - (byte*) BITMAP#1 ← phi( @5/(byte*) BITMAP#5 ) (byte*) SCREEN#1 ← phi( @5/(byte*) SCREEN#4 ) (byte*) D011#1 ← phi( @5/(byte*) D011#2 ) (byte) RSEL#1 ← phi( @5/(byte) RSEL#2 ) @@ -975,7 +969,7 @@ main: scope:[main] from @5 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -984,24 +978,13 @@ main: scope:[main] from @5 to:main::@5 main::@5: scope:[main] from main (byte) plots_cnt#8 ← phi( main/(byte) plots_cnt#10 ) - (byte[]) plot_yhi#17 ← phi( main/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#17 ← phi( main/(byte[]) plot_ylo#18 ) (byte[]) plots_y#8 ← phi( main/(byte[]) plots_y#10 ) (byte[]) plots_x#8 ← phi( main/(byte[]) plots_x#10 ) (byte*) BGCOL#9 ← phi( main/(byte*) BGCOL#1 ) - (byte[]) plot_bit#8 ← phi( main/(byte[]) plot_bit#10 ) - (byte[]) plot_xhi#8 ← phi( main/(byte[]) plot_xhi#10 ) - (byte*) BITMAP#8 ← phi( main/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#8 ← phi( main/(byte[]) plot_xlo#10 ) (byte*) RASTER#4 ← phi( main/(byte*) RASTER#6 ) call init_plot_tables param-assignment to:main::@6 main::@6: scope:[main] from main::@5 - (byte[]) plot_bit#15 ← phi( main::@5/(byte[]) plot_bit#8 ) - (byte[]) plot_ylo#16 ← phi( main::@5/(byte[]) plot_ylo#17 ) - (byte[]) plot_yhi#16 ← phi( main::@5/(byte[]) plot_yhi#17 ) - (byte[]) plot_xlo#15 ← phi( main::@5/(byte[]) plot_xlo#8 ) - (byte[]) plot_xhi#15 ← phi( main::@5/(byte[]) plot_xhi#8 ) (byte) plots_cnt#7 ← phi( main::@5/(byte) plots_cnt#8 ) (byte[]) plots_y#7 ← phi( main::@5/(byte[]) plots_y#8 ) (byte[]) plots_x#7 ← phi( main::@5/(byte[]) plots_x#8 ) @@ -1009,11 +992,6 @@ main::@6: scope:[main] from main::@5 (byte*) RASTER#3 ← phi( main::@5/(byte*) RASTER#4 ) to:main::@2 main::@1: scope:[main] from main::@7 - (byte[]) plot_bit#14 ← phi( main::@7/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#15 ← phi( main::@7/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#15 ← phi( main::@7/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#14 ← phi( main::@7/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#14 ← phi( main::@7/(byte[]) plot_xhi#16 ) (byte) plots_cnt#6 ← phi( main::@7/(byte) plots_cnt#9 ) (byte[]) plots_y#6 ← phi( main::@7/(byte[]) plots_y#9 ) (byte[]) plots_x#6 ← phi( main::@7/(byte[]) plots_x#9 ) @@ -1021,11 +999,6 @@ main::@1: scope:[main] from main::@7 (byte*) RASTER#2 ← phi( main::@7/(byte*) RASTER#5 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@6 - (byte[]) plot_bit#13 ← phi( main::@1/(byte[]) plot_bit#14 main::@2/(byte[]) plot_bit#13 main::@6/(byte[]) plot_bit#15 ) - (byte[]) plot_ylo#13 ← phi( main::@1/(byte[]) plot_ylo#15 main::@2/(byte[]) plot_ylo#13 main::@6/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#13 ← phi( main::@1/(byte[]) plot_yhi#15 main::@2/(byte[]) plot_yhi#13 main::@6/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#13 ← phi( main::@1/(byte[]) plot_xlo#14 main::@2/(byte[]) plot_xlo#13 main::@6/(byte[]) plot_xlo#15 ) - (byte[]) plot_xhi#13 ← phi( main::@1/(byte[]) plot_xhi#14 main::@2/(byte[]) plot_xhi#13 main::@6/(byte[]) plot_xhi#15 ) (byte) plots_cnt#5 ← phi( main::@1/(byte) plots_cnt#6 main::@2/(byte) plots_cnt#5 main::@6/(byte) plots_cnt#7 ) (byte[]) plots_y#5 ← phi( main::@1/(byte[]) plots_y#6 main::@2/(byte[]) plots_y#5 main::@6/(byte[]) plots_y#7 ) (byte[]) plots_x#5 ← phi( main::@1/(byte[]) plots_x#6 main::@2/(byte[]) plots_x#5 main::@6/(byte[]) plots_x#7 ) @@ -1035,11 +1008,6 @@ main::@2: scope:[main] from main::@1 main::@2 main::@6 if((boolean~) main::$11) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - (byte[]) plot_bit#11 ← phi( main::@2/(byte[]) plot_bit#13 ) - (byte[]) plot_ylo#10 ← phi( main::@2/(byte[]) plot_ylo#13 ) - (byte[]) plot_yhi#10 ← phi( main::@2/(byte[]) plot_yhi#13 ) - (byte[]) plot_xlo#11 ← phi( main::@2/(byte[]) plot_xlo#13 ) - (byte[]) plot_xhi#11 ← phi( main::@2/(byte[]) plot_xhi#13 ) (byte) plots_cnt#4 ← phi( main::@2/(byte) plots_cnt#5 ) (byte*) RASTER#7 ← phi( main::@2/(byte*) RASTER#1 ) (byte[]) plots_y#4 ← phi( main::@2/(byte[]) plots_y#5 ) @@ -1049,11 +1017,6 @@ main::@3: scope:[main] from main::@2 call plots param-assignment to:main::@7 main::@7: scope:[main] from main::@3 - (byte[]) plot_bit#16 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#19 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#19 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#16 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#16 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#9 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#9 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#9 ← phi( main::@3/(byte[]) plots_x#4 ) @@ -1068,7 +1031,6 @@ main::@return: scope:[main] from main::@7 @1: scope:[] from @begin (byte*) RASTER#10 ← phi( @begin/(byte*) RASTER#0 ) (byte*) D018#4 ← phi( @begin/(byte*) D018#0 ) - (byte*) BITMAP#11 ← phi( @begin/(byte*) BITMAP#0 ) (byte*) SCREEN#8 ← phi( @begin/(byte*) SCREEN#0 ) (byte*) D011#4 ← phi( @begin/(byte*) D011#0 ) (byte) RSEL#4 ← phi( @begin/(byte) RSEL#0 ) @@ -1081,22 +1043,12 @@ main::@return: scope:[main] from main::@7 (byte) plots_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@2 plots: scope:[plots] from main::@3 - (byte[]) plot_bit#6 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#6 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#6 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#6 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#6 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#3 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#2 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#2 ← phi( main::@3/(byte[]) plots_x#4 ) (byte) plots::i#0 ← (byte/signed byte/word/signed word) 0 to:plots::@1 plots::@1: scope:[plots] from plots plots::@3 - (byte[]) plot_bit#3 ← phi( plots/(byte[]) plot_bit#6 plots::@3/(byte[]) plot_bit#7 ) - (byte[]) plot_ylo#3 ← phi( plots/(byte[]) plot_ylo#6 plots::@3/(byte[]) plot_ylo#7 ) - (byte[]) plot_yhi#3 ← phi( plots/(byte[]) plot_yhi#6 plots::@3/(byte[]) plot_yhi#7 ) - (byte[]) plot_xlo#3 ← phi( plots/(byte[]) plot_xlo#6 plots::@3/(byte[]) plot_xlo#7 ) - (byte[]) plot_xhi#3 ← phi( plots/(byte[]) plot_xhi#6 plots::@3/(byte[]) plot_xhi#7 ) (byte) plots_cnt#2 ← phi( plots/(byte) plots_cnt#3 plots::@3/(byte) plots_cnt#1 ) (byte[]) plots_y#1 ← phi( plots/(byte[]) plots_y#2 plots::@3/(byte[]) plots_y#3 ) (byte) plots::i#2 ← phi( plots/(byte) plots::i#0 plots::@3/(byte) plots::i#1 ) @@ -1108,11 +1060,6 @@ plots::@1: scope:[plots] from plots plots::@3 call plot param-assignment to:plots::@3 plots::@3: scope:[plots] from plots::@1 - (byte[]) plot_bit#7 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#7 ← phi( plots::@1/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#7 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#7 ← phi( plots::@1/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#7 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte[]) plots_y#3 ← phi( plots::@1/(byte[]) plots_y#1 ) (byte[]) plots_x#3 ← phi( plots::@1/(byte[]) plots_x#1 ) (byte) plots_cnt#1 ← phi( plots::@1/(byte) plots_cnt#2 ) @@ -1130,7 +1077,6 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plots_x#12 ← phi( @1/(byte[]) plots_x#0 ) (byte*) RASTER#9 ← phi( @1/(byte*) RASTER#10 ) (byte*) D018#3 ← phi( @1/(byte*) D018#4 ) - (byte*) BITMAP#10 ← phi( @1/(byte*) BITMAP#11 ) (byte*) SCREEN#7 ← phi( @1/(byte*) SCREEN#8 ) (byte*) D011#3 ← phi( @1/(byte*) D011#4 ) (byte) RSEL#3 ← phi( @1/(byte) RSEL#4 ) @@ -1145,26 +1091,21 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 to:@5 plot: scope:[plot] from plots::@1 - (byte[]) plot_bit#1 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#1 ← phi( plots::@1/(byte[]) plot_ylo#3 ) (byte) plot::y#1 ← phi( plots::@1/(byte) plot::y#0 ) - (byte[]) plot_yhi#1 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#1 ← phi( plots::@1/(byte[]) plot_xlo#3 ) (byte) plot::x#1 ← phi( plots::@1/(byte) plot::x#0 ) - (byte[]) plot_xhi#1 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#1 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#1 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#1 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#1 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#1 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#1 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#1 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#1 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -1172,29 +1113,17 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@5 - (byte[]) plot_yhi#14 ← phi( main::@5/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#14 ← phi( main::@5/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#4 ← phi( main::@5/(byte[]) plot_bit#8 ) - (byte[]) plot_xhi#4 ← phi( main::@5/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#6 ← phi( main::@5/(byte*) BITMAP#8 ) - (byte[]) plot_xlo#4 ← phi( main::@5/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#11 ← phi( init_plot_tables/(byte[]) plot_yhi#14 init_plot_tables::@2/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#11 ← phi( init_plot_tables/(byte[]) plot_ylo#14 init_plot_tables::@2/(byte[]) plot_ylo#8 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#4 init_plot_tables::@2/(byte[]) plot_bit#5 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#4 init_plot_tables::@2/(byte[]) plot_xhi#5 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#4 init_plot_tables::@2/(byte[]) plot_xlo#5 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (boolean~) init_plot_tables::$3 ← (byte) init_plot_tables::bits#1 == (byte/signed byte/word/signed word) 0 @@ -1202,53 +1131,35 @@ init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_ if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 init_plot_tables::@5/(byte[]) plot_yhi#12 ) - (byte[]) plot_ylo#8 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 init_plot_tables::@5/(byte[]) plot_ylo#12 ) - (byte[]) plot_bit#5 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#9 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#5 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#9 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#9 ) - (byte[]) plot_xlo#5 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#9 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte[]) plot_yhi#12 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 ) - (byte[]) plot_ylo#12 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 ) - (byte[]) plot_bit#9 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 ) - (byte[]) plot_xhi#9 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#9 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#9 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte[]) plot_yhi#5 ← phi( init_plot_tables::@2/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#5 ← phi( init_plot_tables::@2/(byte[]) plot_ylo#8 ) (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#4 init_plot_tables::@6/(byte[]) plot_yhi#5 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#4 init_plot_tables::@6/(byte[]) plot_ylo#5 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$11 ← (byte~) init_plot_tables::$10 == (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← ! (boolean~) init_plot_tables::$11 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#4 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#9 ) - (byte[]) plot_ylo#4 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#9 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -1256,8 +1167,6 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p if((boolean~) init_plot_tables::$15) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte[]) plot_yhi#9 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#9 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 ) (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) (word/signed word~) init_plot_tables::$13 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 8 @@ -1269,16 +1178,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#5 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#5 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -1300,16 +1207,10 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 to:@return @5: scope:[] from @2 (byte) plots_cnt#11 ← phi( @2/(byte) plots_cnt#12 ) - (byte[]) plot_yhi#20 ← phi( @2/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#20 ← phi( @2/(byte[]) plot_ylo#0 ) (byte[]) plots_y#11 ← phi( @2/(byte[]) plots_y#12 ) (byte[]) plots_x#11 ← phi( @2/(byte[]) plots_x#12 ) - (byte[]) plot_bit#12 ← phi( @2/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#12 ← phi( @2/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#12 ← phi( @2/(byte[]) plot_xlo#0 ) (byte*) RASTER#8 ← phi( @2/(byte*) RASTER#9 ) (byte*) D018#2 ← phi( @2/(byte*) D018#3 ) - (byte*) BITMAP#5 ← phi( @2/(byte*) BITMAP#10 ) (byte*) SCREEN#4 ← phi( @2/(byte*) SCREEN#7 ) (byte*) D011#2 ← phi( @2/(byte*) D011#3 ) (byte) RSEL#2 ← phi( @2/(byte) RSEL#3 ) @@ -1338,16 +1239,10 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN to:@1 main: scope:[main] from @5 (byte) plots_cnt#10 ← phi( @5/(byte) plots_cnt#11 ) - (byte[]) plot_yhi#18 ← phi( @5/(byte[]) plot_yhi#20 ) - (byte[]) plot_ylo#18 ← phi( @5/(byte[]) plot_ylo#20 ) (byte[]) plots_y#10 ← phi( @5/(byte[]) plots_y#11 ) (byte[]) plots_x#10 ← phi( @5/(byte[]) plots_x#11 ) - (byte[]) plot_bit#10 ← phi( @5/(byte[]) plot_bit#12 ) - (byte[]) plot_xhi#10 ← phi( @5/(byte[]) plot_xhi#12 ) - (byte[]) plot_xlo#10 ← phi( @5/(byte[]) plot_xlo#12 ) (byte*) RASTER#6 ← phi( @5/(byte*) RASTER#8 ) (byte*) D018#1 ← phi( @5/(byte*) D018#2 ) - (byte*) BITMAP#1 ← phi( @5/(byte*) BITMAP#5 ) (byte*) SCREEN#1 ← phi( @5/(byte*) SCREEN#4 ) (byte*) D011#1 ← phi( @5/(byte*) D011#2 ) (byte) RSEL#1 ← phi( @5/(byte) RSEL#2 ) @@ -1363,7 +1258,7 @@ main: scope:[main] from @5 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -1372,24 +1267,13 @@ main: scope:[main] from @5 to:main::@5 main::@5: scope:[main] from main (byte) plots_cnt#8 ← phi( main/(byte) plots_cnt#10 ) - (byte[]) plot_yhi#17 ← phi( main/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#17 ← phi( main/(byte[]) plot_ylo#18 ) (byte[]) plots_y#8 ← phi( main/(byte[]) plots_y#10 ) (byte[]) plots_x#8 ← phi( main/(byte[]) plots_x#10 ) (byte*) BGCOL#9 ← phi( main/(byte*) BGCOL#1 ) - (byte[]) plot_bit#8 ← phi( main/(byte[]) plot_bit#10 ) - (byte[]) plot_xhi#8 ← phi( main/(byte[]) plot_xhi#10 ) - (byte*) BITMAP#8 ← phi( main/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#8 ← phi( main/(byte[]) plot_xlo#10 ) (byte*) RASTER#4 ← phi( main/(byte*) RASTER#6 ) call init_plot_tables param-assignment to:main::@6 main::@6: scope:[main] from main::@5 - (byte[]) plot_bit#15 ← phi( main::@5/(byte[]) plot_bit#8 ) - (byte[]) plot_ylo#16 ← phi( main::@5/(byte[]) plot_ylo#17 ) - (byte[]) plot_yhi#16 ← phi( main::@5/(byte[]) plot_yhi#17 ) - (byte[]) plot_xlo#15 ← phi( main::@5/(byte[]) plot_xlo#8 ) - (byte[]) plot_xhi#15 ← phi( main::@5/(byte[]) plot_xhi#8 ) (byte) plots_cnt#7 ← phi( main::@5/(byte) plots_cnt#8 ) (byte[]) plots_y#7 ← phi( main::@5/(byte[]) plots_y#8 ) (byte[]) plots_x#7 ← phi( main::@5/(byte[]) plots_x#8 ) @@ -1397,11 +1281,6 @@ main::@6: scope:[main] from main::@5 (byte*) RASTER#3 ← phi( main::@5/(byte*) RASTER#4 ) to:main::@2 main::@1: scope:[main] from main::@7 - (byte[]) plot_bit#14 ← phi( main::@7/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#15 ← phi( main::@7/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#15 ← phi( main::@7/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#14 ← phi( main::@7/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#14 ← phi( main::@7/(byte[]) plot_xhi#16 ) (byte) plots_cnt#6 ← phi( main::@7/(byte) plots_cnt#9 ) (byte[]) plots_y#6 ← phi( main::@7/(byte[]) plots_y#9 ) (byte[]) plots_x#6 ← phi( main::@7/(byte[]) plots_x#9 ) @@ -1409,11 +1288,6 @@ main::@1: scope:[main] from main::@7 (byte*) RASTER#2 ← phi( main::@7/(byte*) RASTER#5 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@6 - (byte[]) plot_bit#13 ← phi( main::@1/(byte[]) plot_bit#14 main::@2/(byte[]) plot_bit#13 main::@6/(byte[]) plot_bit#15 ) - (byte[]) plot_ylo#13 ← phi( main::@1/(byte[]) plot_ylo#15 main::@2/(byte[]) plot_ylo#13 main::@6/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#13 ← phi( main::@1/(byte[]) plot_yhi#15 main::@2/(byte[]) plot_yhi#13 main::@6/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#13 ← phi( main::@1/(byte[]) plot_xlo#14 main::@2/(byte[]) plot_xlo#13 main::@6/(byte[]) plot_xlo#15 ) - (byte[]) plot_xhi#13 ← phi( main::@1/(byte[]) plot_xhi#14 main::@2/(byte[]) plot_xhi#13 main::@6/(byte[]) plot_xhi#15 ) (byte) plots_cnt#5 ← phi( main::@1/(byte) plots_cnt#6 main::@2/(byte) plots_cnt#5 main::@6/(byte) plots_cnt#7 ) (byte[]) plots_y#5 ← phi( main::@1/(byte[]) plots_y#6 main::@2/(byte[]) plots_y#5 main::@6/(byte[]) plots_y#7 ) (byte[]) plots_x#5 ← phi( main::@1/(byte[]) plots_x#6 main::@2/(byte[]) plots_x#5 main::@6/(byte[]) plots_x#7 ) @@ -1423,11 +1297,6 @@ main::@2: scope:[main] from main::@1 main::@2 main::@6 if((boolean~) main::$11) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - (byte[]) plot_bit#11 ← phi( main::@2/(byte[]) plot_bit#13 ) - (byte[]) plot_ylo#10 ← phi( main::@2/(byte[]) plot_ylo#13 ) - (byte[]) plot_yhi#10 ← phi( main::@2/(byte[]) plot_yhi#13 ) - (byte[]) plot_xlo#11 ← phi( main::@2/(byte[]) plot_xlo#13 ) - (byte[]) plot_xhi#11 ← phi( main::@2/(byte[]) plot_xhi#13 ) (byte) plots_cnt#4 ← phi( main::@2/(byte) plots_cnt#5 ) (byte*) RASTER#7 ← phi( main::@2/(byte*) RASTER#1 ) (byte[]) plots_y#4 ← phi( main::@2/(byte[]) plots_y#5 ) @@ -1437,11 +1306,6 @@ main::@3: scope:[main] from main::@2 call plots param-assignment to:main::@7 main::@7: scope:[main] from main::@3 - (byte[]) plot_bit#16 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#19 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#19 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#16 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#16 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#9 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#9 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#9 ← phi( main::@3/(byte[]) plots_x#4 ) @@ -1456,7 +1320,6 @@ main::@return: scope:[main] from main::@7 @1: scope:[] from @begin (byte*) RASTER#10 ← phi( @begin/(byte*) RASTER#0 ) (byte*) D018#4 ← phi( @begin/(byte*) D018#0 ) - (byte*) BITMAP#11 ← phi( @begin/(byte*) BITMAP#0 ) (byte*) SCREEN#8 ← phi( @begin/(byte*) SCREEN#0 ) (byte*) D011#4 ← phi( @begin/(byte*) D011#0 ) (byte) RSEL#4 ← phi( @begin/(byte) RSEL#0 ) @@ -1469,22 +1332,12 @@ main::@return: scope:[main] from main::@7 (byte) plots_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@2 plots: scope:[plots] from main::@3 - (byte[]) plot_bit#6 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#6 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#6 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#6 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#6 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#3 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#2 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#2 ← phi( main::@3/(byte[]) plots_x#4 ) (byte) plots::i#0 ← (byte/signed byte/word/signed word) 0 to:plots::@1 plots::@1: scope:[plots] from plots plots::@3 - (byte[]) plot_bit#3 ← phi( plots/(byte[]) plot_bit#6 plots::@3/(byte[]) plot_bit#7 ) - (byte[]) plot_ylo#3 ← phi( plots/(byte[]) plot_ylo#6 plots::@3/(byte[]) plot_ylo#7 ) - (byte[]) plot_yhi#3 ← phi( plots/(byte[]) plot_yhi#6 plots::@3/(byte[]) plot_yhi#7 ) - (byte[]) plot_xlo#3 ← phi( plots/(byte[]) plot_xlo#6 plots::@3/(byte[]) plot_xlo#7 ) - (byte[]) plot_xhi#3 ← phi( plots/(byte[]) plot_xhi#6 plots::@3/(byte[]) plot_xhi#7 ) (byte) plots_cnt#2 ← phi( plots/(byte) plots_cnt#3 plots::@3/(byte) plots_cnt#1 ) (byte[]) plots_y#1 ← phi( plots/(byte[]) plots_y#2 plots::@3/(byte[]) plots_y#3 ) (byte) plots::i#2 ← phi( plots/(byte) plots::i#0 plots::@3/(byte) plots::i#1 ) @@ -1496,11 +1349,6 @@ plots::@1: scope:[plots] from plots plots::@3 call plot param-assignment to:plots::@3 plots::@3: scope:[plots] from plots::@1 - (byte[]) plot_bit#7 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#7 ← phi( plots::@1/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#7 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#7 ← phi( plots::@1/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#7 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte[]) plots_y#3 ← phi( plots::@1/(byte[]) plots_y#1 ) (byte[]) plots_x#3 ← phi( plots::@1/(byte[]) plots_x#1 ) (byte) plots_cnt#1 ← phi( plots::@1/(byte) plots_cnt#2 ) @@ -1518,7 +1366,6 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plots_x#12 ← phi( @1/(byte[]) plots_x#0 ) (byte*) RASTER#9 ← phi( @1/(byte*) RASTER#10 ) (byte*) D018#3 ← phi( @1/(byte*) D018#4 ) - (byte*) BITMAP#10 ← phi( @1/(byte*) BITMAP#11 ) (byte*) SCREEN#7 ← phi( @1/(byte*) SCREEN#8 ) (byte*) D011#3 ← phi( @1/(byte*) D011#4 ) (byte) RSEL#3 ← phi( @1/(byte) RSEL#4 ) @@ -1533,26 +1380,21 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 to:@5 plot: scope:[plot] from plots::@1 - (byte[]) plot_bit#1 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#1 ← phi( plots::@1/(byte[]) plot_ylo#3 ) (byte) plot::y#1 ← phi( plots::@1/(byte) plot::y#0 ) - (byte[]) plot_yhi#1 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#1 ← phi( plots::@1/(byte[]) plot_xlo#3 ) (byte) plot::x#1 ← phi( plots::@1/(byte) plot::x#0 ) - (byte[]) plot_xhi#1 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#1 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#1 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#1 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#1 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#1 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#1 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#1 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#1 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -1560,29 +1402,17 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@5 - (byte[]) plot_yhi#14 ← phi( main::@5/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#14 ← phi( main::@5/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#4 ← phi( main::@5/(byte[]) plot_bit#8 ) - (byte[]) plot_xhi#4 ← phi( main::@5/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#6 ← phi( main::@5/(byte*) BITMAP#8 ) - (byte[]) plot_xlo#4 ← phi( main::@5/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#11 ← phi( init_plot_tables/(byte[]) plot_yhi#14 init_plot_tables::@2/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#11 ← phi( init_plot_tables/(byte[]) plot_ylo#14 init_plot_tables::@2/(byte[]) plot_ylo#8 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#4 init_plot_tables::@2/(byte[]) plot_bit#5 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#4 init_plot_tables::@2/(byte[]) plot_xhi#5 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#4 init_plot_tables::@2/(byte[]) plot_xlo#5 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (boolean~) init_plot_tables::$3 ← (byte) init_plot_tables::bits#1 == (byte/signed byte/word/signed word) 0 @@ -1590,53 +1420,35 @@ init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_ if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 init_plot_tables::@5/(byte[]) plot_yhi#12 ) - (byte[]) plot_ylo#8 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 init_plot_tables::@5/(byte[]) plot_ylo#12 ) - (byte[]) plot_bit#5 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#9 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#5 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#9 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#9 ) - (byte[]) plot_xlo#5 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#9 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte[]) plot_yhi#12 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 ) - (byte[]) plot_ylo#12 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 ) - (byte[]) plot_bit#9 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 ) - (byte[]) plot_xhi#9 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#9 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#9 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte[]) plot_yhi#5 ← phi( init_plot_tables::@2/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#5 ← phi( init_plot_tables::@2/(byte[]) plot_ylo#8 ) (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#4 init_plot_tables::@6/(byte[]) plot_yhi#5 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#4 init_plot_tables::@6/(byte[]) plot_ylo#5 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$11 ← (byte~) init_plot_tables::$10 == (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← ! (boolean~) init_plot_tables::$11 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#4 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#9 ) - (byte[]) plot_ylo#4 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#9 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -1644,8 +1456,6 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p if((boolean~) init_plot_tables::$15) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte[]) plot_yhi#9 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#9 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 ) (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) (word/signed word~) init_plot_tables::$13 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 8 @@ -1657,16 +1467,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#5 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#5 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -1688,16 +1496,10 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 to:@return @5: scope:[] from @2 (byte) plots_cnt#11 ← phi( @2/(byte) plots_cnt#12 ) - (byte[]) plot_yhi#20 ← phi( @2/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#20 ← phi( @2/(byte[]) plot_ylo#0 ) (byte[]) plots_y#11 ← phi( @2/(byte[]) plots_y#12 ) (byte[]) plots_x#11 ← phi( @2/(byte[]) plots_x#12 ) - (byte[]) plot_bit#12 ← phi( @2/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#12 ← phi( @2/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#12 ← phi( @2/(byte[]) plot_xlo#0 ) (byte*) RASTER#8 ← phi( @2/(byte*) RASTER#9 ) (byte*) D018#2 ← phi( @2/(byte*) D018#3 ) - (byte*) BITMAP#5 ← phi( @2/(byte*) BITMAP#10 ) (byte*) SCREEN#4 ← phi( @2/(byte*) SCREEN#7 ) (byte*) D011#2 ← phi( @2/(byte*) D011#3 ) (byte) RSEL#2 ← phi( @2/(byte) RSEL#3 ) @@ -1732,17 +1534,6 @@ INITIAL SSA SYMBOL TABLE (byte*) BGCOL#9 (byte*) BITMAP (byte*) BITMAP#0 -(byte*) BITMAP#1 -(byte*) BITMAP#10 -(byte*) BITMAP#11 -(byte*) BITMAP#2 -(byte*) BITMAP#3 -(byte*) BITMAP#4 -(byte*) BITMAP#5 -(byte*) BITMAP#6 -(byte*) BITMAP#7 -(byte*) BITMAP#8 -(byte*) BITMAP#9 (byte) BMM (byte) BMM#0 (byte) BMM#1 @@ -1912,102 +1703,14 @@ INITIAL SSA SYMBOL TABLE (byte) plot::y#1 (byte[]) plot_bit (byte[]) plot_bit#0 -(byte[]) plot_bit#1 -(byte[]) plot_bit#10 -(byte[]) plot_bit#11 -(byte[]) plot_bit#12 -(byte[]) plot_bit#13 -(byte[]) plot_bit#14 -(byte[]) plot_bit#15 -(byte[]) plot_bit#16 -(byte[]) plot_bit#2 -(byte[]) plot_bit#3 -(byte[]) plot_bit#4 -(byte[]) plot_bit#5 -(byte[]) plot_bit#6 -(byte[]) plot_bit#7 -(byte[]) plot_bit#8 -(byte[]) plot_bit#9 (byte[]) plot_xhi (byte[]) plot_xhi#0 -(byte[]) plot_xhi#1 -(byte[]) plot_xhi#10 -(byte[]) plot_xhi#11 -(byte[]) plot_xhi#12 -(byte[]) plot_xhi#13 -(byte[]) plot_xhi#14 -(byte[]) plot_xhi#15 -(byte[]) plot_xhi#16 -(byte[]) plot_xhi#2 -(byte[]) plot_xhi#3 -(byte[]) plot_xhi#4 -(byte[]) plot_xhi#5 -(byte[]) plot_xhi#6 -(byte[]) plot_xhi#7 -(byte[]) plot_xhi#8 -(byte[]) plot_xhi#9 (byte[]) plot_xlo (byte[]) plot_xlo#0 -(byte[]) plot_xlo#1 -(byte[]) plot_xlo#10 -(byte[]) plot_xlo#11 -(byte[]) plot_xlo#12 -(byte[]) plot_xlo#13 -(byte[]) plot_xlo#14 -(byte[]) plot_xlo#15 -(byte[]) plot_xlo#16 -(byte[]) plot_xlo#2 -(byte[]) plot_xlo#3 -(byte[]) plot_xlo#4 -(byte[]) plot_xlo#5 -(byte[]) plot_xlo#6 -(byte[]) plot_xlo#7 -(byte[]) plot_xlo#8 -(byte[]) plot_xlo#9 (byte[]) plot_yhi (byte[]) plot_yhi#0 -(byte[]) plot_yhi#1 -(byte[]) plot_yhi#10 -(byte[]) plot_yhi#11 -(byte[]) plot_yhi#12 -(byte[]) plot_yhi#13 -(byte[]) plot_yhi#14 -(byte[]) plot_yhi#15 -(byte[]) plot_yhi#16 -(byte[]) plot_yhi#17 -(byte[]) plot_yhi#18 -(byte[]) plot_yhi#19 -(byte[]) plot_yhi#2 -(byte[]) plot_yhi#20 -(byte[]) plot_yhi#3 -(byte[]) plot_yhi#4 -(byte[]) plot_yhi#5 -(byte[]) plot_yhi#6 -(byte[]) plot_yhi#7 -(byte[]) plot_yhi#8 -(byte[]) plot_yhi#9 (byte[]) plot_ylo (byte[]) plot_ylo#0 -(byte[]) plot_ylo#1 -(byte[]) plot_ylo#10 -(byte[]) plot_ylo#11 -(byte[]) plot_ylo#12 -(byte[]) plot_ylo#13 -(byte[]) plot_ylo#14 -(byte[]) plot_ylo#15 -(byte[]) plot_ylo#16 -(byte[]) plot_ylo#17 -(byte[]) plot_ylo#18 -(byte[]) plot_ylo#19 -(byte[]) plot_ylo#2 -(byte[]) plot_ylo#20 -(byte[]) plot_ylo#3 -(byte[]) plot_ylo#4 -(byte[]) plot_ylo#5 -(byte[]) plot_ylo#6 -(byte[]) plot_ylo#7 -(byte[]) plot_ylo#8 -(byte[]) plot_ylo#9 (void()) plots() (byte~) plots::$0 (byte~) plots::$1 @@ -2080,16 +1783,10 @@ CONTROL FLOW GRAPH to:@1 main: scope:[main] from @5 (byte) plots_cnt#10 ← phi( @5/(byte) plots_cnt#11 ) - (byte[]) plot_yhi#18 ← phi( @5/(byte[]) plot_yhi#20 ) - (byte[]) plot_ylo#18 ← phi( @5/(byte[]) plot_ylo#20 ) (byte[]) plots_y#10 ← phi( @5/(byte[]) plots_y#11 ) (byte[]) plots_x#10 ← phi( @5/(byte[]) plots_x#11 ) - (byte[]) plot_bit#10 ← phi( @5/(byte[]) plot_bit#12 ) - (byte[]) plot_xhi#10 ← phi( @5/(byte[]) plot_xhi#12 ) - (byte[]) plot_xlo#10 ← phi( @5/(byte[]) plot_xlo#12 ) (byte*) RASTER#6 ← phi( @5/(byte*) RASTER#8 ) (byte*) D018#1 ← phi( @5/(byte*) D018#2 ) - (byte*) BITMAP#1 ← phi( @5/(byte*) BITMAP#5 ) (byte*) SCREEN#1 ← phi( @5/(byte*) SCREEN#4 ) (byte*) D011#1 ← phi( @5/(byte*) D011#2 ) (byte) RSEL#1 ← phi( @5/(byte) RSEL#2 ) @@ -2105,7 +1802,7 @@ main: scope:[main] from @5 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -2114,24 +1811,13 @@ main: scope:[main] from @5 to:main::@5 main::@5: scope:[main] from main (byte) plots_cnt#8 ← phi( main/(byte) plots_cnt#10 ) - (byte[]) plot_yhi#17 ← phi( main/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#17 ← phi( main/(byte[]) plot_ylo#18 ) (byte[]) plots_y#8 ← phi( main/(byte[]) plots_y#10 ) (byte[]) plots_x#8 ← phi( main/(byte[]) plots_x#10 ) (byte*) BGCOL#9 ← phi( main/(byte*) BGCOL#1 ) - (byte[]) plot_bit#8 ← phi( main/(byte[]) plot_bit#10 ) - (byte[]) plot_xhi#8 ← phi( main/(byte[]) plot_xhi#10 ) - (byte*) BITMAP#8 ← phi( main/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#8 ← phi( main/(byte[]) plot_xlo#10 ) (byte*) RASTER#4 ← phi( main/(byte*) RASTER#6 ) call init_plot_tables param-assignment to:main::@6 main::@6: scope:[main] from main::@5 - (byte[]) plot_bit#15 ← phi( main::@5/(byte[]) plot_bit#8 ) - (byte[]) plot_ylo#16 ← phi( main::@5/(byte[]) plot_ylo#17 ) - (byte[]) plot_yhi#16 ← phi( main::@5/(byte[]) plot_yhi#17 ) - (byte[]) plot_xlo#15 ← phi( main::@5/(byte[]) plot_xlo#8 ) - (byte[]) plot_xhi#15 ← phi( main::@5/(byte[]) plot_xhi#8 ) (byte) plots_cnt#7 ← phi( main::@5/(byte) plots_cnt#8 ) (byte[]) plots_y#7 ← phi( main::@5/(byte[]) plots_y#8 ) (byte[]) plots_x#7 ← phi( main::@5/(byte[]) plots_x#8 ) @@ -2139,11 +1825,6 @@ main::@6: scope:[main] from main::@5 (byte*) RASTER#3 ← phi( main::@5/(byte*) RASTER#4 ) to:main::@2 main::@1: scope:[main] from main::@7 - (byte[]) plot_bit#14 ← phi( main::@7/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#15 ← phi( main::@7/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#15 ← phi( main::@7/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#14 ← phi( main::@7/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#14 ← phi( main::@7/(byte[]) plot_xhi#16 ) (byte) plots_cnt#6 ← phi( main::@7/(byte) plots_cnt#9 ) (byte[]) plots_y#6 ← phi( main::@7/(byte[]) plots_y#9 ) (byte[]) plots_x#6 ← phi( main::@7/(byte[]) plots_x#9 ) @@ -2151,11 +1832,6 @@ main::@1: scope:[main] from main::@7 (byte*) RASTER#2 ← phi( main::@7/(byte*) RASTER#5 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@6 - (byte[]) plot_bit#13 ← phi( main::@1/(byte[]) plot_bit#14 main::@2/(byte[]) plot_bit#13 main::@6/(byte[]) plot_bit#15 ) - (byte[]) plot_ylo#13 ← phi( main::@1/(byte[]) plot_ylo#15 main::@2/(byte[]) plot_ylo#13 main::@6/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#13 ← phi( main::@1/(byte[]) plot_yhi#15 main::@2/(byte[]) plot_yhi#13 main::@6/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#13 ← phi( main::@1/(byte[]) plot_xlo#14 main::@2/(byte[]) plot_xlo#13 main::@6/(byte[]) plot_xlo#15 ) - (byte[]) plot_xhi#13 ← phi( main::@1/(byte[]) plot_xhi#14 main::@2/(byte[]) plot_xhi#13 main::@6/(byte[]) plot_xhi#15 ) (byte) plots_cnt#5 ← phi( main::@1/(byte) plots_cnt#6 main::@2/(byte) plots_cnt#5 main::@6/(byte) plots_cnt#7 ) (byte[]) plots_y#5 ← phi( main::@1/(byte[]) plots_y#6 main::@2/(byte[]) plots_y#5 main::@6/(byte[]) plots_y#7 ) (byte[]) plots_x#5 ← phi( main::@1/(byte[]) plots_x#6 main::@2/(byte[]) plots_x#5 main::@6/(byte[]) plots_x#7 ) @@ -2165,11 +1841,6 @@ main::@2: scope:[main] from main::@1 main::@2 main::@6 if((boolean~) main::$11) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - (byte[]) plot_bit#11 ← phi( main::@2/(byte[]) plot_bit#13 ) - (byte[]) plot_ylo#10 ← phi( main::@2/(byte[]) plot_ylo#13 ) - (byte[]) plot_yhi#10 ← phi( main::@2/(byte[]) plot_yhi#13 ) - (byte[]) plot_xlo#11 ← phi( main::@2/(byte[]) plot_xlo#13 ) - (byte[]) plot_xhi#11 ← phi( main::@2/(byte[]) plot_xhi#13 ) (byte) plots_cnt#4 ← phi( main::@2/(byte) plots_cnt#5 ) (byte*) RASTER#7 ← phi( main::@2/(byte*) RASTER#1 ) (byte[]) plots_y#4 ← phi( main::@2/(byte[]) plots_y#5 ) @@ -2179,11 +1850,6 @@ main::@3: scope:[main] from main::@2 call plots param-assignment to:main::@7 main::@7: scope:[main] from main::@3 - (byte[]) plot_bit#16 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#19 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#19 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#16 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#16 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#9 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#9 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#9 ← phi( main::@3/(byte[]) plots_x#4 ) @@ -2198,7 +1864,6 @@ main::@return: scope:[main] from main::@7 @1: scope:[] from @begin (byte*) RASTER#10 ← phi( @begin/(byte*) RASTER#0 ) (byte*) D018#4 ← phi( @begin/(byte*) D018#0 ) - (byte*) BITMAP#11 ← phi( @begin/(byte*) BITMAP#0 ) (byte*) SCREEN#8 ← phi( @begin/(byte*) SCREEN#0 ) (byte*) D011#4 ← phi( @begin/(byte*) D011#0 ) (byte) RSEL#4 ← phi( @begin/(byte) RSEL#0 ) @@ -2211,22 +1876,12 @@ main::@return: scope:[main] from main::@7 (byte) plots_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@2 plots: scope:[plots] from main::@3 - (byte[]) plot_bit#6 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#6 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#6 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#6 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#6 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#3 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#2 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#2 ← phi( main::@3/(byte[]) plots_x#4 ) (byte) plots::i#0 ← (byte/signed byte/word/signed word) 0 to:plots::@1 plots::@1: scope:[plots] from plots plots::@3 - (byte[]) plot_bit#3 ← phi( plots/(byte[]) plot_bit#6 plots::@3/(byte[]) plot_bit#7 ) - (byte[]) plot_ylo#3 ← phi( plots/(byte[]) plot_ylo#6 plots::@3/(byte[]) plot_ylo#7 ) - (byte[]) plot_yhi#3 ← phi( plots/(byte[]) plot_yhi#6 plots::@3/(byte[]) plot_yhi#7 ) - (byte[]) plot_xlo#3 ← phi( plots/(byte[]) plot_xlo#6 plots::@3/(byte[]) plot_xlo#7 ) - (byte[]) plot_xhi#3 ← phi( plots/(byte[]) plot_xhi#6 plots::@3/(byte[]) plot_xhi#7 ) (byte) plots_cnt#2 ← phi( plots/(byte) plots_cnt#3 plots::@3/(byte) plots_cnt#1 ) (byte[]) plots_y#1 ← phi( plots/(byte[]) plots_y#2 plots::@3/(byte[]) plots_y#3 ) (byte) plots::i#2 ← phi( plots/(byte) plots::i#0 plots::@3/(byte) plots::i#1 ) @@ -2238,11 +1893,6 @@ plots::@1: scope:[plots] from plots plots::@3 call plot param-assignment to:plots::@3 plots::@3: scope:[plots] from plots::@1 - (byte[]) plot_bit#7 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#7 ← phi( plots::@1/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#7 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#7 ← phi( plots::@1/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#7 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte[]) plots_y#3 ← phi( plots::@1/(byte[]) plots_y#1 ) (byte[]) plots_x#3 ← phi( plots::@1/(byte[]) plots_x#1 ) (byte) plots_cnt#1 ← phi( plots::@1/(byte) plots_cnt#2 ) @@ -2260,7 +1910,6 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plots_x#12 ← phi( @1/(byte[]) plots_x#0 ) (byte*) RASTER#9 ← phi( @1/(byte*) RASTER#10 ) (byte*) D018#3 ← phi( @1/(byte*) D018#4 ) - (byte*) BITMAP#10 ← phi( @1/(byte*) BITMAP#11 ) (byte*) SCREEN#7 ← phi( @1/(byte*) SCREEN#8 ) (byte*) D011#3 ← phi( @1/(byte*) D011#4 ) (byte) RSEL#3 ← phi( @1/(byte) RSEL#4 ) @@ -2275,26 +1924,21 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 to:@5 plot: scope:[plot] from plots::@1 - (byte[]) plot_bit#1 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#1 ← phi( plots::@1/(byte[]) plot_ylo#3 ) (byte) plot::y#1 ← phi( plots::@1/(byte) plot::y#0 ) - (byte[]) plot_yhi#1 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#1 ← phi( plots::@1/(byte[]) plot_xlo#3 ) (byte) plot::x#1 ← phi( plots::@1/(byte) plot::x#0 ) - (byte[]) plot_xhi#1 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#1 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#1 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#1 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#1 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#1 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#1 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#1 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#1 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -2302,29 +1946,17 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@5 - (byte[]) plot_yhi#14 ← phi( main::@5/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#14 ← phi( main::@5/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#4 ← phi( main::@5/(byte[]) plot_bit#8 ) - (byte[]) plot_xhi#4 ← phi( main::@5/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#6 ← phi( main::@5/(byte*) BITMAP#8 ) - (byte[]) plot_xlo#4 ← phi( main::@5/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#11 ← phi( init_plot_tables/(byte[]) plot_yhi#14 init_plot_tables::@2/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#11 ← phi( init_plot_tables/(byte[]) plot_ylo#14 init_plot_tables::@2/(byte[]) plot_ylo#8 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#4 init_plot_tables::@2/(byte[]) plot_bit#5 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#4 init_plot_tables::@2/(byte[]) plot_xhi#5 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#4 init_plot_tables::@2/(byte[]) plot_xlo#5 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (boolean~) init_plot_tables::$3 ← (byte) init_plot_tables::bits#1 == (byte/signed byte/word/signed word) 0 @@ -2332,53 +1964,35 @@ init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_ if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 init_plot_tables::@5/(byte[]) plot_yhi#12 ) - (byte[]) plot_ylo#8 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 init_plot_tables::@5/(byte[]) plot_ylo#12 ) - (byte[]) plot_bit#5 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#9 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#5 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#9 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#9 ) - (byte[]) plot_xlo#5 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#9 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte[]) plot_yhi#12 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 ) - (byte[]) plot_ylo#12 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 ) - (byte[]) plot_bit#9 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 ) - (byte[]) plot_xhi#9 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#9 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#9 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte[]) plot_yhi#5 ← phi( init_plot_tables::@2/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#5 ← phi( init_plot_tables::@2/(byte[]) plot_ylo#8 ) (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#4 init_plot_tables::@6/(byte[]) plot_yhi#5 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#4 init_plot_tables::@6/(byte[]) plot_ylo#5 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$11 ← (byte~) init_plot_tables::$10 == (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← ! (boolean~) init_plot_tables::$11 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#4 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#9 ) - (byte[]) plot_ylo#4 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#9 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -2386,8 +2000,6 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p if((boolean~) init_plot_tables::$15) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte[]) plot_yhi#9 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#9 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 ) (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) (word/signed word~) init_plot_tables::$13 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 8 @@ -2399,16 +2011,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#5 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#5 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -2430,16 +2040,10 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 to:@return @5: scope:[] from @2 (byte) plots_cnt#11 ← phi( @2/(byte) plots_cnt#12 ) - (byte[]) plot_yhi#20 ← phi( @2/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#20 ← phi( @2/(byte[]) plot_ylo#0 ) (byte[]) plots_y#11 ← phi( @2/(byte[]) plots_y#12 ) (byte[]) plots_x#11 ← phi( @2/(byte[]) plots_x#12 ) - (byte[]) plot_bit#12 ← phi( @2/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#12 ← phi( @2/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#12 ← phi( @2/(byte[]) plot_xlo#0 ) (byte*) RASTER#8 ← phi( @2/(byte*) RASTER#9 ) (byte*) D018#2 ← phi( @2/(byte*) D018#3 ) - (byte*) BITMAP#5 ← phi( @2/(byte*) BITMAP#10 ) (byte*) SCREEN#4 ← phi( @2/(byte*) SCREEN#7 ) (byte*) D011#2 ← phi( @2/(byte*) D011#3 ) (byte) RSEL#2 ← phi( @2/(byte) RSEL#3 ) @@ -2469,16 +2073,10 @@ CONTROL FLOW GRAPH to:@1 main: scope:[main] from @5 (byte) plots_cnt#10 ← phi( @5/(byte) plots_cnt#11 ) - (byte[]) plot_yhi#18 ← phi( @5/(byte[]) plot_yhi#20 ) - (byte[]) plot_ylo#18 ← phi( @5/(byte[]) plot_ylo#20 ) (byte[]) plots_y#10 ← phi( @5/(byte[]) plots_y#11 ) (byte[]) plots_x#10 ← phi( @5/(byte[]) plots_x#11 ) - (byte[]) plot_bit#10 ← phi( @5/(byte[]) plot_bit#12 ) - (byte[]) plot_xhi#10 ← phi( @5/(byte[]) plot_xhi#12 ) - (byte[]) plot_xlo#10 ← phi( @5/(byte[]) plot_xlo#12 ) (byte*) RASTER#6 ← phi( @5/(byte*) RASTER#8 ) (byte*) D018#1 ← phi( @5/(byte*) D018#2 ) - (byte*) BITMAP#1 ← phi( @5/(byte*) BITMAP#5 ) (byte*) SCREEN#1 ← phi( @5/(byte*) SCREEN#4 ) (byte*) D011#1 ← phi( @5/(byte*) D011#2 ) (byte) RSEL#1 ← phi( @5/(byte) RSEL#2 ) @@ -2494,7 +2092,7 @@ main: scope:[main] from @5 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -2503,24 +2101,13 @@ main: scope:[main] from @5 to:main::@5 main::@5: scope:[main] from main (byte) plots_cnt#8 ← phi( main/(byte) plots_cnt#10 ) - (byte[]) plot_yhi#17 ← phi( main/(byte[]) plot_yhi#18 ) - (byte[]) plot_ylo#17 ← phi( main/(byte[]) plot_ylo#18 ) (byte[]) plots_y#8 ← phi( main/(byte[]) plots_y#10 ) (byte[]) plots_x#8 ← phi( main/(byte[]) plots_x#10 ) (byte*) BGCOL#9 ← phi( main/(byte*) BGCOL#1 ) - (byte[]) plot_bit#8 ← phi( main/(byte[]) plot_bit#10 ) - (byte[]) plot_xhi#8 ← phi( main/(byte[]) plot_xhi#10 ) - (byte*) BITMAP#8 ← phi( main/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#8 ← phi( main/(byte[]) plot_xlo#10 ) (byte*) RASTER#4 ← phi( main/(byte*) RASTER#6 ) call init_plot_tables param-assignment to:main::@6 main::@6: scope:[main] from main::@5 - (byte[]) plot_bit#15 ← phi( main::@5/(byte[]) plot_bit#8 ) - (byte[]) plot_ylo#16 ← phi( main::@5/(byte[]) plot_ylo#17 ) - (byte[]) plot_yhi#16 ← phi( main::@5/(byte[]) plot_yhi#17 ) - (byte[]) plot_xlo#15 ← phi( main::@5/(byte[]) plot_xlo#8 ) - (byte[]) plot_xhi#15 ← phi( main::@5/(byte[]) plot_xhi#8 ) (byte) plots_cnt#7 ← phi( main::@5/(byte) plots_cnt#8 ) (byte[]) plots_y#7 ← phi( main::@5/(byte[]) plots_y#8 ) (byte[]) plots_x#7 ← phi( main::@5/(byte[]) plots_x#8 ) @@ -2528,11 +2115,6 @@ main::@6: scope:[main] from main::@5 (byte*) RASTER#3 ← phi( main::@5/(byte*) RASTER#4 ) to:main::@2 main::@1: scope:[main] from main::@7 - (byte[]) plot_bit#14 ← phi( main::@7/(byte[]) plot_bit#16 ) - (byte[]) plot_ylo#15 ← phi( main::@7/(byte[]) plot_ylo#19 ) - (byte[]) plot_yhi#15 ← phi( main::@7/(byte[]) plot_yhi#19 ) - (byte[]) plot_xlo#14 ← phi( main::@7/(byte[]) plot_xlo#16 ) - (byte[]) plot_xhi#14 ← phi( main::@7/(byte[]) plot_xhi#16 ) (byte) plots_cnt#6 ← phi( main::@7/(byte) plots_cnt#9 ) (byte[]) plots_y#6 ← phi( main::@7/(byte[]) plots_y#9 ) (byte[]) plots_x#6 ← phi( main::@7/(byte[]) plots_x#9 ) @@ -2540,11 +2122,6 @@ main::@1: scope:[main] from main::@7 (byte*) RASTER#2 ← phi( main::@7/(byte*) RASTER#5 ) to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@6 - (byte[]) plot_bit#13 ← phi( main::@1/(byte[]) plot_bit#14 main::@2/(byte[]) plot_bit#13 main::@6/(byte[]) plot_bit#15 ) - (byte[]) plot_ylo#13 ← phi( main::@1/(byte[]) plot_ylo#15 main::@2/(byte[]) plot_ylo#13 main::@6/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#13 ← phi( main::@1/(byte[]) plot_yhi#15 main::@2/(byte[]) plot_yhi#13 main::@6/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#13 ← phi( main::@1/(byte[]) plot_xlo#14 main::@2/(byte[]) plot_xlo#13 main::@6/(byte[]) plot_xlo#15 ) - (byte[]) plot_xhi#13 ← phi( main::@1/(byte[]) plot_xhi#14 main::@2/(byte[]) plot_xhi#13 main::@6/(byte[]) plot_xhi#15 ) (byte) plots_cnt#5 ← phi( main::@1/(byte) plots_cnt#6 main::@2/(byte) plots_cnt#5 main::@6/(byte) plots_cnt#7 ) (byte[]) plots_y#5 ← phi( main::@1/(byte[]) plots_y#6 main::@2/(byte[]) plots_y#5 main::@6/(byte[]) plots_y#7 ) (byte[]) plots_x#5 ← phi( main::@1/(byte[]) plots_x#6 main::@2/(byte[]) plots_x#5 main::@6/(byte[]) plots_x#7 ) @@ -2554,11 +2131,6 @@ main::@2: scope:[main] from main::@1 main::@2 main::@6 if((boolean~) main::$11) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@2 - (byte[]) plot_bit#11 ← phi( main::@2/(byte[]) plot_bit#13 ) - (byte[]) plot_ylo#10 ← phi( main::@2/(byte[]) plot_ylo#13 ) - (byte[]) plot_yhi#10 ← phi( main::@2/(byte[]) plot_yhi#13 ) - (byte[]) plot_xlo#11 ← phi( main::@2/(byte[]) plot_xlo#13 ) - (byte[]) plot_xhi#11 ← phi( main::@2/(byte[]) plot_xhi#13 ) (byte) plots_cnt#4 ← phi( main::@2/(byte) plots_cnt#5 ) (byte*) RASTER#7 ← phi( main::@2/(byte*) RASTER#1 ) (byte[]) plots_y#4 ← phi( main::@2/(byte[]) plots_y#5 ) @@ -2568,11 +2140,6 @@ main::@3: scope:[main] from main::@2 call plots param-assignment to:main::@7 main::@7: scope:[main] from main::@3 - (byte[]) plot_bit#16 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#19 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#19 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#16 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#16 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#9 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#9 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#9 ← phi( main::@3/(byte[]) plots_x#4 ) @@ -2587,7 +2154,6 @@ main::@return: scope:[main] from main::@7 @1: scope:[] from @begin (byte*) RASTER#10 ← phi( @begin/(byte*) RASTER#0 ) (byte*) D018#4 ← phi( @begin/(byte*) D018#0 ) - (byte*) BITMAP#11 ← phi( @begin/(byte*) BITMAP#0 ) (byte*) SCREEN#8 ← phi( @begin/(byte*) SCREEN#0 ) (byte*) D011#4 ← phi( @begin/(byte*) D011#0 ) (byte) RSEL#4 ← phi( @begin/(byte) RSEL#0 ) @@ -2600,22 +2166,12 @@ main::@return: scope:[main] from main::@7 (byte) plots_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@2 plots: scope:[plots] from main::@3 - (byte[]) plot_bit#6 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#6 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#6 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#6 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#6 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#3 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#2 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#2 ← phi( main::@3/(byte[]) plots_x#4 ) (byte) plots::i#0 ← (byte/signed byte/word/signed word) 0 to:plots::@1 plots::@1: scope:[plots] from plots plots::@3 - (byte[]) plot_bit#3 ← phi( plots/(byte[]) plot_bit#6 plots::@3/(byte[]) plot_bit#7 ) - (byte[]) plot_ylo#3 ← phi( plots/(byte[]) plot_ylo#6 plots::@3/(byte[]) plot_ylo#7 ) - (byte[]) plot_yhi#3 ← phi( plots/(byte[]) plot_yhi#6 plots::@3/(byte[]) plot_yhi#7 ) - (byte[]) plot_xlo#3 ← phi( plots/(byte[]) plot_xlo#6 plots::@3/(byte[]) plot_xlo#7 ) - (byte[]) plot_xhi#3 ← phi( plots/(byte[]) plot_xhi#6 plots::@3/(byte[]) plot_xhi#7 ) (byte) plots_cnt#2 ← phi( plots/(byte) plots_cnt#3 plots::@3/(byte) plots_cnt#1 ) (byte[]) plots_y#1 ← phi( plots/(byte[]) plots_y#2 plots::@3/(byte[]) plots_y#3 ) (byte) plots::i#2 ← phi( plots/(byte) plots::i#0 plots::@3/(byte) plots::i#1 ) @@ -2627,11 +2183,6 @@ plots::@1: scope:[plots] from plots plots::@3 call plot param-assignment to:plots::@3 plots::@3: scope:[plots] from plots::@1 - (byte[]) plot_bit#7 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#7 ← phi( plots::@1/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#7 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#7 ← phi( plots::@1/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#7 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte[]) plots_y#3 ← phi( plots::@1/(byte[]) plots_y#1 ) (byte[]) plots_x#3 ← phi( plots::@1/(byte[]) plots_x#1 ) (byte) plots_cnt#1 ← phi( plots::@1/(byte) plots_cnt#2 ) @@ -2649,7 +2200,6 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plots_x#12 ← phi( @1/(byte[]) plots_x#0 ) (byte*) RASTER#9 ← phi( @1/(byte*) RASTER#10 ) (byte*) D018#3 ← phi( @1/(byte*) D018#4 ) - (byte*) BITMAP#10 ← phi( @1/(byte*) BITMAP#11 ) (byte*) SCREEN#7 ← phi( @1/(byte*) SCREEN#8 ) (byte*) D011#3 ← phi( @1/(byte*) D011#4 ) (byte) RSEL#3 ← phi( @1/(byte) RSEL#4 ) @@ -2664,26 +2214,21 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 to:@5 plot: scope:[plot] from plots::@1 - (byte[]) plot_bit#1 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#1 ← phi( plots::@1/(byte[]) plot_ylo#3 ) (byte) plot::y#1 ← phi( plots::@1/(byte) plot::y#0 ) - (byte[]) plot_yhi#1 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#1 ← phi( plots::@1/(byte[]) plot_xlo#3 ) (byte) plot::x#1 ← phi( plots::@1/(byte) plot::x#0 ) - (byte[]) plot_xhi#1 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#1 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#1 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#1 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#1 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#1 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#1 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*~) plot::$4 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 (byte*) plot::plotter#0 ← (byte*~) plot::$4 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#1 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#1 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -2691,81 +2236,51 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@5 - (byte[]) plot_yhi#14 ← phi( main::@5/(byte[]) plot_yhi#17 ) - (byte[]) plot_ylo#14 ← phi( main::@5/(byte[]) plot_ylo#17 ) - (byte[]) plot_bit#4 ← phi( main::@5/(byte[]) plot_bit#8 ) - (byte[]) plot_xhi#4 ← phi( main::@5/(byte[]) plot_xhi#8 ) - (byte*) BITMAP#6 ← phi( main::@5/(byte*) BITMAP#8 ) - (byte[]) plot_xlo#4 ← phi( main::@5/(byte[]) plot_xlo#8 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#11 ← phi( init_plot_tables/(byte[]) plot_yhi#14 init_plot_tables::@2/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#11 ← phi( init_plot_tables/(byte[]) plot_ylo#14 init_plot_tables::@2/(byte[]) plot_ylo#8 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#4 init_plot_tables::@2/(byte[]) plot_bit#5 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#4 init_plot_tables::@2/(byte[]) plot_xhi#5 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#4 init_plot_tables::@2/(byte[]) plot_xlo#5 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte~) init_plot_tables::$2 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (byte) init_plot_tables::bits#1 ← (byte~) init_plot_tables::$2 (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#8 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 init_plot_tables::@5/(byte[]) plot_yhi#12 ) - (byte[]) plot_ylo#8 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 init_plot_tables::@5/(byte[]) plot_ylo#12 ) - (byte[]) plot_bit#5 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#9 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#5 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#9 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#9 ) - (byte[]) plot_xlo#5 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#9 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#4 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$5) goto init_plot_tables::@1 to:init_plot_tables::@6 init_plot_tables::@5: scope:[init_plot_tables] from init_plot_tables::@1 - (byte[]) plot_yhi#12 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 ) - (byte[]) plot_ylo#12 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 ) - (byte[]) plot_bit#9 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 ) - (byte[]) plot_xhi#9 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#9 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#9 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::bits#2 ← (byte/word/signed word) 128 to:init_plot_tables::@2 init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 - (byte[]) plot_yhi#5 ← phi( init_plot_tables::@2/(byte[]) plot_yhi#8 ) - (byte[]) plot_ylo#5 ← phi( init_plot_tables::@2/(byte[]) plot_ylo#8 ) (byte*) init_plot_tables::yoffs#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#4 init_plot_tables::@6/(byte[]) plot_yhi#5 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#4 init_plot_tables::@6/(byte[]) plot_ylo#5 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#4 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#9 ) - (byte[]) plot_ylo#4 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#9 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#4 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -2773,8 +2288,6 @@ init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_p if((boolean~) init_plot_tables::$15) goto init_plot_tables::@3 to:init_plot_tables::@return init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3 - (byte[]) plot_yhi#9 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#9 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 ) (byte) init_plot_tables::y#4 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 ) (byte*) init_plot_tables::yoffs#3 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 ) (word/signed word~) init_plot_tables::$13 ← (byte/signed byte/word/signed word) 40 * (byte/signed byte/word/signed word) 8 @@ -2786,16 +2299,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#5 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#5 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -2817,16 +2328,10 @@ init_screen::@return: scope:[init_screen] from init_screen::@2 to:@return @5: scope:[] from @2 (byte) plots_cnt#11 ← phi( @2/(byte) plots_cnt#12 ) - (byte[]) plot_yhi#20 ← phi( @2/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#20 ← phi( @2/(byte[]) plot_ylo#0 ) (byte[]) plots_y#11 ← phi( @2/(byte[]) plots_y#12 ) (byte[]) plots_x#11 ← phi( @2/(byte[]) plots_x#12 ) - (byte[]) plot_bit#12 ← phi( @2/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#12 ← phi( @2/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#12 ← phi( @2/(byte[]) plot_xlo#0 ) (byte*) RASTER#8 ← phi( @2/(byte*) RASTER#9 ) (byte*) D018#2 ← phi( @2/(byte*) D018#3 ) - (byte*) BITMAP#5 ← phi( @2/(byte*) BITMAP#10 ) (byte*) SCREEN#4 ← phi( @2/(byte*) SCREEN#7 ) (byte*) D011#2 ← phi( @2/(byte*) D011#3 ) (byte) RSEL#2 ← phi( @2/(byte) RSEL#3 ) @@ -2845,66 +2350,32 @@ Not aliassing across scopes: DEN#1 DEN#2 Not aliassing across scopes: RSEL#1 RSEL#2 Not aliassing across scopes: D011#1 D011#2 Not aliassing across scopes: SCREEN#1 SCREEN#4 -Not aliassing across scopes: BITMAP#1 BITMAP#5 Not aliassing across scopes: D018#1 D018#2 Not aliassing across scopes: RASTER#6 RASTER#8 -Not aliassing across scopes: plot_xlo#10 plot_xlo#12 -Not aliassing across scopes: plot_xhi#10 plot_xhi#12 -Not aliassing across scopes: plot_bit#10 plot_bit#12 Not aliassing across scopes: plots_x#10 plots_x#11 Not aliassing across scopes: plots_y#10 plots_y#11 -Not aliassing across scopes: plot_ylo#18 plot_ylo#20 -Not aliassing across scopes: plot_yhi#18 plot_yhi#20 Not aliassing across scopes: plots_cnt#10 plots_cnt#11 Not aliassing across scopes: plots_x#2 plots_x#4 Not aliassing across scopes: plots_y#2 plots_y#4 Not aliassing across scopes: plots_cnt#3 plots_cnt#4 -Not aliassing across scopes: plot_xhi#6 plot_xhi#11 -Not aliassing across scopes: plot_xlo#6 plot_xlo#11 -Not aliassing across scopes: plot_yhi#6 plot_yhi#10 -Not aliassing across scopes: plot_ylo#6 plot_ylo#10 -Not aliassing across scopes: plot_bit#6 plot_bit#11 Not aliassing across scopes: plot::x#0 plots::$0 Not aliassing across scopes: plot::y#0 plots::$1 -Not aliassing across scopes: plot_xhi#1 plot_xhi#3 Not aliassing across scopes: plot::x#1 plot::x#0 -Not aliassing across scopes: plot_xlo#1 plot_xlo#3 -Not aliassing across scopes: plot_yhi#1 plot_yhi#3 Not aliassing across scopes: plot::y#1 plot::y#0 -Not aliassing across scopes: plot_ylo#1 plot_ylo#3 -Not aliassing across scopes: plot_bit#1 plot_bit#3 -Not aliassing across scopes: plot_xlo#4 plot_xlo#8 -Not aliassing across scopes: BITMAP#6 BITMAP#8 -Not aliassing across scopes: plot_xhi#4 plot_xhi#8 -Not aliassing across scopes: plot_bit#4 plot_bit#8 -Not aliassing across scopes: plot_ylo#14 plot_ylo#17 -Not aliassing across scopes: plot_yhi#14 plot_yhi#17 -Not aliassing across scopes: BITMAP#3 BITMAP#1 Not aliassing across scopes: SCREEN#6 SCREEN#1 -Not aliassing across scopes: init_screen::b#0 BITMAP#3 +Not aliassing across scopes: init_screen::b#0 BITMAP#0 Not aliassing across scopes: init_screen::c#0 SCREEN#2 Not aliassing identity: SCREEN#3 SCREEN#3 Alias (byte*) RASTER#3 = (byte*) RASTER#4 (byte*) RASTER#6 -Alias (byte[]) plot_xlo#10 = (byte[]) plot_xlo#8 (byte[]) plot_xlo#15 -Alias (byte*) BITMAP#1 = (byte*) BITMAP#8 -Alias (byte[]) plot_xhi#10 = (byte[]) plot_xhi#8 (byte[]) plot_xhi#15 -Alias (byte[]) plot_bit#10 = (byte[]) plot_bit#8 (byte[]) plot_bit#15 Alias (byte*) BGCOL#1 = (byte*) BGCOL#9 (byte*) BGCOL#7 Alias (byte[]) plots_x#10 = (byte[]) plots_x#8 (byte[]) plots_x#7 Alias (byte[]) plots_y#10 = (byte[]) plots_y#8 (byte[]) plots_y#7 -Alias (byte[]) plot_ylo#16 = (byte[]) plot_ylo#17 (byte[]) plot_ylo#18 -Alias (byte[]) plot_yhi#16 = (byte[]) plot_yhi#17 (byte[]) plot_yhi#18 Alias (byte) plots_cnt#10 = (byte) plots_cnt#8 (byte) plots_cnt#7 Alias (byte*) RASTER#1 = (byte*) RASTER#2 (byte*) RASTER#5 (byte*) RASTER#7 Alias (byte*) BGCOL#2 = (byte*) BGCOL#6 (byte*) BGCOL#3 (byte*) BGCOL#5 Alias (byte[]) plots_x#4 = (byte[]) plots_x#6 (byte[]) plots_x#9 (byte[]) plots_x#5 Alias (byte[]) plots_y#4 = (byte[]) plots_y#6 (byte[]) plots_y#9 (byte[]) plots_y#5 Alias (byte) plots_cnt#4 = (byte) plots_cnt#6 (byte) plots_cnt#9 (byte) plots_cnt#5 -Alias (byte[]) plot_xhi#11 = (byte[]) plot_xhi#14 (byte[]) plot_xhi#16 (byte[]) plot_xhi#13 -Alias (byte[]) plot_xlo#11 = (byte[]) plot_xlo#14 (byte[]) plot_xlo#16 (byte[]) plot_xlo#13 -Alias (byte[]) plot_yhi#10 = (byte[]) plot_yhi#15 (byte[]) plot_yhi#19 (byte[]) plot_yhi#13 -Alias (byte[]) plot_ylo#10 = (byte[]) plot_ylo#15 (byte[]) plot_ylo#19 (byte[]) plot_ylo#13 -Alias (byte[]) plot_bit#11 = (byte[]) plot_bit#14 (byte[]) plot_bit#16 (byte[]) plot_bit#13 Alias (byte*) BGCOL#0 = (byte*) BGCOL#10 (byte*) BGCOL#8 (byte*) BGCOL#4 Alias (byte*) FGCOL#0 = (byte*) FGCOL#4 (byte*) FGCOL#3 (byte*) FGCOL#2 Alias (byte) BMM#0 = (byte) BMM#4 (byte) BMM#3 (byte) BMM#2 @@ -2912,43 +2383,22 @@ Alias (byte) DEN#0 = (byte) DEN#4 (byte) DEN#3 (byte) DEN#2 Alias (byte) RSEL#0 = (byte) RSEL#4 (byte) RSEL#3 (byte) RSEL#2 Alias (byte*) D011#0 = (byte*) D011#4 (byte*) D011#3 (byte*) D011#2 Alias (byte*) SCREEN#0 = (byte*) SCREEN#8 (byte*) SCREEN#7 (byte*) SCREEN#4 -Alias (byte*) BITMAP#0 = (byte*) BITMAP#11 (byte*) BITMAP#10 (byte*) BITMAP#5 Alias (byte*) D018#0 = (byte*) D018#4 (byte*) D018#3 (byte*) D018#2 Alias (byte*) RASTER#0 = (byte*) RASTER#10 (byte*) RASTER#9 (byte*) RASTER#8 Alias (byte) plots::i#2 = (byte) plots::i#3 Alias (byte) plots_cnt#1 = (byte) plots_cnt#2 Alias (byte[]) plots_x#1 = (byte[]) plots_x#3 Alias (byte[]) plots_y#1 = (byte[]) plots_y#3 -Alias (byte[]) plot_xhi#3 = (byte[]) plot_xhi#7 -Alias (byte[]) plot_xlo#3 = (byte[]) plot_xlo#7 -Alias (byte[]) plot_yhi#3 = (byte[]) plot_yhi#7 -Alias (byte[]) plot_ylo#3 = (byte[]) plot_ylo#7 -Alias (byte[]) plot_bit#3 = (byte[]) plot_bit#7 Alias (byte[]) plots_x#0 = (byte[]) plots_x#12 (byte[]) plots_x#11 Alias (byte[]) plots_y#0 = (byte[]) plots_y#12 (byte[]) plots_y#11 Alias (byte) plots_cnt#0 = (byte) plots_cnt#12 (byte) plots_cnt#11 Alias (byte*) plot::plotter#0 = (byte*~) plot::$4 Alias (byte) init_plot_tables::bits#1 = (byte~) init_plot_tables::$2 Alias (byte) init_plot_tables::x#2 = (byte) init_plot_tables::x#4 -Alias (byte[]) plot_xlo#2 = (byte[]) plot_xlo#9 -Alias (byte*) BITMAP#2 = (byte*) BITMAP#9 -Alias (byte[]) plot_xhi#2 = (byte[]) plot_xhi#9 -Alias (byte[]) plot_bit#2 = (byte[]) plot_bit#9 -Alias (byte[]) plot_ylo#11 = (byte[]) plot_ylo#12 -Alias (byte[]) plot_yhi#11 = (byte[]) plot_yhi#12 -Alias (byte[]) plot_ylo#5 = (byte[]) plot_ylo#8 -Alias (byte[]) plot_yhi#5 = (byte[]) plot_yhi#8 Alias (byte*) init_plot_tables::yoffs#2 = (byte*) init_plot_tables::yoffs#3 Alias (byte) init_plot_tables::y#2 = (byte) init_plot_tables::y#4 -Alias (byte[]) plot_ylo#2 = (byte[]) plot_ylo#9 -Alias (byte[]) plot_yhi#2 = (byte[]) plot_yhi#9 Alias (byte*) init_plot_tables::yoffs#1 = (byte*~) init_plot_tables::$14 Alias (byte*) SCREEN#2 = (byte*) SCREEN#5 -Alias (byte[]) plot_xlo#0 = (byte[]) plot_xlo#12 -Alias (byte[]) plot_xhi#0 = (byte[]) plot_xhi#12 -Alias (byte[]) plot_bit#0 = (byte[]) plot_bit#12 -Alias (byte[]) plot_ylo#0 = (byte[]) plot_ylo#20 -Alias (byte[]) plot_yhi#0 = (byte[]) plot_yhi#20 Succesful SSA optimization Pass2AliasElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -2965,16 +2415,10 @@ CONTROL FLOW GRAPH to:@1 main: scope:[main] from @5 (byte) plots_cnt#10 ← phi( @5/(byte) plots_cnt#0 ) - (byte[]) plot_yhi#16 ← phi( @5/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#16 ← phi( @5/(byte[]) plot_ylo#0 ) (byte[]) plots_y#10 ← phi( @5/(byte[]) plots_y#0 ) (byte[]) plots_x#10 ← phi( @5/(byte[]) plots_x#0 ) - (byte[]) plot_bit#10 ← phi( @5/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#10 ← phi( @5/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#10 ← phi( @5/(byte[]) plot_xlo#0 ) (byte*) RASTER#3 ← phi( @5/(byte*) RASTER#0 ) (byte*) D018#1 ← phi( @5/(byte*) D018#0 ) - (byte*) BITMAP#1 ← phi( @5/(byte*) BITMAP#0 ) (byte*) SCREEN#1 ← phi( @5/(byte*) SCREEN#0 ) (byte*) D011#1 ← phi( @5/(byte*) D011#0 ) (byte) RSEL#1 ← phi( @5/(byte) RSEL#0 ) @@ -2990,7 +2434,7 @@ main: scope:[main] from @5 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -3005,11 +2449,6 @@ main::@6: scope:[main] from main::@5 main::@1: scope:[main] from main::@7 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@6 - (byte[]) plot_bit#11 ← phi( main::@1/(byte[]) plot_bit#11 main::@2/(byte[]) plot_bit#11 main::@6/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#10 ← phi( main::@1/(byte[]) plot_ylo#10 main::@2/(byte[]) plot_ylo#10 main::@6/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#10 ← phi( main::@1/(byte[]) plot_yhi#10 main::@2/(byte[]) plot_yhi#10 main::@6/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#11 ← phi( main::@1/(byte[]) plot_xlo#11 main::@2/(byte[]) plot_xlo#11 main::@6/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#11 ← phi( main::@1/(byte[]) plot_xhi#11 main::@2/(byte[]) plot_xhi#11 main::@6/(byte[]) plot_xhi#10 ) (byte) plots_cnt#4 ← phi( main::@1/(byte) plots_cnt#4 main::@2/(byte) plots_cnt#4 main::@6/(byte) plots_cnt#10 ) (byte[]) plots_y#4 ← phi( main::@1/(byte[]) plots_y#4 main::@2/(byte[]) plots_y#4 main::@6/(byte[]) plots_y#10 ) (byte[]) plots_x#4 ← phi( main::@1/(byte[]) plots_x#4 main::@2/(byte[]) plots_x#4 main::@6/(byte[]) plots_x#10 ) @@ -3035,22 +2474,12 @@ main::@return: scope:[main] from main::@7 (byte) plots_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@2 plots: scope:[plots] from main::@3 - (byte[]) plot_bit#6 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#6 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#6 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#6 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#6 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#3 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#2 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#2 ← phi( main::@3/(byte[]) plots_x#4 ) (byte) plots::i#0 ← (byte/signed byte/word/signed word) 0 to:plots::@1 plots::@1: scope:[plots] from plots plots::@3 - (byte[]) plot_bit#3 ← phi( plots/(byte[]) plot_bit#6 plots::@3/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#3 ← phi( plots/(byte[]) plot_ylo#6 plots::@3/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#3 ← phi( plots/(byte[]) plot_yhi#6 plots::@3/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#3 ← phi( plots/(byte[]) plot_xlo#6 plots::@3/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#3 ← phi( plots/(byte[]) plot_xhi#6 plots::@3/(byte[]) plot_xhi#3 ) (byte) plots_cnt#1 ← phi( plots/(byte) plots_cnt#3 plots::@3/(byte) plots_cnt#1 ) (byte[]) plots_y#1 ← phi( plots/(byte[]) plots_y#2 plots::@3/(byte[]) plots_y#1 ) (byte) plots::i#2 ← phi( plots/(byte) plots::i#0 plots::@3/(byte) plots::i#1 ) @@ -3077,25 +2506,20 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 to:@5 plot: scope:[plot] from plots::@1 - (byte[]) plot_bit#1 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#1 ← phi( plots::@1/(byte[]) plot_ylo#3 ) (byte) plot::y#1 ← phi( plots::@1/(byte) plot::y#0 ) - (byte[]) plot_yhi#1 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#1 ← phi( plots::@1/(byte[]) plot_xlo#3 ) (byte) plot::x#1 ← phi( plots::@1/(byte) plot::x#0 ) - (byte[]) plot_xhi#1 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#1 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#1 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#1 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#1 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#1 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#1 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#1 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#1 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -3103,41 +2527,23 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@5 - (byte[]) plot_yhi#14 ← phi( main::@5/(byte[]) plot_yhi#16 ) - (byte[]) plot_ylo#14 ← phi( main::@5/(byte[]) plot_ylo#16 ) - (byte[]) plot_bit#4 ← phi( main::@5/(byte[]) plot_bit#10 ) - (byte[]) plot_xhi#4 ← phi( main::@5/(byte[]) plot_xhi#10 ) - (byte*) BITMAP#6 ← phi( main::@5/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#4 ← phi( main::@5/(byte[]) plot_xlo#10 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#11 ← phi( init_plot_tables/(byte[]) plot_yhi#14 init_plot_tables::@2/(byte[]) plot_yhi#5 ) - (byte[]) plot_ylo#11 ← phi( init_plot_tables/(byte[]) plot_ylo#14 init_plot_tables::@2/(byte[]) plot_ylo#5 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#4 init_plot_tables::@2/(byte[]) plot_bit#5 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#4 init_plot_tables::@2/(byte[]) plot_xhi#5 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#7 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#4 init_plot_tables::@2/(byte[]) plot_xlo#5 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 to:init_plot_tables::@5 init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@5 - (byte[]) plot_yhi#5 ← phi( init_plot_tables::@1/(byte[]) plot_yhi#11 init_plot_tables::@5/(byte[]) plot_yhi#11 ) - (byte[]) plot_ylo#5 ← phi( init_plot_tables::@1/(byte[]) plot_ylo#11 init_plot_tables::@5/(byte[]) plot_ylo#11 ) - (byte[]) plot_bit#5 ← phi( init_plot_tables::@1/(byte[]) plot_bit#2 init_plot_tables::@5/(byte[]) plot_bit#2 ) (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@1/(byte) init_plot_tables::bits#1 init_plot_tables::@5/(byte) init_plot_tables::bits#2 ) - (byte[]) plot_xhi#5 ← phi( init_plot_tables::@1/(byte[]) plot_xhi#2 init_plot_tables::@5/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#7 ← phi( init_plot_tables::@1/(byte*) BITMAP#2 init_plot_tables::@5/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#5 ← phi( init_plot_tables::@1/(byte[]) plot_xlo#2 init_plot_tables::@5/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#3 ← phi( init_plot_tables::@1/(byte) init_plot_tables::x#2 init_plot_tables::@5/(byte) init_plot_tables::x#2 ) (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#3 (boolean~) init_plot_tables::$5 ← (byte) init_plot_tables::x#1 != (byte/signed byte/word/signed word) 0 @@ -3151,23 +2557,19 @@ init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#4 init_plot_tables::@6/(byte[]) plot_yhi#5 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#4 init_plot_tables::@6/(byte[]) plot_ylo#5 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 to:init_plot_tables::@7 init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7 - (byte[]) plot_yhi#4 ← phi( init_plot_tables::@3/(byte[]) plot_yhi#2 init_plot_tables::@7/(byte[]) plot_yhi#2 ) - (byte[]) plot_ylo#4 ← phi( init_plot_tables::@3/(byte[]) plot_ylo#2 init_plot_tables::@7/(byte[]) plot_ylo#2 ) (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) (byte) init_plot_tables::y#3 ← phi( init_plot_tables::@3/(byte) init_plot_tables::y#2 init_plot_tables::@7/(byte) init_plot_tables::y#2 ) (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#3 @@ -3183,16 +2585,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#2 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#2 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -3223,65 +2623,29 @@ Not aliassing across scopes: DEN#1 DEN#0 Not aliassing across scopes: RSEL#1 RSEL#0 Not aliassing across scopes: D011#1 D011#0 Not aliassing across scopes: SCREEN#1 SCREEN#0 -Not aliassing across scopes: BITMAP#1 BITMAP#0 Not aliassing across scopes: D018#1 D018#0 Not aliassing across scopes: RASTER#3 RASTER#0 -Not aliassing across scopes: plot_xlo#10 plot_xlo#0 -Not aliassing across scopes: plot_xhi#10 plot_xhi#0 -Not aliassing across scopes: plot_bit#10 plot_bit#0 Not aliassing across scopes: plots_x#10 plots_x#0 Not aliassing across scopes: plots_y#10 plots_y#0 -Not aliassing across scopes: plot_ylo#16 plot_ylo#0 -Not aliassing across scopes: plot_yhi#16 plot_yhi#0 Not aliassing across scopes: plots_cnt#10 plots_cnt#0 Not aliassing identity: RASTER#1 RASTER#1 Not aliassing identity: BGCOL#2 BGCOL#2 Not aliassing identity: plots_x#4 plots_x#4 Not aliassing identity: plots_y#4 plots_y#4 Not aliassing identity: plots_cnt#4 plots_cnt#4 -Not aliassing identity: plot_xhi#11 plot_xhi#11 -Not aliassing identity: plot_xlo#11 plot_xlo#11 -Not aliassing identity: plot_yhi#10 plot_yhi#10 -Not aliassing identity: plot_ylo#10 plot_ylo#10 -Not aliassing identity: plot_bit#11 plot_bit#11 Not aliassing across scopes: plots_x#2 plots_x#4 Not aliassing across scopes: plots_y#2 plots_y#4 Not aliassing across scopes: plots_cnt#3 plots_cnt#4 -Not aliassing across scopes: plot_xhi#6 plot_xhi#11 -Not aliassing across scopes: plot_xlo#6 plot_xlo#11 -Not aliassing across scopes: plot_yhi#6 plot_yhi#10 -Not aliassing across scopes: plot_ylo#6 plot_ylo#10 -Not aliassing across scopes: plot_bit#6 plot_bit#11 Not aliassing across scopes: plot::x#0 plots::$0 Not aliassing across scopes: plot::y#0 plots::$1 -Not aliassing across scopes: plot_xhi#1 plot_xhi#3 Not aliassing across scopes: plot::x#1 plot::x#0 -Not aliassing across scopes: plot_xlo#1 plot_xlo#3 -Not aliassing across scopes: plot_yhi#1 plot_yhi#3 Not aliassing across scopes: plot::y#1 plot::y#0 -Not aliassing across scopes: plot_ylo#1 plot_ylo#3 -Not aliassing across scopes: plot_bit#1 plot_bit#3 -Not aliassing across scopes: plot_xlo#4 plot_xlo#10 -Not aliassing across scopes: BITMAP#6 BITMAP#1 -Not aliassing across scopes: plot_xhi#4 plot_xhi#10 -Not aliassing across scopes: plot_bit#4 plot_bit#10 -Not aliassing across scopes: plot_ylo#14 plot_ylo#16 -Not aliassing across scopes: plot_yhi#14 plot_yhi#16 -Not aliassing across scopes: BITMAP#3 BITMAP#1 Not aliassing across scopes: SCREEN#6 SCREEN#1 -Not aliassing across scopes: init_screen::b#0 BITMAP#3 +Not aliassing across scopes: init_screen::b#0 BITMAP#0 Not aliassing across scopes: init_screen::c#0 SCREEN#2 Not aliassing identity: SCREEN#3 SCREEN#3 Alias (byte) init_plot_tables::x#2 = (byte) init_plot_tables::x#3 -Alias (byte[]) plot_xlo#2 = (byte[]) plot_xlo#5 -Alias (byte*) BITMAP#2 = (byte*) BITMAP#7 -Alias (byte[]) plot_xhi#2 = (byte[]) plot_xhi#5 -Alias (byte[]) plot_bit#2 = (byte[]) plot_bit#5 -Alias (byte[]) plot_ylo#11 = (byte[]) plot_ylo#5 -Alias (byte[]) plot_yhi#11 = (byte[]) plot_yhi#5 Alias (byte) init_plot_tables::y#2 = (byte) init_plot_tables::y#3 -Alias (byte[]) plot_ylo#2 = (byte[]) plot_ylo#4 -Alias (byte[]) plot_yhi#2 = (byte[]) plot_yhi#4 Succesful SSA optimization Pass2AliasElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -3298,16 +2662,10 @@ CONTROL FLOW GRAPH to:@1 main: scope:[main] from @5 (byte) plots_cnt#10 ← phi( @5/(byte) plots_cnt#0 ) - (byte[]) plot_yhi#16 ← phi( @5/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#16 ← phi( @5/(byte[]) plot_ylo#0 ) (byte[]) plots_y#10 ← phi( @5/(byte[]) plots_y#0 ) (byte[]) plots_x#10 ← phi( @5/(byte[]) plots_x#0 ) - (byte[]) plot_bit#10 ← phi( @5/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#10 ← phi( @5/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#10 ← phi( @5/(byte[]) plot_xlo#0 ) (byte*) RASTER#3 ← phi( @5/(byte*) RASTER#0 ) (byte*) D018#1 ← phi( @5/(byte*) D018#0 ) - (byte*) BITMAP#1 ← phi( @5/(byte*) BITMAP#0 ) (byte*) SCREEN#1 ← phi( @5/(byte*) SCREEN#0 ) (byte*) D011#1 ← phi( @5/(byte*) D011#0 ) (byte) RSEL#1 ← phi( @5/(byte) RSEL#0 ) @@ -3323,7 +2681,7 @@ main: scope:[main] from @5 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -3338,11 +2696,6 @@ main::@6: scope:[main] from main::@5 main::@1: scope:[main] from main::@7 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@6 - (byte[]) plot_bit#11 ← phi( main::@1/(byte[]) plot_bit#11 main::@2/(byte[]) plot_bit#11 main::@6/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#10 ← phi( main::@1/(byte[]) plot_ylo#10 main::@2/(byte[]) plot_ylo#10 main::@6/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#10 ← phi( main::@1/(byte[]) plot_yhi#10 main::@2/(byte[]) plot_yhi#10 main::@6/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#11 ← phi( main::@1/(byte[]) plot_xlo#11 main::@2/(byte[]) plot_xlo#11 main::@6/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#11 ← phi( main::@1/(byte[]) plot_xhi#11 main::@2/(byte[]) plot_xhi#11 main::@6/(byte[]) plot_xhi#10 ) (byte) plots_cnt#4 ← phi( main::@1/(byte) plots_cnt#4 main::@2/(byte) plots_cnt#4 main::@6/(byte) plots_cnt#10 ) (byte[]) plots_y#4 ← phi( main::@1/(byte[]) plots_y#4 main::@2/(byte[]) plots_y#4 main::@6/(byte[]) plots_y#10 ) (byte[]) plots_x#4 ← phi( main::@1/(byte[]) plots_x#4 main::@2/(byte[]) plots_x#4 main::@6/(byte[]) plots_x#10 ) @@ -3368,22 +2721,12 @@ main::@return: scope:[main] from main::@7 (byte) plots_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@2 plots: scope:[plots] from main::@3 - (byte[]) plot_bit#6 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#6 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#6 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#6 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#6 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#3 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#2 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#2 ← phi( main::@3/(byte[]) plots_x#4 ) (byte) plots::i#0 ← (byte/signed byte/word/signed word) 0 to:plots::@1 plots::@1: scope:[plots] from plots plots::@3 - (byte[]) plot_bit#3 ← phi( plots/(byte[]) plot_bit#6 plots::@3/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#3 ← phi( plots/(byte[]) plot_ylo#6 plots::@3/(byte[]) plot_ylo#3 ) - (byte[]) plot_yhi#3 ← phi( plots/(byte[]) plot_yhi#6 plots::@3/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#3 ← phi( plots/(byte[]) plot_xlo#6 plots::@3/(byte[]) plot_xlo#3 ) - (byte[]) plot_xhi#3 ← phi( plots/(byte[]) plot_xhi#6 plots::@3/(byte[]) plot_xhi#3 ) (byte) plots_cnt#1 ← phi( plots/(byte) plots_cnt#3 plots::@3/(byte) plots_cnt#1 ) (byte[]) plots_y#1 ← phi( plots/(byte[]) plots_y#2 plots::@3/(byte[]) plots_y#1 ) (byte) plots::i#2 ← phi( plots/(byte) plots::i#0 plots::@3/(byte) plots::i#1 ) @@ -3410,25 +2753,20 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 to:@5 plot: scope:[plot] from plots::@1 - (byte[]) plot_bit#1 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#1 ← phi( plots::@1/(byte[]) plot_ylo#3 ) (byte) plot::y#1 ← phi( plots::@1/(byte) plot::y#0 ) - (byte[]) plot_yhi#1 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#1 ← phi( plots::@1/(byte[]) plot_xlo#3 ) (byte) plot::x#1 ← phi( plots::@1/(byte) plot::x#0 ) - (byte[]) plot_xhi#1 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#1 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#1 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#1 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#1 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#1 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#1 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#1 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#1 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -3436,29 +2774,17 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@5 - (byte[]) plot_yhi#14 ← phi( main::@5/(byte[]) plot_yhi#16 ) - (byte[]) plot_ylo#14 ← phi( main::@5/(byte[]) plot_ylo#16 ) - (byte[]) plot_bit#4 ← phi( main::@5/(byte[]) plot_bit#10 ) - (byte[]) plot_xhi#4 ← phi( main::@5/(byte[]) plot_xhi#10 ) - (byte*) BITMAP#6 ← phi( main::@5/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#4 ← phi( main::@5/(byte[]) plot_xlo#10 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#11 ← phi( init_plot_tables/(byte[]) plot_yhi#14 init_plot_tables::@2/(byte[]) plot_yhi#11 ) - (byte[]) plot_ylo#11 ← phi( init_plot_tables/(byte[]) plot_ylo#14 init_plot_tables::@2/(byte[]) plot_ylo#11 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#4 init_plot_tables::@2/(byte[]) plot_bit#2 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#4 init_plot_tables::@2/(byte[]) plot_xhi#2 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 init_plot_tables::@2/(byte*) BITMAP#2 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#4 init_plot_tables::@2/(byte[]) plot_xlo#2 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 @@ -3477,16 +2803,14 @@ init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@4/(byte[]) plot_yhi#2 init_plot_tables::@6/(byte[]) plot_yhi#11 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@4/(byte[]) plot_ylo#2 init_plot_tables::@6/(byte[]) plot_ylo#11 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 @@ -3506,16 +2830,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#2 ← phi( init_screen/(byte*) SCREEN#6 init_screen::@1/(byte*) SCREEN#2 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 init_screen::@1/(byte*) BITMAP#4 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -3546,55 +2868,25 @@ Not aliassing across scopes: DEN#1 DEN#0 Not aliassing across scopes: RSEL#1 RSEL#0 Not aliassing across scopes: D011#1 D011#0 Not aliassing across scopes: SCREEN#1 SCREEN#0 -Not aliassing across scopes: BITMAP#1 BITMAP#0 Not aliassing across scopes: D018#1 D018#0 Not aliassing across scopes: RASTER#3 RASTER#0 -Not aliassing across scopes: plot_xlo#10 plot_xlo#0 -Not aliassing across scopes: plot_xhi#10 plot_xhi#0 -Not aliassing across scopes: plot_bit#10 plot_bit#0 Not aliassing across scopes: plots_x#10 plots_x#0 Not aliassing across scopes: plots_y#10 plots_y#0 -Not aliassing across scopes: plot_ylo#16 plot_ylo#0 -Not aliassing across scopes: plot_yhi#16 plot_yhi#0 Not aliassing across scopes: plots_cnt#10 plots_cnt#0 Not aliassing identity: RASTER#1 RASTER#1 Not aliassing identity: BGCOL#2 BGCOL#2 Not aliassing identity: plots_x#4 plots_x#4 Not aliassing identity: plots_y#4 plots_y#4 Not aliassing identity: plots_cnt#4 plots_cnt#4 -Not aliassing identity: plot_xhi#11 plot_xhi#11 -Not aliassing identity: plot_xlo#11 plot_xlo#11 -Not aliassing identity: plot_yhi#10 plot_yhi#10 -Not aliassing identity: plot_ylo#10 plot_ylo#10 -Not aliassing identity: plot_bit#11 plot_bit#11 Not aliassing across scopes: plots_x#2 plots_x#4 Not aliassing across scopes: plots_y#2 plots_y#4 Not aliassing across scopes: plots_cnt#3 plots_cnt#4 -Not aliassing across scopes: plot_xhi#6 plot_xhi#11 -Not aliassing across scopes: plot_xlo#6 plot_xlo#11 -Not aliassing across scopes: plot_yhi#6 plot_yhi#10 -Not aliassing across scopes: plot_ylo#6 plot_ylo#10 -Not aliassing across scopes: plot_bit#6 plot_bit#11 Not aliassing across scopes: plot::x#0 plots::$0 Not aliassing across scopes: plot::y#0 plots::$1 -Not aliassing across scopes: plot_xhi#1 plot_xhi#3 Not aliassing across scopes: plot::x#1 plot::x#0 -Not aliassing across scopes: plot_xlo#1 plot_xlo#3 -Not aliassing across scopes: plot_yhi#1 plot_yhi#3 Not aliassing across scopes: plot::y#1 plot::y#0 -Not aliassing across scopes: plot_ylo#1 plot_ylo#3 -Not aliassing across scopes: plot_bit#1 plot_bit#3 -Not aliassing across scopes: plot_xlo#4 plot_xlo#10 -Not aliassing across scopes: BITMAP#6 BITMAP#1 -Not aliassing across scopes: plot_xhi#4 plot_xhi#10 -Not aliassing across scopes: plot_bit#4 plot_bit#10 -Not aliassing across scopes: plot_ylo#14 plot_ylo#16 -Not aliassing across scopes: plot_yhi#14 plot_yhi#16 -Not aliassing identity: plot_ylo#2 plot_ylo#2 -Not aliassing identity: plot_yhi#2 plot_yhi#2 -Not aliassing across scopes: BITMAP#3 BITMAP#1 Not aliassing across scopes: SCREEN#6 SCREEN#1 -Not aliassing across scopes: init_screen::b#0 BITMAP#3 +Not aliassing across scopes: init_screen::b#0 BITMAP#0 Not aliassing across scopes: init_screen::c#0 SCREEN#2 Not aliassing identity: SCREEN#3 SCREEN#3 Self Phi Eliminated (byte*) RASTER#1 @@ -3607,33 +2899,9 @@ Self Phi Eliminated (byte[]) plots_y#4 Self Phi Eliminated (byte[]) plots_y#4 Self Phi Eliminated (byte) plots_cnt#4 Self Phi Eliminated (byte) plots_cnt#4 -Self Phi Eliminated (byte[]) plot_xhi#11 -Self Phi Eliminated (byte[]) plot_xhi#11 -Self Phi Eliminated (byte[]) plot_xlo#11 -Self Phi Eliminated (byte[]) plot_xlo#11 -Self Phi Eliminated (byte[]) plot_yhi#10 -Self Phi Eliminated (byte[]) plot_yhi#10 -Self Phi Eliminated (byte[]) plot_ylo#10 -Self Phi Eliminated (byte[]) plot_ylo#10 -Self Phi Eliminated (byte[]) plot_bit#11 -Self Phi Eliminated (byte[]) plot_bit#11 Self Phi Eliminated (byte[]) plots_x#1 Self Phi Eliminated (byte[]) plots_y#1 Self Phi Eliminated (byte) plots_cnt#1 -Self Phi Eliminated (byte[]) plot_xhi#3 -Self Phi Eliminated (byte[]) plot_xlo#3 -Self Phi Eliminated (byte[]) plot_yhi#3 -Self Phi Eliminated (byte[]) plot_ylo#3 -Self Phi Eliminated (byte[]) plot_bit#3 -Self Phi Eliminated (byte[]) plot_xlo#2 -Self Phi Eliminated (byte*) BITMAP#2 -Self Phi Eliminated (byte[]) plot_xhi#2 -Self Phi Eliminated (byte[]) plot_bit#2 -Self Phi Eliminated (byte[]) plot_ylo#11 -Self Phi Eliminated (byte[]) plot_yhi#11 -Self Phi Eliminated (byte[]) plot_ylo#2 -Self Phi Eliminated (byte[]) plot_yhi#2 -Self Phi Eliminated (byte*) BITMAP#4 Self Phi Eliminated (byte*) SCREEN#2 Self Phi Eliminated (byte*) SCREEN#3 Succesful SSA optimization Pass2SelfPhiElimination @@ -3652,16 +2920,10 @@ CONTROL FLOW GRAPH to:@1 main: scope:[main] from @5 (byte) plots_cnt#10 ← phi( @5/(byte) plots_cnt#0 ) - (byte[]) plot_yhi#16 ← phi( @5/(byte[]) plot_yhi#0 ) - (byte[]) plot_ylo#16 ← phi( @5/(byte[]) plot_ylo#0 ) (byte[]) plots_y#10 ← phi( @5/(byte[]) plots_y#0 ) (byte[]) plots_x#10 ← phi( @5/(byte[]) plots_x#0 ) - (byte[]) plot_bit#10 ← phi( @5/(byte[]) plot_bit#0 ) - (byte[]) plot_xhi#10 ← phi( @5/(byte[]) plot_xhi#0 ) - (byte[]) plot_xlo#10 ← phi( @5/(byte[]) plot_xlo#0 ) (byte*) RASTER#3 ← phi( @5/(byte*) RASTER#0 ) (byte*) D018#1 ← phi( @5/(byte*) D018#0 ) - (byte*) BITMAP#1 ← phi( @5/(byte*) BITMAP#0 ) (byte*) SCREEN#1 ← phi( @5/(byte*) SCREEN#0 ) (byte*) D011#1 ← phi( @5/(byte*) D011#0 ) (byte) RSEL#1 ← phi( @5/(byte) RSEL#0 ) @@ -3677,7 +2939,7 @@ main: scope:[main] from @5 *((byte*) D011#1) ← (byte~) main::$2 (word~) main::$3 ← ((word)) (byte*) SCREEN#1 (word~) main::$4 ← (word~) main::$3 / (byte/signed byte/word/signed word) 64 - (word~) main::$5 ← ((word)) (byte*) BITMAP#1 + (word~) main::$5 ← ((word)) (byte*) BITMAP#0 (word~) main::$6 ← (word~) main::$5 / (word/signed word) 1024 (word~) main::$7 ← (word~) main::$4 | (word~) main::$6 (byte~) main::$8 ← ((byte)) (word~) main::$7 @@ -3692,11 +2954,6 @@ main::@6: scope:[main] from main::@5 main::@1: scope:[main] from main::@7 to:main::@2 main::@2: scope:[main] from main::@1 main::@2 main::@6 - (byte[]) plot_bit#11 ← phi( main::@6/(byte[]) plot_bit#10 ) - (byte[]) plot_ylo#10 ← phi( main::@6/(byte[]) plot_ylo#16 ) - (byte[]) plot_yhi#10 ← phi( main::@6/(byte[]) plot_yhi#16 ) - (byte[]) plot_xlo#11 ← phi( main::@6/(byte[]) plot_xlo#10 ) - (byte[]) plot_xhi#11 ← phi( main::@6/(byte[]) plot_xhi#10 ) (byte) plots_cnt#4 ← phi( main::@6/(byte) plots_cnt#10 ) (byte[]) plots_y#4 ← phi( main::@6/(byte[]) plots_y#10 ) (byte[]) plots_x#4 ← phi( main::@6/(byte[]) plots_x#10 ) @@ -3722,22 +2979,12 @@ main::@return: scope:[main] from main::@7 (byte) plots_cnt#0 ← (byte/signed byte/word/signed word) 8 to:@2 plots: scope:[plots] from main::@3 - (byte[]) plot_bit#6 ← phi( main::@3/(byte[]) plot_bit#11 ) - (byte[]) plot_ylo#6 ← phi( main::@3/(byte[]) plot_ylo#10 ) - (byte[]) plot_yhi#6 ← phi( main::@3/(byte[]) plot_yhi#10 ) - (byte[]) plot_xlo#6 ← phi( main::@3/(byte[]) plot_xlo#11 ) - (byte[]) plot_xhi#6 ← phi( main::@3/(byte[]) plot_xhi#11 ) (byte) plots_cnt#3 ← phi( main::@3/(byte) plots_cnt#4 ) (byte[]) plots_y#2 ← phi( main::@3/(byte[]) plots_y#4 ) (byte[]) plots_x#2 ← phi( main::@3/(byte[]) plots_x#4 ) (byte) plots::i#0 ← (byte/signed byte/word/signed word) 0 to:plots::@1 plots::@1: scope:[plots] from plots plots::@3 - (byte[]) plot_bit#3 ← phi( plots/(byte[]) plot_bit#6 ) - (byte[]) plot_ylo#3 ← phi( plots/(byte[]) plot_ylo#6 ) - (byte[]) plot_yhi#3 ← phi( plots/(byte[]) plot_yhi#6 ) - (byte[]) plot_xlo#3 ← phi( plots/(byte[]) plot_xlo#6 ) - (byte[]) plot_xhi#3 ← phi( plots/(byte[]) plot_xhi#6 ) (byte) plots_cnt#1 ← phi( plots/(byte) plots_cnt#3 ) (byte[]) plots_y#1 ← phi( plots/(byte[]) plots_y#2 ) (byte) plots::i#2 ← phi( plots/(byte) plots::i#0 plots::@3/(byte) plots::i#1 ) @@ -3764,25 +3011,20 @@ plots::@return: scope:[plots] from plots::@3 (byte[]) plot_bit#0 ← ((byte*)) (word/signed word) 5120 to:@5 plot: scope:[plot] from plots::@1 - (byte[]) plot_bit#1 ← phi( plots::@1/(byte[]) plot_bit#3 ) - (byte[]) plot_ylo#1 ← phi( plots::@1/(byte[]) plot_ylo#3 ) (byte) plot::y#1 ← phi( plots::@1/(byte) plot::y#0 ) - (byte[]) plot_yhi#1 ← phi( plots::@1/(byte[]) plot_yhi#3 ) - (byte[]) plot_xlo#1 ← phi( plots::@1/(byte[]) plot_xlo#3 ) (byte) plot::x#1 ← phi( plots::@1/(byte) plot::x#0 ) - (byte[]) plot_xhi#1 ← phi( plots::@1/(byte[]) plot_xhi#3 ) (byte*) plot::plotter_x#0 ← ((byte*)) (byte/signed byte/word/signed word) 0 (word) plot::plotter_y#0 ← (byte/signed byte/word/signed word) 0 - (byte~) plot::$0 ← (byte[]) plot_xhi#1 *idx (byte) plot::x#1 + (byte~) plot::$0 ← (byte[]) plot_xhi#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#1 ← (byte*) plot::plotter_x#0 hi= (byte~) plot::$0 - (byte~) plot::$1 ← (byte[]) plot_xlo#1 *idx (byte) plot::x#1 + (byte~) plot::$1 ← (byte[]) plot_xlo#0 *idx (byte) plot::x#1 (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 - (byte~) plot::$2 ← (byte[]) plot_yhi#1 *idx (byte) plot::y#1 + (byte~) plot::$2 ← (byte[]) plot_yhi#0 *idx (byte) plot::y#1 (word) plot::plotter_y#1 ← (word) plot::plotter_y#0 hi= (byte~) plot::$2 - (byte~) plot::$3 ← (byte[]) plot_ylo#1 *idx (byte) plot::y#1 + (byte~) plot::$3 ← (byte[]) plot_ylo#0 *idx (byte) plot::y#1 (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 - (byte~) plot::$5 ← (byte[]) plot_bit#1 *idx (byte) plot::x#1 + (byte~) plot::$5 ← (byte[]) plot_bit#0 *idx (byte) plot::x#1 (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 *((byte*) plot::plotter#0) ← (byte~) plot::$6 to:plot::@return @@ -3790,29 +3032,17 @@ plot::@return: scope:[plot] from plot return to:@return init_plot_tables: scope:[init_plot_tables] from main::@5 - (byte[]) plot_yhi#14 ← phi( main::@5/(byte[]) plot_yhi#16 ) - (byte[]) plot_ylo#14 ← phi( main::@5/(byte[]) plot_ylo#16 ) - (byte[]) plot_bit#4 ← phi( main::@5/(byte[]) plot_bit#10 ) - (byte[]) plot_xhi#4 ← phi( main::@5/(byte[]) plot_xhi#10 ) - (byte*) BITMAP#6 ← phi( main::@5/(byte*) BITMAP#1 ) - (byte[]) plot_xlo#4 ← phi( main::@5/(byte[]) plot_xlo#10 ) (byte) init_plot_tables::bits#0 ← (byte/word/signed word) 128 (byte) init_plot_tables::x#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@1 init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2 - (byte[]) plot_yhi#11 ← phi( init_plot_tables/(byte[]) plot_yhi#14 ) - (byte[]) plot_ylo#11 ← phi( init_plot_tables/(byte[]) plot_ylo#14 ) - (byte[]) plot_bit#2 ← phi( init_plot_tables/(byte[]) plot_bit#4 ) (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte) init_plot_tables::bits#0 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) - (byte[]) plot_xhi#2 ← phi( init_plot_tables/(byte[]) plot_xhi#4 ) - (byte*) BITMAP#2 ← phi( init_plot_tables/(byte*) BITMAP#6 ) - (byte[]) plot_xlo#2 ← phi( init_plot_tables/(byte[]) plot_xlo#4 ) (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte) init_plot_tables::x#0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 - *((byte[]) plot_xlo#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 - (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#2 - *((byte[]) plot_xhi#2 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 - *((byte[]) plot_bit#2 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 + *((byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 + (byte~) init_plot_tables::$1 ← > (byte*) BITMAP#0 + *((byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$1 + *((byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 (boolean~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word) 0 if((boolean~) init_plot_tables::$4) goto init_plot_tables::@2 @@ -3831,16 +3061,14 @@ init_plot_tables::@6: scope:[init_plot_tables] from init_plot_tables::@2 (byte) init_plot_tables::y#0 ← (byte/signed byte/word/signed word) 0 to:init_plot_tables::@3 init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@4 init_plot_tables::@6 - (byte[]) plot_yhi#2 ← phi( init_plot_tables::@6/(byte[]) plot_yhi#11 ) - (byte[]) plot_ylo#2 ← phi( init_plot_tables::@6/(byte[]) plot_ylo#11 ) (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@6/(byte*) init_plot_tables::yoffs#0 ) (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@6/(byte) init_plot_tables::y#0 ) (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 - *((byte[]) plot_ylo#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 + *((byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 - *((byte[]) plot_yhi#2 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 + *((byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 (boolean~) init_plot_tables::$12 ← (byte~) init_plot_tables::$10 != (byte/signed byte/word/signed word) 7 if((boolean~) init_plot_tables::$12) goto init_plot_tables::@4 @@ -3860,16 +3088,14 @@ init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4 to:@return init_screen: scope:[init_screen] from main (byte*) SCREEN#6 ← phi( main/(byte*) SCREEN#1 ) - (byte*) BITMAP#3 ← phi( main/(byte*) BITMAP#1 ) - (byte*) init_screen::b#0 ← (byte*) BITMAP#3 + (byte*) init_screen::b#0 ← (byte*) BITMAP#0 to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@1 (byte*) SCREEN#2 ← phi( init_screen/(byte*) SCREEN#6 ) - (byte*) BITMAP#4 ← phi( init_screen/(byte*) BITMAP#3 ) (byte*) init_screen::b#2 ← phi( init_screen/(byte*) init_screen::b#0 init_screen::@1/(byte*) init_screen::b#1 ) *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 - (byte*~) init_screen::$0 ← (byte*) BITMAP#4 + (word/signed word) 8192 + (byte*~) init_screen::$0 ← (byte*) BITMAP#0 + (word/signed word) 8192 (boolean~) init_screen::$1 ← (byte*) init_screen::b#1 != (byte*~) init_screen::$0 if((boolean~) init_screen::$1) goto init_screen::@1 to:init_screen::@3 @@ -3900,67 +3126,25 @@ Redundant Phi (byte) DEN#1 (byte) DEN#0 Redundant Phi (byte) RSEL#1 (byte) RSEL#0 Redundant Phi (byte*) D011#1 (byte*) D011#0 Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0 -Redundant Phi (byte*) BITMAP#1 (byte*) BITMAP#0 Redundant Phi (byte*) D018#1 (byte*) D018#0 Redundant Phi (byte*) RASTER#3 (byte*) RASTER#0 -Redundant Phi (byte[]) plot_xlo#10 (byte[]) plot_xlo#0 -Redundant Phi (byte[]) plot_xhi#10 (byte[]) plot_xhi#0 -Redundant Phi (byte[]) plot_bit#10 (byte[]) plot_bit#0 Redundant Phi (byte[]) plots_x#10 (byte[]) plots_x#0 Redundant Phi (byte[]) plots_y#10 (byte[]) plots_y#0 -Redundant Phi (byte[]) plot_ylo#16 (byte[]) plot_ylo#0 -Redundant Phi (byte[]) plot_yhi#16 (byte[]) plot_yhi#0 Redundant Phi (byte) plots_cnt#10 (byte) plots_cnt#0 Redundant Phi (byte*) RASTER#1 (byte*) RASTER#3 Redundant Phi (byte*) BGCOL#2 (byte*) BGCOL#1 Redundant Phi (byte[]) plots_x#4 (byte[]) plots_x#10 Redundant Phi (byte[]) plots_y#4 (byte[]) plots_y#10 Redundant Phi (byte) plots_cnt#4 (byte) plots_cnt#10 -Redundant Phi (byte[]) plot_xhi#11 (byte[]) plot_xhi#10 -Redundant Phi (byte[]) plot_xlo#11 (byte[]) plot_xlo#10 -Redundant Phi (byte[]) plot_yhi#10 (byte[]) plot_yhi#16 -Redundant Phi (byte[]) plot_ylo#10 (byte[]) plot_ylo#16 -Redundant Phi (byte[]) plot_bit#11 (byte[]) plot_bit#10 Redundant Phi (byte[]) plots_x#2 (byte[]) plots_x#4 Redundant Phi (byte[]) plots_y#2 (byte[]) plots_y#4 Redundant Phi (byte) plots_cnt#3 (byte) plots_cnt#4 -Redundant Phi (byte[]) plot_xhi#6 (byte[]) plot_xhi#11 -Redundant Phi (byte[]) plot_xlo#6 (byte[]) plot_xlo#11 -Redundant Phi (byte[]) plot_yhi#6 (byte[]) plot_yhi#10 -Redundant Phi (byte[]) plot_ylo#6 (byte[]) plot_ylo#10 -Redundant Phi (byte[]) plot_bit#6 (byte[]) plot_bit#11 Redundant Phi (byte[]) plots_x#1 (byte[]) plots_x#2 Redundant Phi (byte[]) plots_y#1 (byte[]) plots_y#2 Redundant Phi (byte) plots_cnt#1 (byte) plots_cnt#3 -Redundant Phi (byte[]) plot_xhi#3 (byte[]) plot_xhi#6 -Redundant Phi (byte[]) plot_xlo#3 (byte[]) plot_xlo#6 -Redundant Phi (byte[]) plot_yhi#3 (byte[]) plot_yhi#6 -Redundant Phi (byte[]) plot_ylo#3 (byte[]) plot_ylo#6 -Redundant Phi (byte[]) plot_bit#3 (byte[]) plot_bit#6 -Redundant Phi (byte[]) plot_xhi#1 (byte[]) plot_xhi#3 Redundant Phi (byte) plot::x#1 (byte) plot::x#0 -Redundant Phi (byte[]) plot_xlo#1 (byte[]) plot_xlo#3 -Redundant Phi (byte[]) plot_yhi#1 (byte[]) plot_yhi#3 Redundant Phi (byte) plot::y#1 (byte) plot::y#0 -Redundant Phi (byte[]) plot_ylo#1 (byte[]) plot_ylo#3 -Redundant Phi (byte[]) plot_bit#1 (byte[]) plot_bit#3 -Redundant Phi (byte[]) plot_xlo#4 (byte[]) plot_xlo#10 -Redundant Phi (byte*) BITMAP#6 (byte*) BITMAP#1 -Redundant Phi (byte[]) plot_xhi#4 (byte[]) plot_xhi#10 -Redundant Phi (byte[]) plot_bit#4 (byte[]) plot_bit#10 -Redundant Phi (byte[]) plot_ylo#14 (byte[]) plot_ylo#16 -Redundant Phi (byte[]) plot_yhi#14 (byte[]) plot_yhi#16 -Redundant Phi (byte[]) plot_xlo#2 (byte[]) plot_xlo#4 -Redundant Phi (byte*) BITMAP#2 (byte*) BITMAP#6 -Redundant Phi (byte[]) plot_xhi#2 (byte[]) plot_xhi#4 -Redundant Phi (byte[]) plot_bit#2 (byte[]) plot_bit#4 -Redundant Phi (byte[]) plot_ylo#11 (byte[]) plot_ylo#14 -Redundant Phi (byte[]) plot_yhi#11 (byte[]) plot_yhi#14 -Redundant Phi (byte[]) plot_ylo#2 (byte[]) plot_ylo#11 -Redundant Phi (byte[]) plot_yhi#2 (byte[]) plot_yhi#11 -Redundant Phi (byte*) BITMAP#3 (byte*) BITMAP#1 Redundant Phi (byte*) SCREEN#6 (byte*) SCREEN#1 -Redundant Phi (byte*) BITMAP#4 (byte*) BITMAP#3 Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#6 Redundant Phi (byte*) SCREEN#3 (byte*) SCREEN#2 Succesful SSA optimization Pass2RedundantPhiElimination diff --git a/src/main/java/dk/camelot64/kickc/test/ref/const-identification.log b/src/main/java/dk/camelot64/kickc/test/ref/const-identification.log index d630c83fd..b8caa7754 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/const-identification.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/const-identification.log @@ -314,8 +314,6 @@ plot::@return: scope:[plot] from plot to:@end @end: scope:[] from @4 -Completing Phi functions... -Completing Phi functions... Completing Phi functions... Completing Phi functions... Completing Phi functions... @@ -325,38 +323,28 @@ CONTROL FLOW GRAPH SSA (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 to:@3 main: scope:[main] from @3 - (byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#6 ) - (byte[]) plots#3 ← phi( @3/(byte[]) plots#6 ) (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 to:main::@1 main::@1: scope:[main] from main main::@1 - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#3 main::@1/(byte*) SCREEN#1 ) - (byte[]) plots#1 ← phi( main/(byte[]) plots#3 main::@1/(byte[]) plots#1 ) (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - *((byte[]) plots#1 + (byte) main::i#2) ← (byte) main::i#2 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 + *((byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 if((boolean~) main::$0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@5 - (byte*) SCREEN#10 ← phi( main::@1/(byte*) SCREEN#1 main::@5/(byte*) SCREEN#11 ) - (byte[]) plots#10 ← phi( main::@1/(byte[]) plots#1 main::@5/(byte[]) plots#11 ) (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 call line param-assignment to:main::@5 main::@5: scope:[main] from main::@2 - (byte*) SCREEN#11 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#11 ← phi( main::@2/(byte[]) plots#10 ) if(true) goto main::@2 to:main::@return main::@return: scope:[main] from main::@5 return to:@return line: scope:[line] from main::@2 - (byte*) SCREEN#7 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#7 ← phi( main::@2/(byte[]) plots#10 ) (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) (byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 ) (boolean~) line::$0 ← (byte) line::x0#1 < (byte) line::x1#1 @@ -364,8 +352,6 @@ line: scope:[line] from main::@2 if((boolean~) line::$1) goto line::@1 to:line::@4 line::@1: scope:[line] from line - (byte*) SCREEN#4 ← phi( line/(byte*) SCREEN#7 ) - (byte[]) plots#4 ← phi( line/(byte[]) plots#7 ) (byte) line::x0#2 ← phi( line/(byte) line::x0#1 ) (byte) plot::x#0 ← (byte) line::x0#2 call plot param-assignment @@ -373,23 +359,17 @@ line::@1: scope:[line] from line line::@7: scope:[line] from line::@1 to:line::@return line::@4: scope:[line] from line - (byte*) SCREEN#8 ← phi( line/(byte*) SCREEN#7 ) - (byte[]) plots#8 ← phi( line/(byte[]) plots#7 ) (byte) line::x1#4 ← phi( line/(byte) line::x1#1 ) (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) (byte) line::x#0 ← (byte) line::x0#3 to:line::@2 line::@2: scope:[line] from line::@4 line::@8 - (byte*) SCREEN#5 ← phi( line::@4/(byte*) SCREEN#8 line::@8/(byte*) SCREEN#9 ) - (byte[]) plots#5 ← phi( line::@4/(byte[]) plots#8 line::@8/(byte[]) plots#9 ) (byte) line::x1#3 ← phi( line::@4/(byte) line::x1#4 line::@8/(byte) line::x1#2 ) (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) (byte) plot::x#1 ← (byte) line::x#2 call plot param-assignment to:line::@8 line::@8: scope:[line] from line::@2 - (byte*) SCREEN#9 ← phi( line::@2/(byte*) SCREEN#5 ) - (byte[]) plots#9 ← phi( line::@2/(byte[]) plots#5 ) (byte) line::x1#2 ← phi( line::@2/(byte) line::x1#3 ) (byte) line::x#3 ← phi( line::@2/(byte) line::x#2 ) (byte) line::x#1 ← ++ (byte) line::x#3 @@ -400,21 +380,17 @@ line::@return: scope:[line] from line::@7 line::@8 return to:@return plot: scope:[plot] from line::@1 line::@2 - (byte*) SCREEN#2 ← phi( line::@1/(byte*) SCREEN#4 line::@2/(byte*) SCREEN#5 ) (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) - (byte[]) plots#2 ← phi( line::@1/(byte[]) plots#4 line::@2/(byte[]) plots#5 ) - (byte~) plot::$0 ← (byte[]) plots#2 *idx (byte) plot::x#2 + (byte~) plot::$0 ← (byte[]) plots#0 *idx (byte) plot::x#2 (byte) plot::idx#0 ← (byte~) plot::$0 - (byte~) plot::$1 ← (byte*) SCREEN#2 *idx (byte) plot::idx#0 + (byte~) plot::$1 ← (byte*) SCREEN#0 *idx (byte) plot::idx#0 (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) plot::idx#0) ← (byte~) plot::$2 + *((byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 to:plot::@return plot::@return: scope:[plot] from plot return to:@return @3: scope:[] from @begin - (byte*) SCREEN#6 ← phi( @begin/(byte*) SCREEN#0 ) - (byte[]) plots#6 ← phi( @begin/(byte[]) plots#0 ) call main param-assignment to:@4 @4: scope:[] from @3 @@ -427,38 +403,28 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 to:@3 main: scope:[main] from @3 - (byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#6 ) - (byte[]) plots#3 ← phi( @3/(byte[]) plots#6 ) (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 to:main::@1 main::@1: scope:[main] from main main::@1 - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#3 main::@1/(byte*) SCREEN#1 ) - (byte[]) plots#1 ← phi( main/(byte[]) plots#3 main::@1/(byte[]) plots#1 ) (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - *((byte[]) plots#1 + (byte) main::i#2) ← (byte) main::i#2 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 + *((byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 if((boolean~) main::$0) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@5 - (byte*) SCREEN#10 ← phi( main::@1/(byte*) SCREEN#1 main::@5/(byte*) SCREEN#11 ) - (byte[]) plots#10 ← phi( main::@1/(byte[]) plots#1 main::@5/(byte[]) plots#11 ) (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 call line param-assignment to:main::@5 main::@5: scope:[main] from main::@2 - (byte*) SCREEN#11 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#11 ← phi( main::@2/(byte[]) plots#10 ) if(true) goto main::@2 to:main::@return main::@return: scope:[main] from main::@5 return to:@return line: scope:[line] from main::@2 - (byte*) SCREEN#7 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#7 ← phi( main::@2/(byte[]) plots#10 ) (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) (byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 ) (boolean~) line::$0 ← (byte) line::x0#1 < (byte) line::x1#1 @@ -466,8 +432,6 @@ line: scope:[line] from main::@2 if((boolean~) line::$1) goto line::@1 to:line::@4 line::@1: scope:[line] from line - (byte*) SCREEN#4 ← phi( line/(byte*) SCREEN#7 ) - (byte[]) plots#4 ← phi( line/(byte[]) plots#7 ) (byte) line::x0#2 ← phi( line/(byte) line::x0#1 ) (byte) plot::x#0 ← (byte) line::x0#2 call plot param-assignment @@ -475,23 +439,17 @@ line::@1: scope:[line] from line line::@7: scope:[line] from line::@1 to:line::@return line::@4: scope:[line] from line - (byte*) SCREEN#8 ← phi( line/(byte*) SCREEN#7 ) - (byte[]) plots#8 ← phi( line/(byte[]) plots#7 ) (byte) line::x1#4 ← phi( line/(byte) line::x1#1 ) (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) (byte) line::x#0 ← (byte) line::x0#3 to:line::@2 line::@2: scope:[line] from line::@4 line::@8 - (byte*) SCREEN#5 ← phi( line::@4/(byte*) SCREEN#8 line::@8/(byte*) SCREEN#9 ) - (byte[]) plots#5 ← phi( line::@4/(byte[]) plots#8 line::@8/(byte[]) plots#9 ) (byte) line::x1#3 ← phi( line::@4/(byte) line::x1#4 line::@8/(byte) line::x1#2 ) (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) (byte) plot::x#1 ← (byte) line::x#2 call plot param-assignment to:line::@8 line::@8: scope:[line] from line::@2 - (byte*) SCREEN#9 ← phi( line::@2/(byte*) SCREEN#5 ) - (byte[]) plots#9 ← phi( line::@2/(byte[]) plots#5 ) (byte) line::x1#2 ← phi( line::@2/(byte) line::x1#3 ) (byte) line::x#3 ← phi( line::@2/(byte) line::x#2 ) (byte) line::x#1 ← ++ (byte) line::x#3 @@ -502,21 +460,17 @@ line::@return: scope:[line] from line::@7 line::@8 return to:@return plot: scope:[plot] from line::@1 line::@2 - (byte*) SCREEN#2 ← phi( line::@1/(byte*) SCREEN#4 line::@2/(byte*) SCREEN#5 ) (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) - (byte[]) plots#2 ← phi( line::@1/(byte[]) plots#4 line::@2/(byte[]) plots#5 ) - (byte~) plot::$0 ← (byte[]) plots#2 *idx (byte) plot::x#2 + (byte~) plot::$0 ← (byte[]) plots#0 *idx (byte) plot::x#2 (byte) plot::idx#0 ← (byte~) plot::$0 - (byte~) plot::$1 ← (byte*) SCREEN#2 *idx (byte) plot::idx#0 + (byte~) plot::$1 ← (byte*) SCREEN#0 *idx (byte) plot::idx#0 (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) plot::idx#0) ← (byte~) plot::$2 + *((byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 to:plot::@return plot::@return: scope:[plot] from plot return to:@return @3: scope:[] from @begin - (byte*) SCREEN#6 ← phi( @begin/(byte*) SCREEN#0 ) - (byte[]) plots#6 ← phi( @begin/(byte[]) plots#0 ) call main param-assignment to:@4 @4: scope:[] from @3 @@ -530,17 +484,6 @@ INITIAL SSA SYMBOL TABLE (label) @end (byte*) SCREEN (byte*) SCREEN#0 -(byte*) SCREEN#1 -(byte*) SCREEN#10 -(byte*) SCREEN#11 -(byte*) SCREEN#2 -(byte*) SCREEN#3 -(byte*) SCREEN#4 -(byte*) SCREEN#5 -(byte*) SCREEN#6 -(byte*) SCREEN#7 -(byte*) SCREEN#8 -(byte*) SCREEN#9 (void()) line((byte) line::x0 , (byte) line::x1) (boolean~) line::$0 (boolean~) line::$1 @@ -590,437 +533,11 @@ INITIAL SSA SYMBOL TABLE (byte) plot::x#2 (byte[]) plots (byte[]) plots#0 -(byte[]) plots#1 -(byte[]) plots#10 -(byte[]) plots#11 -(byte[]) plots#2 -(byte[]) plots#3 -(byte[]) plots#4 -(byte[]) plots#5 -(byte[]) plots#6 -(byte[]) plots#7 -(byte[]) plots#8 -(byte[]) plots#9 Culled Empty Block (label) line::@7 Culled Empty Block (label) @4 Succesful SSA optimization Pass2CullEmptyBlocks CONTROL FLOW GRAPH -@begin: scope:[] from - (byte[]) plots#0 ← ((byte*)) (word/signed word) 4096 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 - to:@3 -main: scope:[main] from @3 - (byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#6 ) - (byte[]) plots#3 ← phi( @3/(byte[]) plots#6 ) - (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 - to:main::@1 -main::@1: scope:[main] from main main::@1 - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#3 main::@1/(byte*) SCREEN#1 ) - (byte[]) plots#1 ← phi( main/(byte[]) plots#3 main::@1/(byte[]) plots#1 ) - (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - *((byte[]) plots#1 + (byte) main::i#2) ← (byte) main::i#2 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 - (byte) main::i#1 ← ++ (byte) main::i#2 - (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 - if((boolean~) main::$0) goto main::@1 - to:main::@2 -main::@2: scope:[main] from main::@1 main::@5 - (byte*) SCREEN#10 ← phi( main::@1/(byte*) SCREEN#1 main::@5/(byte*) SCREEN#11 ) - (byte[]) plots#10 ← phi( main::@1/(byte[]) plots#1 main::@5/(byte[]) plots#11 ) - (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 - (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 - call line param-assignment - to:main::@5 -main::@5: scope:[main] from main::@2 - (byte*) SCREEN#11 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#11 ← phi( main::@2/(byte[]) plots#10 ) - if(true) goto main::@2 - to:main::@return -main::@return: scope:[main] from main::@5 - return - to:@return -line: scope:[line] from main::@2 - (byte*) SCREEN#7 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#7 ← phi( main::@2/(byte[]) plots#10 ) - (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) - (byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 ) - (boolean~) line::$0 ← (byte) line::x0#1 < (byte) line::x1#1 - (boolean~) line::$1 ← ! (boolean~) line::$0 - if((boolean~) line::$1) goto line::@1 - to:line::@4 -line::@1: scope:[line] from line - (byte*) SCREEN#4 ← phi( line/(byte*) SCREEN#7 ) - (byte[]) plots#4 ← phi( line/(byte[]) plots#7 ) - (byte) line::x0#2 ← phi( line/(byte) line::x0#1 ) - (byte) plot::x#0 ← (byte) line::x0#2 - call plot param-assignment - to:line::@return -line::@4: scope:[line] from line - (byte*) SCREEN#8 ← phi( line/(byte*) SCREEN#7 ) - (byte[]) plots#8 ← phi( line/(byte[]) plots#7 ) - (byte) line::x1#4 ← phi( line/(byte) line::x1#1 ) - (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) - (byte) line::x#0 ← (byte) line::x0#3 - to:line::@2 -line::@2: scope:[line] from line::@4 line::@8 - (byte*) SCREEN#5 ← phi( line::@4/(byte*) SCREEN#8 line::@8/(byte*) SCREEN#9 ) - (byte[]) plots#5 ← phi( line::@4/(byte[]) plots#8 line::@8/(byte[]) plots#9 ) - (byte) line::x1#3 ← phi( line::@4/(byte) line::x1#4 line::@8/(byte) line::x1#2 ) - (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) - (byte) plot::x#1 ← (byte) line::x#2 - call plot param-assignment - to:line::@8 -line::@8: scope:[line] from line::@2 - (byte*) SCREEN#9 ← phi( line::@2/(byte*) SCREEN#5 ) - (byte[]) plots#9 ← phi( line::@2/(byte[]) plots#5 ) - (byte) line::x1#2 ← phi( line::@2/(byte) line::x1#3 ) - (byte) line::x#3 ← phi( line::@2/(byte) line::x#2 ) - (byte) line::x#1 ← ++ (byte) line::x#3 - (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2 - if((boolean~) line::$3) goto line::@2 - to:line::@return -line::@return: scope:[line] from line::@1 line::@8 - return - to:@return -plot: scope:[plot] from line::@1 line::@2 - (byte*) SCREEN#2 ← phi( line::@1/(byte*) SCREEN#4 line::@2/(byte*) SCREEN#5 ) - (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) - (byte[]) plots#2 ← phi( line::@1/(byte[]) plots#4 line::@2/(byte[]) plots#5 ) - (byte~) plot::$0 ← (byte[]) plots#2 *idx (byte) plot::x#2 - (byte) plot::idx#0 ← (byte~) plot::$0 - (byte~) plot::$1 ← (byte*) SCREEN#2 *idx (byte) plot::idx#0 - (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) plot::idx#0) ← (byte~) plot::$2 - to:plot::@return -plot::@return: scope:[plot] from plot - return - to:@return -@3: scope:[] from @begin - (byte*) SCREEN#6 ← phi( @begin/(byte*) SCREEN#0 ) - (byte[]) plots#6 ← phi( @begin/(byte[]) plots#0 ) - call main param-assignment - to:@end -@end: scope:[] from @3 - -Inversing boolean not (boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1 from (boolean~) line::$0 ← (byte) line::x0#1 < (byte) line::x1#1 -Succesful SSA optimization Pass2UnaryNotSimplification -CONTROL FLOW GRAPH -@begin: scope:[] from - (byte[]) plots#0 ← ((byte*)) (word/signed word) 4096 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 - to:@3 -main: scope:[main] from @3 - (byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#6 ) - (byte[]) plots#3 ← phi( @3/(byte[]) plots#6 ) - (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 - to:main::@1 -main::@1: scope:[main] from main main::@1 - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#3 main::@1/(byte*) SCREEN#1 ) - (byte[]) plots#1 ← phi( main/(byte[]) plots#3 main::@1/(byte[]) plots#1 ) - (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - *((byte[]) plots#1 + (byte) main::i#2) ← (byte) main::i#2 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 - (byte) main::i#1 ← ++ (byte) main::i#2 - (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 - if((boolean~) main::$0) goto main::@1 - to:main::@2 -main::@2: scope:[main] from main::@1 main::@5 - (byte*) SCREEN#10 ← phi( main::@1/(byte*) SCREEN#1 main::@5/(byte*) SCREEN#11 ) - (byte[]) plots#10 ← phi( main::@1/(byte[]) plots#1 main::@5/(byte[]) plots#11 ) - (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 - (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 - call line param-assignment - to:main::@5 -main::@5: scope:[main] from main::@2 - (byte*) SCREEN#11 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#11 ← phi( main::@2/(byte[]) plots#10 ) - if(true) goto main::@2 - to:main::@return -main::@return: scope:[main] from main::@5 - return - to:@return -line: scope:[line] from main::@2 - (byte*) SCREEN#7 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#7 ← phi( main::@2/(byte[]) plots#10 ) - (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) - (byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 ) - (boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1 - if((boolean~) line::$1) goto line::@1 - to:line::@4 -line::@1: scope:[line] from line - (byte*) SCREEN#4 ← phi( line/(byte*) SCREEN#7 ) - (byte[]) plots#4 ← phi( line/(byte[]) plots#7 ) - (byte) line::x0#2 ← phi( line/(byte) line::x0#1 ) - (byte) plot::x#0 ← (byte) line::x0#2 - call plot param-assignment - to:line::@return -line::@4: scope:[line] from line - (byte*) SCREEN#8 ← phi( line/(byte*) SCREEN#7 ) - (byte[]) plots#8 ← phi( line/(byte[]) plots#7 ) - (byte) line::x1#4 ← phi( line/(byte) line::x1#1 ) - (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) - (byte) line::x#0 ← (byte) line::x0#3 - to:line::@2 -line::@2: scope:[line] from line::@4 line::@8 - (byte*) SCREEN#5 ← phi( line::@4/(byte*) SCREEN#8 line::@8/(byte*) SCREEN#9 ) - (byte[]) plots#5 ← phi( line::@4/(byte[]) plots#8 line::@8/(byte[]) plots#9 ) - (byte) line::x1#3 ← phi( line::@4/(byte) line::x1#4 line::@8/(byte) line::x1#2 ) - (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) - (byte) plot::x#1 ← (byte) line::x#2 - call plot param-assignment - to:line::@8 -line::@8: scope:[line] from line::@2 - (byte*) SCREEN#9 ← phi( line::@2/(byte*) SCREEN#5 ) - (byte[]) plots#9 ← phi( line::@2/(byte[]) plots#5 ) - (byte) line::x1#2 ← phi( line::@2/(byte) line::x1#3 ) - (byte) line::x#3 ← phi( line::@2/(byte) line::x#2 ) - (byte) line::x#1 ← ++ (byte) line::x#3 - (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2 - if((boolean~) line::$3) goto line::@2 - to:line::@return -line::@return: scope:[line] from line::@1 line::@8 - return - to:@return -plot: scope:[plot] from line::@1 line::@2 - (byte*) SCREEN#2 ← phi( line::@1/(byte*) SCREEN#4 line::@2/(byte*) SCREEN#5 ) - (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) - (byte[]) plots#2 ← phi( line::@1/(byte[]) plots#4 line::@2/(byte[]) plots#5 ) - (byte~) plot::$0 ← (byte[]) plots#2 *idx (byte) plot::x#2 - (byte) plot::idx#0 ← (byte~) plot::$0 - (byte~) plot::$1 ← (byte*) SCREEN#2 *idx (byte) plot::idx#0 - (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) plot::idx#0) ← (byte~) plot::$2 - to:plot::@return -plot::@return: scope:[plot] from plot - return - to:@return -@3: scope:[] from @begin - (byte*) SCREEN#6 ← phi( @begin/(byte*) SCREEN#0 ) - (byte[]) plots#6 ← phi( @begin/(byte[]) plots#0 ) - call main param-assignment - to:@end -@end: scope:[] from @3 - -Not aliassing across scopes: plots#3 plots#6 -Not aliassing across scopes: SCREEN#3 SCREEN#6 -Not aliassing across scopes: line::x0#1 line::x0#0 -Not aliassing across scopes: line::x1#1 line::x1#0 -Not aliassing across scopes: plots#7 plots#10 -Not aliassing across scopes: SCREEN#7 SCREEN#10 -Not aliassing across scopes: plot::x#0 line::x0#2 -Not aliassing across scopes: plot::x#1 line::x#2 -Not aliassing across scopes: plots#2 plots#4 -Not aliassing across scopes: plot::x#2 plot::x#0 -Not aliassing across scopes: SCREEN#2 SCREEN#4 -Alias (byte[]) plots#10 = (byte[]) plots#11 -Alias (byte*) SCREEN#10 = (byte*) SCREEN#11 -Alias (byte) line::x#0 = (byte) line::x0#2 (byte) line::x0#1 (byte) line::x0#3 -Alias (byte[]) plots#4 = (byte[]) plots#7 (byte[]) plots#8 -Alias (byte*) SCREEN#4 = (byte*) SCREEN#7 (byte*) SCREEN#8 -Alias (byte) line::x1#1 = (byte) line::x1#4 -Alias (byte) line::x#2 = (byte) line::x#3 -Alias (byte) line::x1#2 = (byte) line::x1#3 -Alias (byte[]) plots#5 = (byte[]) plots#9 -Alias (byte*) SCREEN#5 = (byte*) SCREEN#9 -Alias (byte) plot::idx#0 = (byte~) plot::$0 -Alias (byte[]) plots#0 = (byte[]) plots#6 -Alias (byte*) SCREEN#0 = (byte*) SCREEN#6 -Succesful SSA optimization Pass2AliasElimination -CONTROL FLOW GRAPH -@begin: scope:[] from - (byte[]) plots#0 ← ((byte*)) (word/signed word) 4096 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 - to:@3 -main: scope:[main] from @3 - (byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#0 ) - (byte[]) plots#3 ← phi( @3/(byte[]) plots#0 ) - (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 - to:main::@1 -main::@1: scope:[main] from main main::@1 - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#3 main::@1/(byte*) SCREEN#1 ) - (byte[]) plots#1 ← phi( main/(byte[]) plots#3 main::@1/(byte[]) plots#1 ) - (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - *((byte[]) plots#1 + (byte) main::i#2) ← (byte) main::i#2 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 - (byte) main::i#1 ← ++ (byte) main::i#2 - (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 - if((boolean~) main::$0) goto main::@1 - to:main::@2 -main::@2: scope:[main] from main::@1 main::@5 - (byte*) SCREEN#10 ← phi( main::@1/(byte*) SCREEN#1 main::@5/(byte*) SCREEN#10 ) - (byte[]) plots#10 ← phi( main::@1/(byte[]) plots#1 main::@5/(byte[]) plots#10 ) - (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 - (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 - call line param-assignment - to:main::@5 -main::@5: scope:[main] from main::@2 - if(true) goto main::@2 - to:main::@return -main::@return: scope:[main] from main::@5 - return - to:@return -line: scope:[line] from main::@2 - (byte*) SCREEN#4 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#4 ← phi( main::@2/(byte[]) plots#10 ) - (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) - (byte) line::x#0 ← phi( main::@2/(byte) line::x0#0 ) - (boolean~) line::$1 ← (byte) line::x#0 >= (byte) line::x1#1 - if((boolean~) line::$1) goto line::@1 - to:line::@4 -line::@1: scope:[line] from line - (byte) plot::x#0 ← (byte) line::x#0 - call plot param-assignment - to:line::@return -line::@4: scope:[line] from line - to:line::@2 -line::@2: scope:[line] from line::@4 line::@8 - (byte*) SCREEN#5 ← phi( line::@4/(byte*) SCREEN#4 line::@8/(byte*) SCREEN#5 ) - (byte[]) plots#5 ← phi( line::@4/(byte[]) plots#4 line::@8/(byte[]) plots#5 ) - (byte) line::x1#2 ← phi( line::@4/(byte) line::x1#1 line::@8/(byte) line::x1#2 ) - (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) - (byte) plot::x#1 ← (byte) line::x#2 - call plot param-assignment - to:line::@8 -line::@8: scope:[line] from line::@2 - (byte) line::x#1 ← ++ (byte) line::x#2 - (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2 - if((boolean~) line::$3) goto line::@2 - to:line::@return -line::@return: scope:[line] from line::@1 line::@8 - return - to:@return -plot: scope:[plot] from line::@1 line::@2 - (byte*) SCREEN#2 ← phi( line::@1/(byte*) SCREEN#4 line::@2/(byte*) SCREEN#5 ) - (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) - (byte[]) plots#2 ← phi( line::@1/(byte[]) plots#4 line::@2/(byte[]) plots#5 ) - (byte) plot::idx#0 ← (byte[]) plots#2 *idx (byte) plot::x#2 - (byte~) plot::$1 ← (byte*) SCREEN#2 *idx (byte) plot::idx#0 - (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) plot::idx#0) ← (byte~) plot::$2 - to:plot::@return -plot::@return: scope:[plot] from plot - return - to:@return -@3: scope:[] from @begin - call main param-assignment - to:@end -@end: scope:[] from @3 - -Not aliassing across scopes: plots#3 plots#0 -Not aliassing across scopes: SCREEN#3 SCREEN#0 -Not aliassing across scopes: line::x#0 line::x0#0 -Not aliassing across scopes: line::x1#1 line::x1#0 -Not aliassing across scopes: plots#4 plots#10 -Not aliassing across scopes: SCREEN#4 SCREEN#10 -Not aliassing across scopes: plot::x#0 line::x#0 -Not aliassing across scopes: plot::x#1 line::x#2 -Not aliassing across scopes: plots#2 plots#4 -Not aliassing across scopes: plot::x#2 plot::x#0 -Not aliassing across scopes: SCREEN#2 SCREEN#4 -Self Phi Eliminated (byte[]) plots#1 -Self Phi Eliminated (byte*) SCREEN#1 -Self Phi Eliminated (byte[]) plots#10 -Self Phi Eliminated (byte*) SCREEN#10 -Self Phi Eliminated (byte) line::x1#2 -Self Phi Eliminated (byte[]) plots#5 -Self Phi Eliminated (byte*) SCREEN#5 -Succesful SSA optimization Pass2SelfPhiElimination -CONTROL FLOW GRAPH -@begin: scope:[] from - (byte[]) plots#0 ← ((byte*)) (word/signed word) 4096 - (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 - to:@3 -main: scope:[main] from @3 - (byte*) SCREEN#3 ← phi( @3/(byte*) SCREEN#0 ) - (byte[]) plots#3 ← phi( @3/(byte[]) plots#0 ) - (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 - to:main::@1 -main::@1: scope:[main] from main main::@1 - (byte*) SCREEN#1 ← phi( main/(byte*) SCREEN#3 ) - (byte[]) plots#1 ← phi( main/(byte[]) plots#3 ) - (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - *((byte[]) plots#1 + (byte) main::i#2) ← (byte) main::i#2 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 - (byte) main::i#1 ← ++ (byte) main::i#2 - (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 - if((boolean~) main::$0) goto main::@1 - to:main::@2 -main::@2: scope:[main] from main::@1 main::@5 - (byte*) SCREEN#10 ← phi( main::@1/(byte*) SCREEN#1 ) - (byte[]) plots#10 ← phi( main::@1/(byte[]) plots#1 ) - (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 - (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 - call line param-assignment - to:main::@5 -main::@5: scope:[main] from main::@2 - if(true) goto main::@2 - to:main::@return -main::@return: scope:[main] from main::@5 - return - to:@return -line: scope:[line] from main::@2 - (byte*) SCREEN#4 ← phi( main::@2/(byte*) SCREEN#10 ) - (byte[]) plots#4 ← phi( main::@2/(byte[]) plots#10 ) - (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) - (byte) line::x#0 ← phi( main::@2/(byte) line::x0#0 ) - (boolean~) line::$1 ← (byte) line::x#0 >= (byte) line::x1#1 - if((boolean~) line::$1) goto line::@1 - to:line::@4 -line::@1: scope:[line] from line - (byte) plot::x#0 ← (byte) line::x#0 - call plot param-assignment - to:line::@return -line::@4: scope:[line] from line - to:line::@2 -line::@2: scope:[line] from line::@4 line::@8 - (byte*) SCREEN#5 ← phi( line::@4/(byte*) SCREEN#4 ) - (byte[]) plots#5 ← phi( line::@4/(byte[]) plots#4 ) - (byte) line::x1#2 ← phi( line::@4/(byte) line::x1#1 ) - (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) - (byte) plot::x#1 ← (byte) line::x#2 - call plot param-assignment - to:line::@8 -line::@8: scope:[line] from line::@2 - (byte) line::x#1 ← ++ (byte) line::x#2 - (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2 - if((boolean~) line::$3) goto line::@2 - to:line::@return -line::@return: scope:[line] from line::@1 line::@8 - return - to:@return -plot: scope:[plot] from line::@1 line::@2 - (byte*) SCREEN#2 ← phi( line::@1/(byte*) SCREEN#4 line::@2/(byte*) SCREEN#5 ) - (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) - (byte[]) plots#2 ← phi( line::@1/(byte[]) plots#4 line::@2/(byte[]) plots#5 ) - (byte) plot::idx#0 ← (byte[]) plots#2 *idx (byte) plot::x#2 - (byte~) plot::$1 ← (byte*) SCREEN#2 *idx (byte) plot::idx#0 - (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) plot::idx#0) ← (byte~) plot::$2 - to:plot::@return -plot::@return: scope:[plot] from plot - return - to:@return -@3: scope:[] from @begin - call main param-assignment - to:@end -@end: scope:[] from @3 - -Redundant Phi (byte[]) plots#3 (byte[]) plots#0 -Redundant Phi (byte*) SCREEN#3 (byte*) SCREEN#0 -Redundant Phi (byte[]) plots#1 (byte[]) plots#3 -Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#3 -Redundant Phi (byte[]) plots#10 (byte[]) plots#1 -Redundant Phi (byte*) SCREEN#10 (byte*) SCREEN#1 -Redundant Phi (byte) line::x#0 (byte) line::x0#0 -Redundant Phi (byte) line::x1#1 (byte) line::x1#0 -Redundant Phi (byte[]) plots#4 (byte[]) plots#10 -Redundant Phi (byte*) SCREEN#4 (byte*) SCREEN#10 -Redundant Phi (byte) line::x1#2 (byte) line::x1#1 -Redundant Phi (byte[]) plots#5 (byte[]) plots#4 -Redundant Phi (byte*) SCREEN#5 (byte*) SCREEN#4 -Succesful SSA optimization Pass2RedundantPhiElimination -CONTROL FLOW GRAPH @begin: scope:[] from (byte[]) plots#0 ← ((byte*)) (word/signed word) 4096 (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 @@ -1048,36 +565,45 @@ main::@return: scope:[main] from main::@5 return to:@return line: scope:[line] from main::@2 - (boolean~) line::$1 ← (byte) line::x0#0 >= (byte) line::x1#0 + (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) + (byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 ) + (boolean~) line::$0 ← (byte) line::x0#1 < (byte) line::x1#1 + (boolean~) line::$1 ← ! (boolean~) line::$0 if((boolean~) line::$1) goto line::@1 to:line::@4 line::@1: scope:[line] from line - (byte) plot::x#0 ← (byte) line::x0#0 + (byte) line::x0#2 ← phi( line/(byte) line::x0#1 ) + (byte) plot::x#0 ← (byte) line::x0#2 call plot param-assignment to:line::@return line::@4: scope:[line] from line + (byte) line::x1#4 ← phi( line/(byte) line::x1#1 ) + (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) + (byte) line::x#0 ← (byte) line::x0#3 to:line::@2 line::@2: scope:[line] from line::@4 line::@8 - (byte) line::x#2 ← phi( line::@4/(byte) line::x0#0 line::@8/(byte) line::x#1 ) + (byte) line::x1#3 ← phi( line::@4/(byte) line::x1#4 line::@8/(byte) line::x1#2 ) + (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) (byte) plot::x#1 ← (byte) line::x#2 call plot param-assignment to:line::@8 line::@8: scope:[line] from line::@2 - (byte) line::x#1 ← ++ (byte) line::x#2 - (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#0 + (byte) line::x1#2 ← phi( line::@2/(byte) line::x1#3 ) + (byte) line::x#3 ← phi( line::@2/(byte) line::x#2 ) + (byte) line::x#1 ← ++ (byte) line::x#3 + (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2 if((boolean~) line::$3) goto line::@2 to:line::@return line::@return: scope:[line] from line::@1 line::@8 return to:@return plot: scope:[plot] from line::@1 line::@2 - (byte*) SCREEN#2 ← phi( line::@1/(byte*) SCREEN#0 line::@2/(byte*) SCREEN#0 ) (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) - (byte[]) plots#2 ← phi( line::@1/(byte[]) plots#0 line::@2/(byte[]) plots#0 ) - (byte) plot::idx#0 ← (byte[]) plots#2 *idx (byte) plot::x#2 - (byte~) plot::$1 ← (byte*) SCREEN#2 *idx (byte) plot::idx#0 + (byte~) plot::$0 ← (byte[]) plots#0 *idx (byte) plot::x#2 + (byte) plot::idx#0 ← (byte~) plot::$0 + (byte~) plot::$1 ← (byte*) SCREEN#0 *idx (byte) plot::idx#0 (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) plot::idx#0) ← (byte~) plot::$2 + *((byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 to:plot::@return plot::@return: scope:[plot] from plot return @@ -1087,8 +613,240 @@ plot::@return: scope:[plot] from plot to:@end @end: scope:[] from @3 -Redundant Phi (byte[]) plots#2 (byte[]) plots#0 -Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0 +Inversing boolean not (boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1 from (boolean~) line::$0 ← (byte) line::x0#1 < (byte) line::x1#1 +Succesful SSA optimization Pass2UnaryNotSimplification +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte[]) plots#0 ← ((byte*)) (word/signed word) 4096 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 + to:@3 +main: scope:[main] from @3 + (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 + to:main::@1 +main::@1: scope:[main] from main main::@1 + (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) + *((byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 + if((boolean~) main::$0) goto main::@1 + to:main::@2 +main::@2: scope:[main] from main::@1 main::@5 + (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 + (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 + call line param-assignment + to:main::@5 +main::@5: scope:[main] from main::@2 + if(true) goto main::@2 + to:main::@return +main::@return: scope:[main] from main::@5 + return + to:@return +line: scope:[line] from main::@2 + (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) + (byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 ) + (boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1 + if((boolean~) line::$1) goto line::@1 + to:line::@4 +line::@1: scope:[line] from line + (byte) line::x0#2 ← phi( line/(byte) line::x0#1 ) + (byte) plot::x#0 ← (byte) line::x0#2 + call plot param-assignment + to:line::@return +line::@4: scope:[line] from line + (byte) line::x1#4 ← phi( line/(byte) line::x1#1 ) + (byte) line::x0#3 ← phi( line/(byte) line::x0#1 ) + (byte) line::x#0 ← (byte) line::x0#3 + to:line::@2 +line::@2: scope:[line] from line::@4 line::@8 + (byte) line::x1#3 ← phi( line::@4/(byte) line::x1#4 line::@8/(byte) line::x1#2 ) + (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) + (byte) plot::x#1 ← (byte) line::x#2 + call plot param-assignment + to:line::@8 +line::@8: scope:[line] from line::@2 + (byte) line::x1#2 ← phi( line::@2/(byte) line::x1#3 ) + (byte) line::x#3 ← phi( line::@2/(byte) line::x#2 ) + (byte) line::x#1 ← ++ (byte) line::x#3 + (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2 + if((boolean~) line::$3) goto line::@2 + to:line::@return +line::@return: scope:[line] from line::@1 line::@8 + return + to:@return +plot: scope:[plot] from line::@1 line::@2 + (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) + (byte~) plot::$0 ← (byte[]) plots#0 *idx (byte) plot::x#2 + (byte) plot::idx#0 ← (byte~) plot::$0 + (byte~) plot::$1 ← (byte*) SCREEN#0 *idx (byte) plot::idx#0 + (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 + *((byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 + to:plot::@return +plot::@return: scope:[plot] from plot + return + to:@return +@3: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @3 + +Not aliassing across scopes: line::x0#1 line::x0#0 +Not aliassing across scopes: line::x1#1 line::x1#0 +Not aliassing across scopes: plot::x#0 line::x0#2 +Not aliassing across scopes: plot::x#1 line::x#2 +Not aliassing across scopes: plot::x#2 plot::x#0 +Alias (byte) line::x#0 = (byte) line::x0#2 (byte) line::x0#1 (byte) line::x0#3 +Alias (byte) line::x1#1 = (byte) line::x1#4 +Alias (byte) line::x#2 = (byte) line::x#3 +Alias (byte) line::x1#2 = (byte) line::x1#3 +Alias (byte) plot::idx#0 = (byte~) plot::$0 +Succesful SSA optimization Pass2AliasElimination +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte[]) plots#0 ← ((byte*)) (word/signed word) 4096 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 + to:@3 +main: scope:[main] from @3 + (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 + to:main::@1 +main::@1: scope:[main] from main main::@1 + (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) + *((byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 + if((boolean~) main::$0) goto main::@1 + to:main::@2 +main::@2: scope:[main] from main::@1 main::@5 + (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 + (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 + call line param-assignment + to:main::@5 +main::@5: scope:[main] from main::@2 + if(true) goto main::@2 + to:main::@return +main::@return: scope:[main] from main::@5 + return + to:@return +line: scope:[line] from main::@2 + (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) + (byte) line::x#0 ← phi( main::@2/(byte) line::x0#0 ) + (boolean~) line::$1 ← (byte) line::x#0 >= (byte) line::x1#1 + if((boolean~) line::$1) goto line::@1 + to:line::@4 +line::@1: scope:[line] from line + (byte) plot::x#0 ← (byte) line::x#0 + call plot param-assignment + to:line::@return +line::@4: scope:[line] from line + to:line::@2 +line::@2: scope:[line] from line::@4 line::@8 + (byte) line::x1#2 ← phi( line::@4/(byte) line::x1#1 line::@8/(byte) line::x1#2 ) + (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) + (byte) plot::x#1 ← (byte) line::x#2 + call plot param-assignment + to:line::@8 +line::@8: scope:[line] from line::@2 + (byte) line::x#1 ← ++ (byte) line::x#2 + (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2 + if((boolean~) line::$3) goto line::@2 + to:line::@return +line::@return: scope:[line] from line::@1 line::@8 + return + to:@return +plot: scope:[plot] from line::@1 line::@2 + (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) + (byte) plot::idx#0 ← (byte[]) plots#0 *idx (byte) plot::x#2 + (byte~) plot::$1 ← (byte*) SCREEN#0 *idx (byte) plot::idx#0 + (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 + *((byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 + to:plot::@return +plot::@return: scope:[plot] from plot + return + to:@return +@3: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @3 + +Not aliassing across scopes: line::x#0 line::x0#0 +Not aliassing across scopes: line::x1#1 line::x1#0 +Not aliassing across scopes: plot::x#0 line::x#0 +Not aliassing across scopes: plot::x#1 line::x#2 +Not aliassing across scopes: plot::x#2 plot::x#0 +Self Phi Eliminated (byte) line::x1#2 +Succesful SSA optimization Pass2SelfPhiElimination +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte[]) plots#0 ← ((byte*)) (word/signed word) 4096 + (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 + to:@3 +main: scope:[main] from @3 + (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 + to:main::@1 +main::@1: scope:[main] from main main::@1 + (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) + *((byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word) 0 + (byte) main::i#1 ← ++ (byte) main::i#2 + (boolean~) main::$0 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 40 + if((boolean~) main::$0) goto main::@1 + to:main::@2 +main::@2: scope:[main] from main::@1 main::@5 + (byte) line::x0#0 ← (byte/signed byte/word/signed word) 0 + (byte) line::x1#0 ← (byte/signed byte/word/signed word) 10 + call line param-assignment + to:main::@5 +main::@5: scope:[main] from main::@2 + if(true) goto main::@2 + to:main::@return +main::@return: scope:[main] from main::@5 + return + to:@return +line: scope:[line] from main::@2 + (byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 ) + (byte) line::x#0 ← phi( main::@2/(byte) line::x0#0 ) + (boolean~) line::$1 ← (byte) line::x#0 >= (byte) line::x1#1 + if((boolean~) line::$1) goto line::@1 + to:line::@4 +line::@1: scope:[line] from line + (byte) plot::x#0 ← (byte) line::x#0 + call plot param-assignment + to:line::@return +line::@4: scope:[line] from line + to:line::@2 +line::@2: scope:[line] from line::@4 line::@8 + (byte) line::x1#2 ← phi( line::@4/(byte) line::x1#1 ) + (byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 ) + (byte) plot::x#1 ← (byte) line::x#2 + call plot param-assignment + to:line::@8 +line::@8: scope:[line] from line::@2 + (byte) line::x#1 ← ++ (byte) line::x#2 + (boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2 + if((boolean~) line::$3) goto line::@2 + to:line::@return +line::@return: scope:[line] from line::@1 line::@8 + return + to:@return +plot: scope:[plot] from line::@1 line::@2 + (byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 ) + (byte) plot::idx#0 ← (byte[]) plots#0 *idx (byte) plot::x#2 + (byte~) plot::$1 ← (byte*) SCREEN#0 *idx (byte) plot::idx#0 + (byte~) plot::$2 ← (byte~) plot::$1 + (byte/signed byte/word/signed word) 1 + *((byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 + to:plot::@return +plot::@return: scope:[plot] from plot + return + to:@return +@3: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @3 + +Redundant Phi (byte) line::x#0 (byte) line::x0#0 +Redundant Phi (byte) line::x1#1 (byte) line::x1#0 +Redundant Phi (byte) line::x1#2 (byte) line::x1#1 Succesful SSA optimization Pass2RedundantPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from diff --git a/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.asm b/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.asm new file mode 100644 index 000000000..f8e44613c --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.asm @@ -0,0 +1,10 @@ +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" + .const SCREEN = $400 + jsr main +main: { + lda #1 + sta SCREEN + rts +} diff --git a/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.cfg b/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.cfg new file mode 100644 index 000000000..198f42e48 --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.cfg @@ -0,0 +1,15 @@ +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] ( ) + [2] call main param-assignment [ ] ( ) + to:@end +@end: scope:[] from @1 + [3] phi() [ ] ( ) +main: scope:[main] from @1 + [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2 [ ] ) + to:main::@return +main::@return: scope:[main] from main + [5] return [ ] ( main:2 [ ] ) + to:@return diff --git a/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.log b/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.log new file mode 100644 index 000000000..4e51ed00f --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.log @@ -0,0 +1,426 @@ +const byte* SCREEN = $0400; + +void main() { + *SCREEN = 1; +} +PROGRAM + (byte*) SCREEN ← (word/signed word) 1024 +proc (void()) main() + *((byte*) SCREEN) ← (byte/signed byte/word/signed word) 1 +main::@return: + return +endproc // main() + call main + +SYMBOLS +(byte*) SCREEN +(void()) main() +(label) main::@return + +Promoting word/signed word to byte* in SCREEN ← ((byte*)) 1024 +INITIAL CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN ← ((byte*)) (word/signed word) 1024 + to:@1 +main: scope:[main] from + *((byte*) SCREEN) ← (byte/signed byte/word/signed word) 1 + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main + to:@end +@end: scope:[] from @1 + +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN ← ((byte*)) (word/signed word) 1024 + to:@1 +main: scope:[main] from + *((byte*) SCREEN) ← (byte/signed byte/word/signed word) 1 + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main + to:@end +@end: scope:[] from @1 + +PROCEDURE MODIFY VARIABLE ANALYSIS + +CONTROL FLOW GRAPH WITH ASSIGNMENT CALL +@begin: scope:[] from + (byte*) SCREEN ← ((byte*)) (word/signed word) 1024 + to:@1 +main: scope:[main] from @1 + *((byte*) SCREEN) ← (byte/signed byte/word/signed word) 1 + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@2 +@2: scope:[] from @1 + to:@end +@end: scope:[] from @2 + +Completing Phi functions... +CONTROL FLOW GRAPH SSA +@begin: scope:[] from + (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 + to:@1 +main: scope:[main] from @1 + *((byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@2 +@2: scope:[] from @1 + to:@end +@end: scope:[] from @2 + +CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN +@begin: scope:[] from + (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 + to:@1 +main: scope:[main] from @1 + *((byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@2 +@2: scope:[] from @1 + to:@end +@end: scope:[] from @2 + +INITIAL SSA SYMBOL TABLE +(label) @1 +(label) @2 +(label) @begin +(label) @end +(byte*) SCREEN +(byte*) SCREEN#0 +(void()) main() +(label) main::@return + +Culled Empty Block (label) @2 +Succesful SSA optimization Pass2CullEmptyBlocks +CONTROL FLOW GRAPH +@begin: scope:[] from + (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 + to:@1 +main: scope:[main] from @1 + *((byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @1 + +Constant (const byte*) SCREEN#0 = ((byte*))1024 +Succesful SSA optimization Pass2ConstantIdentification +CONTROL FLOW GRAPH +@begin: scope:[] from + to:@1 +main: scope:[main] from @1 + *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 + to:main::@return +main::@return: scope:[main] from main + return + to:@return +@1: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @1 + +FINAL SYMBOL TABLE +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024 +(void()) main() +(label) main::@return + +Block Sequence Planned @begin @1 @end main main::@return +Block Sequence Planned @begin @1 @end main main::@return +CONTROL FLOW GRAPH - PHI LIFTED +@begin: scope:[] from + to:@1 +@1: scope:[] from @begin + call main param-assignment + to:@end +@end: scope:[] from @1 +main: scope:[main] from @1 + *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 + to:main::@return +main::@return: scope:[main] from main + return + to:@return + +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 +Adding NOP phi() at start of @end +CALL GRAPH +Calls in [] to main:2 + +Propagating live ranges... +CONTROL FLOW GRAPH - LIVE RANGES FOUND +@begin: scope:[] from + [0] phi() [ ] + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] + [2] call main param-assignment [ ] + to:@end +@end: scope:[] from @1 + [3] phi() [ ] +main: scope:[main] from @1 + [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] + to:main::@return +main::@return: scope:[main] from main + [5] return [ ] + to:@return + +Created 0 initial phi equivalence classes +Coalesced down to 0 phi equivalence classes +Block Sequence Planned @begin @1 @end main main::@return +Adding NOP phi() at start of @begin +Adding NOP phi() at start of @1 +Adding NOP phi() at start of @end +Propagating live ranges... +CONTROL FLOW GRAPH - BEFORE EFFECTIVE LIVE RANGES +@begin: scope:[] from + [0] phi() [ ] + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] + [2] call main param-assignment [ ] + to:@end +@end: scope:[] from @1 + [3] phi() [ ] +main: scope:[main] from @1 + [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] + to:main::@return +main::@return: scope:[main] from main + [5] return [ ] + to:@return + +CONTROL FLOW GRAPH - PHI MEM COALESCED +@begin: scope:[] from + [0] phi() [ ] ( ) + to:@1 +@1: scope:[] from @begin + [1] phi() [ ] ( ) + [2] call main param-assignment [ ] ( ) + to:@end +@end: scope:[] from @1 + [3] phi() [ ] ( ) +main: scope:[main] from @1 + [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2 [ ] ) + to:main::@return +main::@return: scope:[main] from main + [5] return [ ] ( main:2 [ ] ) + to:@return + +DOMINATORS +@begin dominated by @begin +@1 dominated by @1 @begin +@end dominated by @1 @begin @end +main dominated by @1 @begin main +main::@return dominated by main::@return @1 @begin main + +NATURAL LOOPS + +Found 0 loops in scope [] +Found 0 loops in scope [main] +NATURAL LOOPS WITH DEPTH + + +VARIABLE REGISTER WEIGHTS +(byte*) SCREEN +(void()) main() + +Initial phi equivalence classes +Complete equivalence classes +INITIAL ASM +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .const SCREEN = $400 +//SEG2 @begin +bbegin: +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +b1_from_bbegin: + jmp b1 +//SEG4 @1 +b1: +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +bend_from_b1: + jmp bend +//SEG7 @end +bend: +//SEG8 main +main: { + //SEG9 [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2 [ ] ) -- _deref_cowo1=coby2 + lda #1 + sta SCREEN + jmp breturn + //SEG10 main::@return + breturn: + //SEG11 [5] return [ ] ( main:2 [ ] ) + rts +} + +REGISTER UPLIFT POTENTIAL REGISTERS +Statement [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2 [ ] ) always clobbers reg byte a + +REGISTER UPLIFT SCOPES +Uplift Scope [main] +Uplift Scope [] + +Uplifting [main] best 27 combination +Uplifting [] best 27 combination +Removing instruction jmp b1 +Removing instruction jmp bend +Removing instruction jmp breturn +Succesful ASM optimization Pass5NextJumpElimination +ASSEMBLER +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .const SCREEN = $400 +//SEG2 @begin +bbegin: +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +b1_from_bbegin: +//SEG4 @1 +b1: +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +bend_from_b1: +//SEG7 @end +bend: +//SEG8 main +main: { + //SEG9 [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2 [ ] ) -- _deref_cowo1=coby2 + lda #1 + sta SCREEN + //SEG10 main::@return + breturn: + //SEG11 [5] return [ ] ( main:2 [ ] ) + rts +} + +Removing instruction bbegin: +Removing instruction b1_from_bbegin: +Removing instruction bend_from_b1: +Succesful ASM optimization Pass5RedundantLabelElimination +ASSEMBLER +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .const SCREEN = $400 +//SEG2 @begin +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +//SEG4 @1 +b1: +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +//SEG7 @end +bend: +//SEG8 main +main: { + //SEG9 [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2 [ ] ) -- _deref_cowo1=coby2 + lda #1 + sta SCREEN + //SEG10 main::@return + breturn: + //SEG11 [5] return [ ] ( main:2 [ ] ) + rts +} + +Removing instruction b1: +Removing instruction bend: +Removing instruction breturn: +Succesful ASM optimization Pass5UnusedLabelElimination +ASSEMBLER +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .const SCREEN = $400 +//SEG2 @begin +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +//SEG4 @1 +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +//SEG7 @end +//SEG8 main +main: { + //SEG9 [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2 [ ] ) -- _deref_cowo1=coby2 + lda #1 + sta SCREEN + //SEG10 main::@return + //SEG11 [5] return [ ] ( main:2 [ ] ) + rts +} + +FINAL SYMBOL TABLE +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024 +(void()) main() +(label) main::@return + + +FINAL CODE +//SEG0 Basic Upstart +.pc = $801 "Basic" +:BasicUpstart(main) +.pc = $80d "Program" +//SEG1 Global Constants & labels + .const SCREEN = $400 +//SEG2 @begin +//SEG3 [1] phi from @begin to @1 [phi:@begin->@1] +//SEG4 @1 +//SEG5 [2] call main param-assignment [ ] ( ) + jsr main +//SEG6 [3] phi from @1 to @end [phi:@1->@end] +//SEG7 @end +//SEG8 main +main: { + //SEG9 [4] *((const byte*) SCREEN#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2 [ ] ) -- _deref_cowo1=coby2 + lda #1 + sta SCREEN + //SEG10 main::@return + //SEG11 [5] return [ ] ( main:2 [ ] ) + rts +} + diff --git a/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.sym b/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.sym new file mode 100644 index 000000000..7eee15ace --- /dev/null +++ b/src/main/java/dk/camelot64/kickc/test/ref/constabsmin.sym @@ -0,0 +1,8 @@ +(label) @1 +(label) @begin +(label) @end +(byte*) SCREEN +(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024 +(void()) main() +(label) main::@return + diff --git a/src/main/java/dk/camelot64/kickc/test/ref/constantmin.log b/src/main/java/dk/camelot64/kickc/test/ref/constantmin.log index aa32f0b50..997b5f56e 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/constantmin.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/constantmin.log @@ -170,18 +170,14 @@ CONTROL FLOW GRAPH SSA main: scope:[main] from @1 (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) (byte) RED#1 ← phi( @1/(byte) RED#2 ) - (byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#3 ) - (byte) STAR#1 ← phi( @1/(byte) STAR#3 ) - *((byte*) SCREEN#1) ← (byte) STAR#1 + *((byte*) SCREEN#0) ← (byte) STAR#0 *((byte*) BGCOL#1) ← (byte) RED#1 (byte) main::i#0 ← (byte/signed byte/word/signed word) 40 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#1 main::@1/(byte*) SCREEN#2 ) - (byte) STAR#2 ← phi( main/(byte) STAR#1 main::@1/(byte) STAR#2 ) - (byte~) main::$0 ← (byte) STAR#2 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) main::i#2) ← (byte~) main::$0 + (byte~) main::$0 ← (byte) STAR#0 + (byte/signed byte/word/signed word) 1 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$1 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 80 if((boolean~) main::$1) goto main::@1 @@ -192,8 +188,6 @@ main::@return: scope:[main] from main::@1 @1: scope:[] from @begin (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) (byte) RED#2 ← phi( @begin/(byte) RED#0 ) - (byte*) SCREEN#3 ← phi( @begin/(byte*) SCREEN#0 ) - (byte) STAR#3 ← phi( @begin/(byte) STAR#0 ) call main param-assignment to:@2 @2: scope:[] from @1 @@ -214,18 +208,14 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN main: scope:[main] from @1 (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) (byte) RED#1 ← phi( @1/(byte) RED#2 ) - (byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#3 ) - (byte) STAR#1 ← phi( @1/(byte) STAR#3 ) - *((byte*) SCREEN#1) ← (byte) STAR#1 + *((byte*) SCREEN#0) ← (byte) STAR#0 *((byte*) BGCOL#1) ← (byte) RED#1 (byte) main::i#0 ← (byte/signed byte/word/signed word) 40 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#1 main::@1/(byte*) SCREEN#2 ) - (byte) STAR#2 ← phi( main/(byte) STAR#1 main::@1/(byte) STAR#2 ) - (byte~) main::$0 ← (byte) STAR#2 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) main::i#2) ← (byte~) main::$0 + (byte~) main::$0 ← (byte) STAR#0 + (byte/signed byte/word/signed word) 1 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$1 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 80 if((boolean~) main::$1) goto main::@1 @@ -236,8 +226,6 @@ main::@return: scope:[main] from main::@1 @1: scope:[] from @begin (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) (byte) RED#2 ← phi( @begin/(byte) RED#0 ) - (byte*) SCREEN#3 ← phi( @begin/(byte*) SCREEN#0 ) - (byte) STAR#3 ← phi( @begin/(byte) STAR#0 ) call main param-assignment to:@2 @2: scope:[] from @1 @@ -262,14 +250,8 @@ INITIAL SSA SYMBOL TABLE (byte) RED#2 (byte*) SCREEN (byte*) SCREEN#0 -(byte*) SCREEN#1 -(byte*) SCREEN#2 -(byte*) SCREEN#3 (byte) STAR (byte) STAR#0 -(byte) STAR#1 -(byte) STAR#2 -(byte) STAR#3 (byte*) VIC (byte*) VIC#0 (void()) main() @@ -298,18 +280,14 @@ CONTROL FLOW GRAPH main: scope:[main] from @1 (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) (byte) RED#1 ← phi( @1/(byte) RED#2 ) - (byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#3 ) - (byte) STAR#1 ← phi( @1/(byte) STAR#3 ) - *((byte*) SCREEN#1) ← (byte) STAR#1 + *((byte*) SCREEN#0) ← (byte) STAR#0 *((byte*) BGCOL#1) ← (byte) RED#1 (byte) main::i#0 ← (byte/signed byte/word/signed word) 40 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#1 main::@1/(byte*) SCREEN#2 ) - (byte) STAR#2 ← phi( main/(byte) STAR#1 main::@1/(byte) STAR#2 ) - (byte~) main::$0 ← (byte) STAR#2 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) main::i#2) ← (byte~) main::$0 + (byte~) main::$0 ← (byte) STAR#0 + (byte/signed byte/word/signed word) 1 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$1 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 80 if((boolean~) main::$1) goto main::@1 @@ -320,19 +298,13 @@ main::@return: scope:[main] from main::@1 @1: scope:[] from @begin (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) (byte) RED#2 ← phi( @begin/(byte) RED#0 ) - (byte*) SCREEN#3 ← phi( @begin/(byte*) SCREEN#0 ) - (byte) STAR#3 ← phi( @begin/(byte) STAR#0 ) call main param-assignment to:@end @end: scope:[] from @1 -Not aliassing across scopes: STAR#1 STAR#3 -Not aliassing across scopes: SCREEN#1 SCREEN#3 Not aliassing across scopes: RED#1 RED#2 Not aliassing across scopes: BGCOL#1 BGCOL#2 Alias (byte*) BGCOL#0 = (byte*~) $2 (byte*) BGCOL#2 -Alias (byte) STAR#0 = (byte) STAR#3 -Alias (byte*) SCREEN#0 = (byte*) SCREEN#3 Alias (byte) RED#0 = (byte) RED#2 Succesful SSA optimization Pass2AliasElimination CONTROL FLOW GRAPH @@ -348,18 +320,14 @@ CONTROL FLOW GRAPH main: scope:[main] from @1 (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#0 ) (byte) RED#1 ← phi( @1/(byte) RED#0 ) - (byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#0 ) - (byte) STAR#1 ← phi( @1/(byte) STAR#0 ) - *((byte*) SCREEN#1) ← (byte) STAR#1 + *((byte*) SCREEN#0) ← (byte) STAR#0 *((byte*) BGCOL#1) ← (byte) RED#1 (byte) main::i#0 ← (byte/signed byte/word/signed word) 40 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#1 main::@1/(byte*) SCREEN#2 ) - (byte) STAR#2 ← phi( main/(byte) STAR#1 main::@1/(byte) STAR#2 ) - (byte~) main::$0 ← (byte) STAR#2 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) main::i#2) ← (byte~) main::$0 + (byte~) main::$0 ← (byte) STAR#0 + (byte/signed byte/word/signed word) 1 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$0 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$1 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 80 if((boolean~) main::$1) goto main::@1 @@ -372,56 +340,10 @@ main::@return: scope:[main] from main::@1 to:@end @end: scope:[] from @1 -Not aliassing across scopes: STAR#1 STAR#0 -Not aliassing across scopes: SCREEN#1 SCREEN#0 Not aliassing across scopes: RED#1 RED#0 Not aliassing across scopes: BGCOL#1 BGCOL#0 -Self Phi Eliminated (byte) STAR#2 -Self Phi Eliminated (byte*) SCREEN#2 -Succesful SSA optimization Pass2SelfPhiElimination -CONTROL FLOW GRAPH -@begin: scope:[] from - (byte*) SCREEN#0 ← ((byte*)) (word/signed word) 1024 - (byte) STAR#0 ← (byte/signed byte/word/signed word) 81 - (byte*) VIC#0 ← ((byte*)) (word) 53248 - (byte/signed byte/word/signed word~) $0 ← (byte/signed byte/word/signed word) 16 * (byte/signed byte/word/signed word) 2 - (byte*~) $1 ← (byte*) VIC#0 + (byte/signed byte/word/signed word~) $0 - (byte*) BGCOL#0 ← (byte*~) $1 + (byte/signed byte/word/signed word) 1 - (byte) RED#0 ← (byte/signed byte/word/signed word) 2 - to:@1 -main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#0 ) - (byte) RED#1 ← phi( @1/(byte) RED#0 ) - (byte*) SCREEN#1 ← phi( @1/(byte*) SCREEN#0 ) - (byte) STAR#1 ← phi( @1/(byte) STAR#0 ) - *((byte*) SCREEN#1) ← (byte) STAR#1 - *((byte*) BGCOL#1) ← (byte) RED#1 - (byte) main::i#0 ← (byte/signed byte/word/signed word) 40 - to:main::@1 -main::@1: scope:[main] from main main::@1 - (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#1 ) - (byte) STAR#2 ← phi( main/(byte) STAR#1 ) - (byte~) main::$0 ← (byte) STAR#2 + (byte/signed byte/word/signed word) 1 - *((byte*) SCREEN#2 + (byte) main::i#2) ← (byte~) main::$0 - (byte) main::i#1 ← ++ (byte) main::i#2 - (boolean~) main::$1 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 80 - if((boolean~) main::$1) goto main::@1 - to:main::@return -main::@return: scope:[main] from main::@1 - return - to:@return -@1: scope:[] from @begin - call main param-assignment - to:@end -@end: scope:[] from @1 - -Redundant Phi (byte) STAR#1 (byte) STAR#0 -Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0 Redundant Phi (byte) RED#1 (byte) RED#0 Redundant Phi (byte*) BGCOL#1 (byte*) BGCOL#0 -Redundant Phi (byte) STAR#2 (byte) STAR#1 -Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#1 Succesful SSA optimization Pass2RedundantPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from diff --git a/src/main/java/dk/camelot64/kickc/test/ref/double-import.log b/src/main/java/dk/camelot64/kickc/test/ref/double-import.log index 7c2dd50b2..c292bb24b 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/double-import.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/double-import.log @@ -78,7 +78,6 @@ main::@return: scope:[main] from main to:@end @end: scope:[] from @2 -Completing Phi functions... Completing Phi functions... CONTROL FLOW GRAPH SSA @begin: scope:[] from @@ -86,16 +85,12 @@ CONTROL FLOW GRAPH SSA (byte) RED#0 ← (byte/signed byte/word/signed word) 2 to:@1 main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) - (byte) RED#1 ← phi( @1/(byte) RED#2 ) - *((byte*) BGCOL#1) ← (byte) RED#1 + *((byte*) BGCOL#0) ← (byte) RED#0 to:main::@return main::@return: scope:[main] from main return to:@return @1: scope:[] from @begin - (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) - (byte) RED#2 ← phi( @begin/(byte) RED#0 ) call main param-assignment to:@2 @2: scope:[] from @1 @@ -108,16 +103,12 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN (byte) RED#0 ← (byte/signed byte/word/signed word) 2 to:@1 main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) - (byte) RED#1 ← phi( @1/(byte) RED#2 ) - *((byte*) BGCOL#1) ← (byte) RED#1 + *((byte*) BGCOL#0) ← (byte) RED#0 to:main::@return main::@return: scope:[main] from main return to:@return @1: scope:[] from @begin - (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) - (byte) RED#2 ← phi( @begin/(byte) RED#0 ) call main param-assignment to:@2 @2: scope:[] from @1 @@ -131,66 +122,14 @@ INITIAL SSA SYMBOL TABLE (label) @end (byte*) BGCOL (byte*) BGCOL#0 -(byte*) BGCOL#1 -(byte*) BGCOL#2 (byte) RED (byte) RED#0 -(byte) RED#1 -(byte) RED#2 (void()) main() (label) main::@return Culled Empty Block (label) @2 Succesful SSA optimization Pass2CullEmptyBlocks CONTROL FLOW GRAPH -@begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word) 53281 - (byte) RED#0 ← (byte/signed byte/word/signed word) 2 - to:@1 -main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) - (byte) RED#1 ← phi( @1/(byte) RED#2 ) - *((byte*) BGCOL#1) ← (byte) RED#1 - to:main::@return -main::@return: scope:[main] from main - return - to:@return -@1: scope:[] from @begin - (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) - (byte) RED#2 ← phi( @begin/(byte) RED#0 ) - call main param-assignment - to:@end -@end: scope:[] from @1 - -Not aliassing across scopes: RED#1 RED#2 -Not aliassing across scopes: BGCOL#1 BGCOL#2 -Alias (byte) RED#0 = (byte) RED#2 -Alias (byte*) BGCOL#0 = (byte*) BGCOL#2 -Succesful SSA optimization Pass2AliasElimination -CONTROL FLOW GRAPH -@begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word) 53281 - (byte) RED#0 ← (byte/signed byte/word/signed word) 2 - to:@1 -main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#0 ) - (byte) RED#1 ← phi( @1/(byte) RED#0 ) - *((byte*) BGCOL#1) ← (byte) RED#1 - to:main::@return -main::@return: scope:[main] from main - return - to:@return -@1: scope:[] from @begin - call main param-assignment - to:@end -@end: scope:[] from @1 - -Not aliassing across scopes: RED#1 RED#0 -Not aliassing across scopes: BGCOL#1 BGCOL#0 -Redundant Phi (byte) RED#1 (byte) RED#0 -Redundant Phi (byte*) BGCOL#1 (byte*) BGCOL#0 -Succesful SSA optimization Pass2RedundantPhiElimination -CONTROL FLOW GRAPH @begin: scope:[] from (byte*) BGCOL#0 ← ((byte*)) (word) 53281 (byte) RED#0 ← (byte/signed byte/word/signed word) 2 diff --git a/src/main/java/dk/camelot64/kickc/test/ref/importing.log b/src/main/java/dk/camelot64/kickc/test/ref/importing.log index 9782c5076..433193a74 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/importing.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/importing.log @@ -88,7 +88,6 @@ main::@return: scope:[main] from main to:@end @end: scope:[] from @2 -Completing Phi functions... Completing Phi functions... CONTROL FLOW GRAPH SSA @begin: scope:[] from @@ -96,18 +95,14 @@ CONTROL FLOW GRAPH SSA (byte) RED#0 ← (byte/signed byte/word/signed word) 2 to:@1 main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) - (byte) RED#1 ← phi( @1/(byte) RED#2 ) (byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024 *((byte*) main::screen#0) ← (byte/signed byte/word/signed word) 1 - *((byte*) BGCOL#1) ← (byte) RED#1 + *((byte*) BGCOL#0) ← (byte) RED#0 to:main::@return main::@return: scope:[main] from main return to:@return @1: scope:[] from @begin - (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) - (byte) RED#2 ← phi( @begin/(byte) RED#0 ) call main param-assignment to:@2 @2: scope:[] from @1 @@ -120,18 +115,14 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN (byte) RED#0 ← (byte/signed byte/word/signed word) 2 to:@1 main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) - (byte) RED#1 ← phi( @1/(byte) RED#2 ) (byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024 *((byte*) main::screen#0) ← (byte/signed byte/word/signed word) 1 - *((byte*) BGCOL#1) ← (byte) RED#1 + *((byte*) BGCOL#0) ← (byte) RED#0 to:main::@return main::@return: scope:[main] from main return to:@return @1: scope:[] from @begin - (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) - (byte) RED#2 ← phi( @begin/(byte) RED#0 ) call main param-assignment to:@2 @2: scope:[] from @1 @@ -145,12 +136,8 @@ INITIAL SSA SYMBOL TABLE (label) @end (byte*) BGCOL (byte*) BGCOL#0 -(byte*) BGCOL#1 -(byte*) BGCOL#2 (byte) RED (byte) RED#0 -(byte) RED#1 -(byte) RED#2 (void()) main() (label) main::@return (byte*) main::screen @@ -159,58 +146,6 @@ INITIAL SSA SYMBOL TABLE Culled Empty Block (label) @2 Succesful SSA optimization Pass2CullEmptyBlocks CONTROL FLOW GRAPH -@begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word) 53281 - (byte) RED#0 ← (byte/signed byte/word/signed word) 2 - to:@1 -main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#2 ) - (byte) RED#1 ← phi( @1/(byte) RED#2 ) - (byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024 - *((byte*) main::screen#0) ← (byte/signed byte/word/signed word) 1 - *((byte*) BGCOL#1) ← (byte) RED#1 - to:main::@return -main::@return: scope:[main] from main - return - to:@return -@1: scope:[] from @begin - (byte*) BGCOL#2 ← phi( @begin/(byte*) BGCOL#0 ) - (byte) RED#2 ← phi( @begin/(byte) RED#0 ) - call main param-assignment - to:@end -@end: scope:[] from @1 - -Not aliassing across scopes: RED#1 RED#2 -Not aliassing across scopes: BGCOL#1 BGCOL#2 -Alias (byte) RED#0 = (byte) RED#2 -Alias (byte*) BGCOL#0 = (byte*) BGCOL#2 -Succesful SSA optimization Pass2AliasElimination -CONTROL FLOW GRAPH -@begin: scope:[] from - (byte*) BGCOL#0 ← ((byte*)) (word) 53281 - (byte) RED#0 ← (byte/signed byte/word/signed word) 2 - to:@1 -main: scope:[main] from @1 - (byte*) BGCOL#1 ← phi( @1/(byte*) BGCOL#0 ) - (byte) RED#1 ← phi( @1/(byte) RED#0 ) - (byte*) main::screen#0 ← ((byte*)) (word/signed word) 1024 - *((byte*) main::screen#0) ← (byte/signed byte/word/signed word) 1 - *((byte*) BGCOL#1) ← (byte) RED#1 - to:main::@return -main::@return: scope:[main] from main - return - to:@return -@1: scope:[] from @begin - call main param-assignment - to:@end -@end: scope:[] from @1 - -Not aliassing across scopes: RED#1 RED#0 -Not aliassing across scopes: BGCOL#1 BGCOL#0 -Redundant Phi (byte) RED#1 (byte) RED#0 -Redundant Phi (byte*) BGCOL#1 (byte*) BGCOL#0 -Succesful SSA optimization Pass2RedundantPhiElimination -CONTROL FLOW GRAPH @begin: scope:[] from (byte*) BGCOL#0 ← ((byte*)) (word) 53281 (byte) RED#0 ← (byte/signed byte/word/signed word) 2 diff --git a/src/main/java/dk/camelot64/kickc/test/ref/unused-vars.log b/src/main/java/dk/camelot64/kickc/test/ref/unused-vars.log index bfa49992c..e016ead3f 100644 --- a/src/main/java/dk/camelot64/kickc/test/ref/unused-vars.log +++ b/src/main/java/dk/camelot64/kickc/test/ref/unused-vars.log @@ -284,8 +284,6 @@ s::@return: scope:[s] from s to:@end @end: scope:[] from @3 -Completing Phi functions... -Completing Phi functions... Completing Phi functions... Completing Phi functions... CONTROL FLOW GRAPH SSA @@ -295,14 +293,12 @@ CONTROL FLOW GRAPH SSA (byte) b#0 ← (byte~) $0 to:@2 main: scope:[main] from @2 - (byte*) SCREEN#3 ← phi( @2/(byte*) SCREEN#4 ) (byte) b#13 ← phi( @2/(byte) b#14 ) (byte) main::col#0 ← (byte/signed byte/word/signed word) 2 (byte*) main::COLS#0 ← ((byte*)) (word) 55296 (byte) s::return#0 ← call s param-assignment to:main::@3 main::@3: scope:[main] from main - (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#3 ) (byte*) main::COLS#2 ← phi( main/(byte*) main::COLS#0 ) (byte) main::col#2 ← phi( main/(byte) main::col#0 ) (byte) b#7 ← phi( main/(byte) b#13 ) @@ -311,13 +307,12 @@ main::@3: scope:[main] from main (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 to:main::@1 main::@1: scope:[main] from main::@1 main::@3 - (byte*) SCREEN#1 ← phi( main::@1/(byte*) SCREEN#1 main::@3/(byte*) SCREEN#2 ) (byte) b#8 ← phi( main::@1/(byte) b#8 main::@3/(byte) b#2 ) (byte) main::i#2 ← phi( main::@1/(byte) main::i#1 main::@3/(byte) main::i#0 ) (byte*) main::COLS#1 ← phi( main::@1/(byte*) main::COLS#1 main::@3/(byte*) main::COLS#2 ) (byte) main::col#1 ← phi( main::@1/(byte) main::col#1 main::@3/(byte) main::col#2 ) *((byte*) main::COLS#1 + (byte) main::i#2) ← (byte) main::col#1 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) b#8 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte) b#8 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$8 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 101 if((boolean~) main::$8) goto main::@1 @@ -340,7 +335,6 @@ s::@return: scope:[s] from s return (byte) s::return#2 to:@return @2: scope:[] from @begin - (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 ) (byte) b#14 ← phi( @begin/(byte) b#0 ) call main param-assignment to:@3 @@ -357,7 +351,6 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN (byte) b#0 ← (byte~) $0 to:@2 main: scope:[main] from @2 - (byte*) SCREEN#3 ← phi( @2/(byte*) SCREEN#4 ) (byte) b#13 ← phi( @2/(byte) b#14 ) (byte) main::col#0 ← (byte/signed byte/word/signed word) 2 (byte*) main::COLS#0 ← ((byte*)) (word) 55296 @@ -365,7 +358,6 @@ main: scope:[main] from @2 (byte) s::return#0 ← (byte) s::return#2 to:main::@3 main::@3: scope:[main] from main - (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#3 ) (byte*) main::COLS#2 ← phi( main/(byte*) main::COLS#0 ) (byte) main::col#2 ← phi( main/(byte) main::col#0 ) (byte) b#7 ← phi( main/(byte) b#5 ) @@ -374,13 +366,12 @@ main::@3: scope:[main] from main (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 to:main::@1 main::@1: scope:[main] from main::@1 main::@3 - (byte*) SCREEN#1 ← phi( main::@1/(byte*) SCREEN#1 main::@3/(byte*) SCREEN#2 ) (byte) b#8 ← phi( main::@1/(byte) b#8 main::@3/(byte) b#2 ) (byte) main::i#2 ← phi( main::@1/(byte) main::i#1 main::@3/(byte) main::i#0 ) (byte*) main::COLS#1 ← phi( main::@1/(byte*) main::COLS#1 main::@3/(byte*) main::COLS#2 ) (byte) main::col#1 ← phi( main::@1/(byte) main::col#1 main::@3/(byte) main::col#2 ) *((byte*) main::COLS#1 + (byte) main::i#2) ← (byte) main::col#1 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) b#8 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte) b#8 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$8 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 101 if((boolean~) main::$8) goto main::@1 @@ -403,7 +394,6 @@ s::@return: scope:[s] from s return to:@return @2: scope:[] from @begin - (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 ) (byte) b#14 ← phi( @begin/(byte) b#0 ) call main param-assignment to:@3 @@ -421,10 +411,6 @@ INITIAL SSA SYMBOL TABLE (label) @end (byte*) SCREEN (byte*) SCREEN#0 -(byte*) SCREEN#1 -(byte*) SCREEN#2 -(byte*) SCREEN#3 -(byte*) SCREEN#4 (byte) b (byte) b#0 (byte) b#1 @@ -467,24 +453,20 @@ INITIAL SSA SYMBOL TABLE (byte) s::return#3 Not aliassing across scopes: b#13 b#14 -Not aliassing across scopes: SCREEN#3 SCREEN#4 Not aliassing across scopes: s::return#0 s::return#2 Not aliassing across scopes: b#7 b#5 Not aliassing identity: main::col#1 main::col#1 Not aliassing identity: main::COLS#1 main::COLS#1 Not aliassing identity: b#8 b#8 -Not aliassing identity: SCREEN#1 SCREEN#1 Not aliassing across scopes: b#10 b#13 Not aliassing across scopes: b#12 b#3 Alias (byte) b#0 = (byte~) $0 (byte) b#14 Alias (byte) main::col#0 = (byte) main::col#2 Alias (byte*) main::COLS#0 = (byte*) main::COLS#2 -Alias (byte*) SCREEN#2 = (byte*) SCREEN#3 Alias (byte) b#1 = (byte) b#7 Alias (byte) b#3 = (byte) b#9 (byte) b#8 Alias (byte) s::return#1 = (byte) s::return#3 (byte) s::return#2 Alias (byte) b#11 = (byte) b#4 (byte) b#5 -Alias (byte*) SCREEN#0 = (byte*) SCREEN#4 Alias (byte) b#12 = (byte) b#6 Succesful SSA optimization Pass2AliasElimination CONTROL FLOW GRAPH @@ -493,7 +475,6 @@ CONTROL FLOW GRAPH (byte) b#0 ← (byte/signed byte/word/signed word) 2 >> (byte/signed byte/word/signed word) 1 to:@2 main: scope:[main] from @2 - (byte*) SCREEN#2 ← phi( @2/(byte*) SCREEN#0 ) (byte) b#13 ← phi( @2/(byte) b#0 ) (byte) main::col#0 ← (byte/signed byte/word/signed word) 2 (byte*) main::COLS#0 ← ((byte*)) (word) 55296 @@ -506,13 +487,12 @@ main::@3: scope:[main] from main (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 to:main::@1 main::@1: scope:[main] from main::@1 main::@3 - (byte*) SCREEN#1 ← phi( main::@1/(byte*) SCREEN#1 main::@3/(byte*) SCREEN#2 ) (byte) b#3 ← phi( main::@1/(byte) b#3 main::@3/(byte) b#2 ) (byte) main::i#2 ← phi( main::@1/(byte) main::i#1 main::@3/(byte) main::i#0 ) (byte*) main::COLS#1 ← phi( main::@1/(byte*) main::COLS#1 main::@3/(byte*) main::COLS#0 ) (byte) main::col#1 ← phi( main::@1/(byte) main::col#1 main::@3/(byte) main::col#0 ) *((byte*) main::COLS#1 + (byte) main::i#2) ← (byte) main::col#1 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) b#3 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte) b#3 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$8 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 101 if((boolean~) main::$8) goto main::@1 @@ -537,19 +517,16 @@ s::@return: scope:[s] from s @end: scope:[] from @3 Not aliassing across scopes: b#13 b#0 -Not aliassing across scopes: SCREEN#2 SCREEN#0 Not aliassing across scopes: s::return#0 s::return#1 Not aliassing across scopes: b#1 b#11 Not aliassing identity: main::col#1 main::col#1 Not aliassing identity: main::COLS#1 main::COLS#1 Not aliassing identity: b#3 b#3 -Not aliassing identity: SCREEN#1 SCREEN#1 Not aliassing across scopes: b#10 b#13 Not aliassing across scopes: b#12 b#3 Self Phi Eliminated (byte) main::col#1 Self Phi Eliminated (byte*) main::COLS#1 Self Phi Eliminated (byte) b#3 -Self Phi Eliminated (byte*) SCREEN#1 Succesful SSA optimization Pass2SelfPhiElimination CONTROL FLOW GRAPH @begin: scope:[] from @@ -557,7 +534,6 @@ CONTROL FLOW GRAPH (byte) b#0 ← (byte/signed byte/word/signed word) 2 >> (byte/signed byte/word/signed word) 1 to:@2 main: scope:[main] from @2 - (byte*) SCREEN#2 ← phi( @2/(byte*) SCREEN#0 ) (byte) b#13 ← phi( @2/(byte) b#0 ) (byte) main::col#0 ← (byte/signed byte/word/signed word) 2 (byte*) main::COLS#0 ← ((byte*)) (word) 55296 @@ -570,13 +546,12 @@ main::@3: scope:[main] from main (byte) main::i#0 ← (byte/signed byte/word/signed word) 0 to:main::@1 main::@1: scope:[main] from main::@1 main::@3 - (byte*) SCREEN#1 ← phi( main::@3/(byte*) SCREEN#2 ) (byte) b#3 ← phi( main::@3/(byte) b#2 ) (byte) main::i#2 ← phi( main::@1/(byte) main::i#1 main::@3/(byte) main::i#0 ) (byte*) main::COLS#1 ← phi( main::@3/(byte*) main::COLS#0 ) (byte) main::col#1 ← phi( main::@3/(byte) main::col#0 ) *((byte*) main::COLS#1 + (byte) main::i#2) ← (byte) main::col#1 - *((byte*) SCREEN#1 + (byte) main::i#2) ← (byte) b#3 + *((byte*) SCREEN#0 + (byte) main::i#2) ← (byte) b#3 (byte) main::i#1 ← ++ (byte) main::i#2 (boolean~) main::$8 ← (byte) main::i#1 != (byte/signed byte/word/signed word) 101 if((boolean~) main::$8) goto main::@1 @@ -601,12 +576,10 @@ s::@return: scope:[s] from s @end: scope:[] from @3 Redundant Phi (byte) b#13 (byte) b#0 -Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#0 Redundant Phi (byte) b#1 (byte) b#11 Redundant Phi (byte) main::col#1 (byte) main::col#0 Redundant Phi (byte*) main::COLS#1 (byte*) main::COLS#0 Redundant Phi (byte) b#3 (byte) b#2 -Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#2 Redundant Phi (byte) b#10 (byte) b#13 Redundant Phi (byte) b#12 (byte) b#3 Succesful SSA optimization Pass2RedundantPhiElimination