1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-06-26 19:30:00 +00:00

Working on fixing #359 problem with load/store variables and simple-conditionals.

This commit is contained in:
jespergravgaard 2020-02-22 20:45:35 +01:00
parent d33c84488a
commit dc6175a0b6
333 changed files with 10204 additions and 9852 deletions

View File

@ -293,14 +293,15 @@ public class Compiler {
optimizations.add(new PassNTypeIdSimplification(program));
optimizations.add(new PassNSizeOfSimplification(program));
optimizations.add(new PassNStatementIndices(program));
optimizations.add(() -> {
program.clearVariableReferenceInfos();
return false;
});
optimizations.add(() -> { program.clearVariableReferenceInfos(); return false; });
optimizations.add(new Pass2UnaryNotSimplification(program));
optimizations.add(new Pass2AliasElimination(program));
optimizations.add(new Pass2IdenticalPhiElimination(program));
optimizations.add(new Pass2DuplicateRValueIdentification(program));
optimizations.add(() -> { program.clearStatementIndices(); return false; });
optimizations.add(() -> { program.clearVariableReferenceInfos(); return false; });
optimizations.add(() -> { program.clearStatementInfos(); return false; });
optimizations.add(new PassNStatementIndices(program));
optimizations.add(new Pass2ConditionalJumpSimplification(program));
optimizations.add(new Pass2ConditionalAndOrRewriting(program));
optimizations.add(new PassNAddBooleanCasts(program));

View File

@ -1,14 +1,13 @@
package dk.camelot64.kickc.model;
import dk.camelot64.kickc.model.statements.Statement;
import dk.camelot64.kickc.model.statements.StatementLValue;
import dk.camelot64.kickc.model.statements.StatementInfos;
import dk.camelot64.kickc.model.statements.StatementPhiBlock;
import dk.camelot64.kickc.model.statements.StatementSource;
import dk.camelot64.kickc.model.symbols.Label;
import dk.camelot64.kickc.model.symbols.Procedure;
import dk.camelot64.kickc.model.symbols.ProgramScope;
import dk.camelot64.kickc.model.symbols.Variable;
import dk.camelot64.kickc.model.values.*;
import dk.camelot64.kickc.model.values.LabelRef;
import dk.camelot64.kickc.model.values.ScopeRef;
import dk.camelot64.kickc.model.values.SymbolRef;
import dk.camelot64.kickc.passes.Pass2ConstantIdentification;
import java.io.Serializable;
@ -238,4 +237,51 @@ public class ControlFlowGraph implements Serializable {
return sizeInfo.toString();
}
/**
* Get all statements executed between two statements (none of these are included in the result)
* @param from The statement to start at
* @param to The statement to end at
* @return All statements executed between the two passed statements
*/
public Collection<Statement> getStatementsBetween(Statement from, Statement to, StatementInfos statementInfos) {
Collection<Statement> between = new LinkedHashSet<>();
final ControlFlowBlock block = statementInfos.getBlock(from);
populateStatementsBetween(from, to, false, between, block);
return between;
}
/**
* Fill the between collection with all statements executed between two statements (none of these are included in the result)
* @param from The statement to start at
* @param to The statement to end at
* @param between The between collection
* @param block The block to start from
*/
private void populateStatementsBetween(Statement from, Statement to, boolean isBetween, Collection<Statement> between, ControlFlowBlock block) {
for(Statement statement : block.getStatements()) {
if(between.contains(statement))
// Stop infinite recursion
return;
if(isBetween) {
if(statement.equals(to))
// The end was reached!
isBetween = false;
else
// We are between - add the statement
between.add(statement);
} else {
if(statement.equals(from))
// We are now between!
isBetween = true;
}
}
if(isBetween) {
// Recurse to successor blocks
final Collection<LabelRef> successors = block.getSuccessors();
for(LabelRef successor : successors) {
final ControlFlowBlock successorBlock = getBlock(successor);
populateStatementsBetween(from, to, true, between, successorBlock);
}
}
}
}

View File

@ -2,14 +2,17 @@ package dk.camelot64.kickc.passes;
import dk.camelot64.kickc.model.ControlFlowBlock;
import dk.camelot64.kickc.model.Program;
import dk.camelot64.kickc.model.VariableReferenceInfos;
import dk.camelot64.kickc.model.statements.Statement;
import dk.camelot64.kickc.model.statements.StatementAssignment;
import dk.camelot64.kickc.model.statements.StatementConditionalJump;
import dk.camelot64.kickc.model.statements.StatementInfos;
import dk.camelot64.kickc.model.values.LValue;
import dk.camelot64.kickc.model.values.RValue;
import dk.camelot64.kickc.model.values.VariableRef;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@ -36,6 +39,7 @@ public class Pass2ConditionalJumpSimplification extends Pass2SsaOptimization {
final List<VariableRef> simpleConditionVars = new ArrayList<>();
for(ControlFlowBlock block : getGraph().getAllBlocks()) {
for(Statement statement : block.getStatements()) {
if(statement instanceof StatementConditionalJump) {
@ -56,12 +60,34 @@ public class Pass2ConditionalJumpSimplification extends Pass2SsaOptimization {
case "=<":
case ">=":
case "=>":
conditionalJump.setrValue1(conditionAssignment.getrValue1());
conditionalJump.setOperator(conditionAssignment.getOperator());
conditionalJump.setrValue2(conditionAssignment.getrValue2());
simpleConditionVars.add(conditionVar);
getLog().append("Simple Condition " + conditionVar.toString(getProgram()) + " " + conditionalJump.toString(getProgram(), false));
break;
final Collection<VariableRef> referencedLoadStoreVariables = getReferencedLoadStoreVariables(conditionAssignment.getrValue1());
referencedLoadStoreVariables.addAll(getReferencedLoadStoreVariables(conditionAssignment.getrValue2()));
boolean isSimple = true;
if(referencedLoadStoreVariables.size() > 0) {
// Found referenced load/store variables
// Examine all statements between the conditionAssignment and conditionalJump for modifications
final StatementInfos statementInfos = getProgram().getStatementInfos();
final VariableReferenceInfos variableReferenceInfos = getProgram().getVariableReferenceInfos();
Collection<Statement> statementsBetween = getGraph().getStatementsBetween(conditionAssignment, conditionalJump, statementInfos);
for(Statement statementBetween : statementsBetween) {
for(VariableRef referencedLoadStoreVariable : referencedLoadStoreVariables) {
if(variableReferenceInfos.getDefinedVars(statementBetween).contains(referencedLoadStoreVariable)) {
// A referenced load/store-variable is modified in a statement between the assignment and the condition!
isSimple = false;
getLog().append("Condition not simple " + conditionVar.toString(getProgram()) + " " + conditionalJump.toString(getProgram(), false));
}
}
}
}
if(isSimple) {
conditionalJump.setrValue1(conditionAssignment.getrValue1());
conditionalJump.setOperator(conditionAssignment.getOperator());
conditionalJump.setrValue2(conditionAssignment.getrValue2());
simpleConditionVars.add(conditionVar);
getLog().append("Simple Condition " + conditionVar.toString(getProgram()) + " " + conditionalJump.toString(getProgram(), false));
break;
}
default:
}
}
@ -73,4 +99,19 @@ public class Pass2ConditionalJumpSimplification extends Pass2SsaOptimization {
return simpleConditionVars;
}
/**
* Get all referenced load/store variables in an RValue
* @param rValue The RValue
* @return All referenced load/store variables
*/
private Collection<VariableRef> getReferencedLoadStoreVariables(RValue rValue) {
List<VariableRef> referencedLoadStoreVariables = new ArrayList<>();
final Collection<VariableRef> vars1 = VariableReferenceInfos.getReferencedVars(rValue);
for(VariableRef variableRef : vars1) {
if(getScope().getVariable(variableRef).isKindLoadStore())
referencedLoadStoreVariables.add(variableRef);
}
return referencedLoadStoreVariables;
}
}

View File

@ -43,6 +43,11 @@ public class TestPrograms {
compileAndCompare("ma_coalesce_problem");
}
@Test
public void testVarModelMaMem5() throws IOException, URISyntaxException {
compileAndCompare("varmodel-ma_mem-5");
}
@Test
public void testVarModelMaMem4() throws IOException, URISyntaxException {
compileAndCompare("varmodel-ma_mem-4");

View File

@ -0,0 +1,13 @@
// Test memory model
// Demonstrates problem where post-increase on __ma memory variables is performed to early
#pragma var_model(ma_mem, pointer_ssa_zp)
const char* SCREEN = 0x0400;
void main() {
char i=0;
do {
SCREEN[i] = '*';
} while(i++<4);
}

View File

@ -56,10 +56,10 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to byte in (unumber~) main::$0 ← *((const byte*) main::bp) + (byte) 1
Alias (byte) main::c#0 = (byte~) main::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$1 [6] if((byte) main::b!=rangelast(0,$a)) goto main::@1
Simple Condition (bool~) main::$1 [5] if((byte) main::b!=rangelast(0,$a)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Resolved ranged next value [4] main::b ← ++ main::b to ++
Resolved ranged comparison value [6] if(main::b!=rangelast(0,$a)) goto main::@1 to (number) $b
Resolved ranged next value [3] main::b ← ++ main::b to ++
Resolved ranged comparison value [5] if(main::b!=rangelast(0,$a)) goto main::@1 to (number) $b
Adding number conversion cast (unumber) $b in if((byte) main::b!=(number) $b) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast $b

View File

@ -149,17 +149,17 @@ Identical Phi Values (byte) idx#14 (byte) idx#10
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (byte) idx#16 (byte) idx#13
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$4 [19] if((byte) main::i#1!=rangelast(2,3)) goto main::@1
Simple Condition (bool~) main::$4 [15] if((byte) main::i#1!=rangelast(2,3)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting array member address-of to pointer addition [12] (signed word*) print::p#2 ← (const signed word*) VALS + (byte~) main::$5
Rewriting array member address-of to pointer addition [10] (signed word*) print::p#2 ← (const signed word*) VALS + (byte~) main::$5
Successful SSA optimization PassNArrayElementAddressOfRewriting
Constant (const signed word*) print::p#0 = VALS
Constant (const signed word*) print::p#1 = VALS+1*SIZEOF_SIGNED_WORD
Constant (const byte) main::i#0 = 2
Constant (const byte) idx#17 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [17] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [19] if(main::i#1!=rangelast(2,3)) goto main::@1 to (number) 4
Resolved ranged next value [13] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [15] if(main::i#1!=rangelast(2,3)) goto main::@1 to (number) 4
Adding number conversion cast (unumber) 4 in if((byte) main::i#1!=(number) 4) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 4

View File

@ -121,12 +121,12 @@ Alias (word) getValue::return#1 = (word~) getValue::$3 (word) getValue::return#4
Successful SSA optimization Pass2AliasElimination
Identical Phi Values (word) getValue::index#1 (word) getValue::index#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$1 [11] if((byte) main::idx#1!=rangelast(0,$80)) goto main::@1
Simple Condition (bool~) main::$1 [10] if((byte) main::idx#1!=rangelast(0,$80)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::idx#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [9] main::idx#1 ← ++ main::idx#2 to ++
Resolved ranged comparison value [11] if(main::idx#1!=rangelast(0,$80)) goto main::@1 to (number) $81
Resolved ranged next value [8] main::idx#1 ← ++ main::idx#2 to ++
Resolved ranged comparison value [10] if(main::idx#1!=rangelast(0,$80)) goto main::@1 to (number) $81
Adding number conversion cast (unumber) $81 in if((byte) main::idx#1!=(number) $81) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast $81

View File

@ -100,7 +100,7 @@ Identical Phi Values (byte) main::item#2 (byte) main::item#4
Identical Phi Values (byte*) main::cur_item#2 (byte*) main::cur_item#4
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$2 [10] if((byte) main::sub#1!=rangelast(0,ITEM_SIZE-1)) goto main::@2
Simple Condition (bool~) main::$3 [15] if((byte) main::item#1!=rangelast(0,ITEM_COUNT-1)) goto main::@1
Simple Condition (bool~) main::$3 [14] if((byte) main::item#1!=rangelast(0,ITEM_COUNT-1)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) main::cur_item#0 = items
Constant (const byte) main::item#0 = 0
@ -108,8 +108,8 @@ Constant (const byte) main::sub#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [8] main::sub#1 ← ++ main::sub#2 to ++
Resolved ranged comparison value [10] if(main::sub#1!=rangelast(0,ITEM_SIZE-1)) goto main::@2 to (const byte) ITEM_SIZE-(byte) 1+(number) 1
Resolved ranged next value [13] main::item#1 ← ++ main::item#4 to ++
Resolved ranged comparison value [15] if(main::item#1!=rangelast(0,ITEM_COUNT-1)) goto main::@1 to (const byte) ITEM_COUNT-(byte) 1+(number) 1
Resolved ranged next value [12] main::item#1 ← ++ main::item#4 to ++
Resolved ranged comparison value [14] if(main::item#1!=rangelast(0,ITEM_COUNT-1)) goto main::@1 to (const byte) ITEM_COUNT-(byte) 1+(number) 1
Adding number conversion cast (unumber) ITEM_SIZE-1+1 in if((byte) main::sub#1!=(const byte) ITEM_SIZE-(byte) 1+(number) 1) goto main::@2
Adding number conversion cast (unumber) 1 in if((byte) main::sub#1!=(unumber)(const byte) ITEM_SIZE-(byte) 1+(number) 1) goto main::@2
Adding number conversion cast (unumber) ITEM_COUNT-1+1 in if((byte) main::item#1!=(const byte) ITEM_COUNT-(byte) 1+(number) 1) goto main::@1

View File

@ -94,7 +94,7 @@ Alias (byte) main::i#2 = (byte) main::i#3
Alias (byte) main::i1#2 = (byte) main::i1#3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$0 [3] if((byte) 0!=*((const byte*) msg1 + (byte) main::i#2)) goto main::@2
Simple Condition (bool~) main::$1 [10] if((byte) 0!=*((const byte*) msg2 + (byte) main::i1#2)) goto main::@8
Simple Condition (bool~) main::$1 [9] if((byte) 0!=*((const byte*) msg2 + (byte) main::i1#2)) goto main::@8
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::i#0 = 0
Constant (const byte) main::i1#0 = 0

View File

@ -343,7 +343,7 @@ Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte*) screen2#10 (byte*) screen2#0
Identical Phi Values (byte*) screen2#1 (byte*) screen2#10
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) test::$0 [75] if(*((const byte*) ref + (byte) test::i#11)==(byte) test::a#11) goto test::@1
Simple Condition (bool~) test::$0 [63] if(*((const byte*) ref + (byte) test::i#11)==(byte) test::a#11) goto test::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [0] (byte*) screen2#0 ← (const byte*) screen1 + (byte) $28
Successful SSA optimization Pass2ConstantRValueConsolidation

View File

@ -705,14 +705,14 @@ Identical Phi Values (byte*) fill::end#1 (byte*) fill::end#0
Identical Phi Values (byte) fill::val#2 (byte) fill::val#4
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$2 [14] if((signed word) main::i#2<(signed word) $b4) goto main::@2
Simple Condition (bool~) circle::$2 [32] if((signed word) circle::x1#10<=(signed word) circle::y#13) goto circle::@2
Simple Condition (bool~) circle::$3 [35] if((signed word) circle::p#3<(signed byte) 0) goto circle::@4
Simple Condition (bool~) fill::$1 [130] if((byte*) fill::addr#2!=(byte*) fill::end#0) goto fill::@2
Simple Condition (bool~) circle::$2 [28] if((signed word) circle::x1#10<=(signed word) circle::y#13) goto circle::@2
Simple Condition (bool~) circle::$3 [30] if((signed word) circle::p#3<(signed byte) 0) goto circle::@4
Simple Condition (bool~) fill::$1 [93] if((byte*) fill::addr#2!=(byte*) fill::end#0) goto fill::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [108] (bool~) plot::$7 ← ! (bool~) plot::$6
Rewriting || if()-condition to two if()s [107] (bool~) plot::$6 ← (bool~) plot::$4 || (bool~) plot::$5
Rewriting || if()-condition to two if()s [105] (bool~) plot::$4 ← (bool~) plot::$2 || (bool~) plot::$3
Rewriting || if()-condition to two if()s [103] (bool~) plot::$2 ← (bool~) plot::$0 || (bool~) plot::$1
Rewriting ! if()-condition to reversed if() [74] (bool~) plot::$7 ← ! (bool~) plot::$6
Rewriting || if()-condition to two if()s [73] (bool~) plot::$6 ← (bool~) plot::$4 || (bool~) plot::$5
Rewriting || if()-condition to two if()s [71] (bool~) plot::$4 ← (bool~) plot::$2 || (bool~) plot::$3
Rewriting || if()-condition to two if()s [69] (bool~) plot::$2 ← (bool~) plot::$0 || (bool~) plot::$1
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant right-side identified [1] (signed word) fill::size#0 ← (snumber)(number) $28*(number) $19*(number) 8
Constant right-side identified [5] (signed word) fill::size#1 ← (snumber)(number) $28*(number) $19
@ -729,7 +729,7 @@ Constant (const signed word) circle::yc#0 = $64
Constant (const signed word) circle::x1#0 = 0
Constant (const byte*) plot::location#0 = BITMAP
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [22] if(true) goto main::@7
if() condition always true - replacing block destination [20] if(true) goto main::@7
Successful SSA optimization Pass2ConstantIfs
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks

View File

@ -637,9 +637,9 @@ Identical Phi Values (signed word) circle::yc#1 (signed word) circle::yc#13
Identical Phi Values (byte*) fill::end#1 (byte*) fill::end#0
Identical Phi Values (byte) fill::val#2 (byte) fill::val#4
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) circle::$2 [25] if((signed word) circle::x1#10<=(signed word) circle::y#13) goto circle::@2
Simple Condition (bool~) circle::$3 [28] if((signed word) circle::p#3<(signed byte) 0) goto circle::@4
Simple Condition (bool~) fill::$1 [113] if((byte*) fill::addr#2!=(byte*) fill::end#0) goto fill::@2
Simple Condition (bool~) circle::$2 [23] if((signed word) circle::x1#10<=(signed word) circle::y#13) goto circle::@2
Simple Condition (bool~) circle::$3 [25] if((signed word) circle::p#3<(signed byte) 0) goto circle::@4
Simple Condition (bool~) fill::$1 [79] if((byte*) fill::addr#2!=(byte*) fill::end#0) goto fill::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [1] (signed word) fill::size#0 ← (snumber)(number) $28*(number) $19*(number) 8
Constant right-side identified [5] (signed word) fill::size#1 ← (snumber)(number) $28*(number) $19

View File

@ -1465,28 +1465,28 @@ Identical Phi Values (byte) next#3 (byte) next#1
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [29] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) bitmap_init::$4 [13] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$5 [17] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$12 [32] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$14 [36] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_clear::$1 [52] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
Simple Condition (bool~) bitmap_clear::$2 [56] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
Simple Condition (bool~) bitmap_line::$0 [72] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
Simple Condition (bool~) bitmap_line::$12 [77] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@20
Simple Condition (bool~) bitmap_line::$2 [82] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@10
Simple Condition (bool~) bitmap_line::$8 [87] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#2) goto bitmap_line::@15
Simple Condition (bool~) bitmap_line::$4 [92] if((byte) bitmap_line::yd#2<(byte) bitmap_line::xd#2) goto bitmap_line::@11
Simple Condition (bool~) bitmap_line::$18 [125] if((byte) bitmap_line::yd#11<(byte) bitmap_line::xd#1) goto bitmap_line::@25
Simple Condition (bool~) bitmap_line::$14 [130] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#1) goto bitmap_line::@21
Simple Condition (bool~) bitmap_line_xdyi::$4 [173] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2
Simple Condition (bool~) bitmap_line_xdyi::$7 [177] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1
Simple Condition (bool~) bitmap_line_xdyd::$4 [196] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2
Simple Condition (bool~) bitmap_line_xdyd::$7 [200] if((byte) bitmap_line_xdyd::x#2!=(byte~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1
Simple Condition (bool~) bitmap_line_ydxi::$4 [219] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2
Simple Condition (bool~) bitmap_line_ydxi::$7 [223] if((byte) bitmap_line_ydxi::y#2!=(byte~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1
Simple Condition (bool~) bitmap_line_ydxd::$4 [243] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2
Simple Condition (bool~) bitmap_line_ydxd::$7 [247] if((byte) bitmap_line_ydxd::y#3!=(byte~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1
Simple Condition (bool~) init_screen::$0 [281] if((byte*) init_screen::c#2!=(const byte*) SCREEN+(word) $400) goto init_screen::@2
Simple Condition (bool~) bitmap_init::$4 [11] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$5 [15] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$12 [28] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$14 [32] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_clear::$1 [45] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
Simple Condition (bool~) bitmap_clear::$2 [48] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
Simple Condition (bool~) bitmap_line::$0 [62] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
Simple Condition (bool~) bitmap_line::$12 [65] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@20
Simple Condition (bool~) bitmap_line::$2 [68] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@10
Simple Condition (bool~) bitmap_line::$8 [71] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#2) goto bitmap_line::@15
Simple Condition (bool~) bitmap_line::$4 [74] if((byte) bitmap_line::yd#2<(byte) bitmap_line::xd#2) goto bitmap_line::@11
Simple Condition (bool~) bitmap_line::$18 [101] if((byte) bitmap_line::yd#11<(byte) bitmap_line::xd#1) goto bitmap_line::@25
Simple Condition (bool~) bitmap_line::$14 [104] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#1) goto bitmap_line::@21
Simple Condition (bool~) bitmap_line_xdyi::$4 [139] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2
Simple Condition (bool~) bitmap_line_xdyi::$7 [143] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1
Simple Condition (bool~) bitmap_line_xdyd::$4 [156] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2
Simple Condition (bool~) bitmap_line_xdyd::$7 [160] if((byte) bitmap_line_xdyd::x#2!=(byte~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1
Simple Condition (bool~) bitmap_line_ydxi::$4 [173] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2
Simple Condition (bool~) bitmap_line_ydxi::$7 [177] if((byte) bitmap_line_ydxi::y#2!=(byte~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1
Simple Condition (bool~) bitmap_line_ydxd::$4 [190] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2
Simple Condition (bool~) bitmap_line_ydxd::$7 [194] if((byte) bitmap_line_ydxd::y#3!=(byte~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1
Simple Condition (bool~) init_screen::$0 [220] if((byte*) init_screen::c#2!=(const byte*) SCREEN+(word) $400) goto init_screen::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) bitmap_init::bits#0 = $80
Constant (const byte) bitmap_init::x#0 = 0
@ -1523,26 +1523,26 @@ Constant (const byte) bitmap_line_ydxi::y#1 = bitmap_line::y0#0
Constant (const byte) bitmap_line_ydxi::x#1 = bitmap_line::x0#0
Constant (const byte) bitmap_line_ydxi::y1#1 = bitmap_line::y1#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [77] if((const byte) bitmap_line::y0#0<(const byte) bitmap_line::y1#0) goto bitmap_line::@20
if() condition always true - replacing block destination [82] if((const byte) bitmap_line::y0#0<(const byte) bitmap_line::y1#0) goto bitmap_line::@10
if() condition always true - replacing block destination [274] if(true) goto main::@1
if() condition always true - replacing block destination [65] if((const byte) bitmap_line::y0#0<(const byte) bitmap_line::y1#0) goto bitmap_line::@20
if() condition always true - replacing block destination [68] if((const byte) bitmap_line::y0#0<(const byte) bitmap_line::y1#0) goto bitmap_line::@10
if() condition always true - replacing block destination [215] if(true) goto main::@1
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [15] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [17] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [34] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [36] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [50] bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++
Resolved ranged comparison value [52] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (number) $c8
Resolved ranged next value [54] bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++
Resolved ranged comparison value [56] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (number) $28
Simplifying expression containing zero bitmap_plot_xhi in [41] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi + (byte) 0) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_plot_xlo in [41] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_line::x1#0 in [74] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 - (const byte) bitmap_line::x0#0
Simplifying expression containing zero bitmap_line::x1#0 in [79] (byte) bitmap_line::xd#2 ← (const byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0
Simplifying expression containing zero bitmap_line::y1#0 in [84] (byte) bitmap_line::yd#1 ← (const byte) bitmap_line::y1#0 - (const byte) bitmap_line::y0#0
Simplifying expression containing zero bitmap_line::y1#0 in [89] (byte) bitmap_line::yd#2 ← (const byte) bitmap_line::y0#0 - (const byte) bitmap_line::y1#0
Simplifying expression containing zero bitmap_line::y1#0 in [122] (byte) bitmap_line::yd#11 ← (const byte) bitmap_line::y1#0 - (const byte) bitmap_line::y0#0
Simplifying expression containing zero bitmap_line::y1#0 in [127] (byte) bitmap_line::yd#10 ← (const byte) bitmap_line::y0#0 - (const byte) bitmap_line::y1#0
Resolved ranged next value [13] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [15] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [30] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [32] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [43] bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++
Resolved ranged comparison value [45] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (number) $c8
Resolved ranged next value [46] bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++
Resolved ranged comparison value [48] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (number) $28
Simplifying expression containing zero bitmap_plot_xhi in [35] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi + (byte) 0) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_plot_xlo in [35] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_line::x1#0 in [63] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 - (const byte) bitmap_line::x0#0
Simplifying expression containing zero bitmap_line::x1#0 in [66] (byte) bitmap_line::xd#2 ← (const byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0
Simplifying expression containing zero bitmap_line::y1#0 in [69] (byte) bitmap_line::yd#1 ← (const byte) bitmap_line::y1#0 - (const byte) bitmap_line::y0#0
Simplifying expression containing zero bitmap_line::y1#0 in [72] (byte) bitmap_line::yd#2 ← (const byte) bitmap_line::y0#0 - (const byte) bitmap_line::y1#0
Simplifying expression containing zero bitmap_line::y1#0 in [99] (byte) bitmap_line::yd#11 ← (const byte) bitmap_line::y1#0 - (const byte) bitmap_line::y0#0
Simplifying expression containing zero bitmap_line::y1#0 in [102] (byte) bitmap_line::yd#10 ← (const byte) bitmap_line::y0#0 - (const byte) bitmap_line::y1#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused constant (const byte) bitmap_line::xd#0
Eliminating unused constant (const byte) bitmap_line::yd#0
@ -1634,9 +1634,9 @@ Identical Phi Values (byte) bitmap_line_ydxd::yd#5 (byte) bitmap_line_ydxd::yd#0
Identical Phi Values (byte) bitmap_line_ydxd::y1#6 (const byte) bitmap_line_ydxd::y1#0
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [3] (byte~) bitmap_init::$1 ← > (const byte*) bitmap_init::bitmap#0
Constant right-side identified [91] (byte~) bitmap_line_xdyd::$6 ← (const byte) bitmap_line_xdyd::x1#0 + (byte) 1
Constant right-side identified [106] (byte~) bitmap_line_ydxi::$6 ← (const byte) bitmap_line_ydxi::y1#1 + (byte) 1
Constant right-side identified [121] (byte~) bitmap_line_ydxd::$6 ← (const byte) bitmap_line_ydxd::y1#0 + (byte) 1
Constant right-side identified [90] (byte~) bitmap_line_xdyd::$6 ← (const byte) bitmap_line_xdyd::x1#0 + (byte) 1
Constant right-side identified [105] (byte~) bitmap_line_ydxi::$6 ← (const byte) bitmap_line_ydxi::y1#1 + (byte) 1
Constant right-side identified [120] (byte~) bitmap_line_ydxd::$6 ← (const byte) bitmap_line_ydxd::y1#0 + (byte) 1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) bitmap_init::$1 = >bitmap_init::bitmap#0
Constant (const byte) bitmap_line::yd#1 = bitmap_line::y1#0

View File

@ -1382,23 +1382,23 @@ Identical Phi Values (void*) memset::return#0 (void*) memset::str#3
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [49] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [32] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [36] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [52] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [56] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_line::$12 [127] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
Simple Condition (bool~) bitmap_line::$21 [150] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@8
Simple Condition (bool~) bitmap_line::$22 [153] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#0) goto bitmap_line::@7
Simple Condition (bool~) bitmap_line::$27 [172] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@13
Simple Condition (bool~) bitmap_line::$28 [175] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#0) goto bitmap_line::@12
Simple Condition (bool~) abs_u16::$3 [183] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
Simple Condition (bool~) sgn_u16::$2 [196] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
Simple Condition (bool~) main::$4 [229] if((word) next#1!=(word) $140) goto main::@2
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [24] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [28] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [40] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [44] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_line::$12 [92] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
Simple Condition (bool~) bitmap_line::$21 [106] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@8
Simple Condition (bool~) bitmap_line::$22 [109] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#0) goto bitmap_line::@7
Simple Condition (bool~) bitmap_line::$27 [123] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@13
Simple Condition (bool~) bitmap_line::$28 [126] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#0) goto bitmap_line::@12
Simple Condition (bool~) abs_u16::$3 [133] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
Simple Condition (bool~) sgn_u16::$2 [141] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
Simple Condition (bool~) main::$4 [167] if((word) next#1!=(word) $140) goto main::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [109] (bool~) bitmap_line::$7 ← ! (bool~) bitmap_line::$6
Rewriting && if()-condition to two if()s [108] (bool~) bitmap_line::$6 ← (bool~) bitmap_line::$4 && (bool~) bitmap_line::$5
Rewriting ! if()-condition to reversed if() [81] (bool~) bitmap_line::$7 ← ! (bool~) bitmap_line::$6
Rewriting && if()-condition to two if()s [80] (bool~) bitmap_line::$6 ← (bool~) bitmap_line::$4 && (bool~) bitmap_line::$5
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant (const byte*) bitmap_screen#0 = (byte*) 0
Constant (const byte*) bitmap_gfx#0 = (byte*) 0
@ -1429,18 +1429,18 @@ Successful SSA optimization Pass2ConstantIdentification
Constant (const void*) memset::str#0 = (void*)bitmap_screen#1
Constant (const void*) memset::str#1 = (void*)bitmap_gfx#1
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [231] if(true) goto main::@1
if() condition always true - replacing block destination [169] if(true) goto main::@1
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [34] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [36] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [54] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [56] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [26] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [28] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [42] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [44] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Simplifying constant evaluating to zero (byte)(const word) bitmap_line::y1#0 in
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero bitmap_line::x2#0 in [92] (word) abs_u16::w#0 ← (word) bitmap_line::x2#0 - (const word) bitmap_line::x1#0
Simplifying expression containing zero bitmap_line::y2#0 in [99] (word) abs_u16::w#1 ← (const word) bitmap_line::y2#0 - (const word) bitmap_line::y1#0
Simplifying expression containing zero bitmap_line::x2#0 in [112] (word) sgn_u16::w#0 ← (word) bitmap_line::x2#0 - (const word) bitmap_line::x1#0
Simplifying expression containing zero bitmap_line::y2#0 in [119] (word) sgn_u16::w#1 ← (const word) bitmap_line::y2#0 - (const word) bitmap_line::y1#0
Simplifying expression containing zero bitmap_line::x2#0 in [70] (word) abs_u16::w#0 ← (word) bitmap_line::x2#0 - (const word) bitmap_line::x1#0
Simplifying expression containing zero bitmap_line::y2#0 in [74] (word) abs_u16::w#1 ← (const word) bitmap_line::y2#0 - (const word) bitmap_line::y1#0
Simplifying expression containing zero bitmap_line::x2#0 in [83] (word) sgn_u16::w#0 ← (word) bitmap_line::x2#0 - (const word) bitmap_line::x1#0
Simplifying expression containing zero bitmap_line::y2#0 in [87] (word) sgn_u16::w#1 ← (const word) bitmap_line::y2#0 - (const word) bitmap_line::y1#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (void*) memset::return#2 and assignment [35] (void*) memset::return#2 ← (void*) memset::str#3
Eliminating unused variable (void*) memset::return#3 and assignment [37] (void*) memset::return#3 ← (void*) memset::str#3
@ -1462,12 +1462,12 @@ Finalized unsigned number type (byte) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte~) bitmap_init::$7 = (byte~) bitmap_init::$3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) bitmap_line::$4 [55] if((word) bitmap_line::dx#0==(byte) 0) goto bitmap_line::@24
Simple Condition (bool~) bitmap_line::$5 [121] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
Simple Condition (bool~) bitmap_line::$4 [54] if((word) bitmap_line::dx#0==(byte) 0) goto bitmap_line::@24
Simple Condition (bool~) bitmap_line::$5 [120] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [55] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
Negating conditional jump and destination [54] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [31] (byte~) bitmap_clear::$0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [30] (byte~) bitmap_clear::$0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) bitmap_clear::$0 = bitmap_clear::fgcol#0*$10
Constant (const word) abs_u16::w#1 = bitmap_line::y2#0

View File

@ -969,18 +969,18 @@ Identical Phi Values (void*) memset::return#0 (void*) memset::str#3
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [49] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [32] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [36] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [52] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [56] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) irq::$0 [172] if((byte) 0==(byte) frame_cnt) goto irq::@1
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [24] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [28] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [40] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [44] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) irq::$0 [131] if((byte) 0==(byte) frame_cnt) goto irq::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [137] (bool~) main::$8 ← ! (bool~) main::$7
Rewriting || if()-condition to two if()s [136] (bool~) main::$7 ← (bool~) main::$5 || (bool~) main::$6
Rewriting ! if()-condition to reversed if() [143] (bool~) main::$13 ← ! (bool~) main::$12
Rewriting || if()-condition to two if()s [142] (bool~) main::$12 ← (bool~) main::$10 || (bool~) main::$11
Rewriting ! if()-condition to reversed if() [105] (bool~) main::$8 ← ! (bool~) main::$7
Rewriting || if()-condition to two if()s [104] (bool~) main::$7 ← (bool~) main::$5 || (bool~) main::$6
Rewriting ! if()-condition to reversed if() [111] (bool~) main::$13 ← ! (bool~) main::$12
Rewriting || if()-condition to two if()s [110] (bool~) main::$12 ← (bool~) main::$10 || (bool~) main::$11
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant (const byte*) bitmap_screen#0 = (byte*) 0
Constant (const byte*) bitmap_gfx#0 = (byte*) 0
@ -1010,13 +1010,13 @@ Successful SSA optimization Pass2ConstantIdentification
Constant (const void*) memset::str#0 = (void*)bitmap_screen#1
Constant (const void*) memset::str#1 = (void*)bitmap_gfx#1
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [126] if(true) goto main::@2
if() condition always true - replacing block destination [96] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [34] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [36] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [54] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [56] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Simplifying expression containing zero bitmap_clear::$0 in [66] (byte) bitmap_clear::col#0 ← (byte~) bitmap_clear::$0 + (const byte) bitmap_clear::bgcol#0
Resolved ranged next value [26] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [28] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [42] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [44] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Simplifying expression containing zero bitmap_clear::$0 in [49] (byte) bitmap_clear::col#0 ← (byte~) bitmap_clear::$0 + (const byte) bitmap_clear::bgcol#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (void*) memset::return#2 and assignment [35] (void*) memset::return#2 ← (void*) memset::str#3
Eliminating unused variable (void*) memset::return#3 and assignment [37] (void*) memset::return#3 ← (void*) memset::str#3
@ -1040,17 +1040,17 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte~) bitmap_init::$7 = (byte~) bitmap_init::$3
Alias (byte) bitmap_clear::col#0 = (byte~) bitmap_clear::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$5 [64] if((word) main::x#1==(word) $13f) goto main::@8
Simple Condition (bool~) main::$10 [68] if((byte) main::y#1==(byte) $c7) goto main::@9
Simple Condition (bool~) main::$6 [91] if((word) main::x#1==(byte) 0) goto main::@8
Simple Condition (bool~) main::$11 [92] if((byte) main::y#1==(byte) 0) goto main::@9
Simple Condition (bool~) main::$5 [62] if((word) main::x#1==(word) $13f) goto main::@8
Simple Condition (bool~) main::$10 [66] if((byte) main::y#1==(byte) $c7) goto main::@9
Simple Condition (bool~) main::$6 [89] if((word) main::x#1==(byte) 0) goto main::@8
Simple Condition (bool~) main::$11 [90] if((byte) main::y#1==(byte) 0) goto main::@9
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [91] if((word) main::x#1!=(byte) 0) goto main::@4
Negating conditional jump and destination [92] if((byte) main::y#1!=(byte) 0) goto main::@5
Negating conditional jump and destination [89] if((word) main::x#1!=(byte) 0) goto main::@4
Negating conditional jump and destination [90] if((byte) main::y#1!=(byte) 0) goto main::@5
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [31] (byte) bitmap_clear::col#0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [47] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [50] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Constant right-side identified [30] (byte) bitmap_clear::col#0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [45] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [48] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) bitmap_clear::col#0 = bitmap_clear::fgcol#0*$10
Constant (const word) main::toD0181_$1 = main::toD0181_$0&$3fff

View File

@ -2295,28 +2295,28 @@ Identical Phi Values (void*) memset::return#0 (void*) memset::str#3
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [310] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) divr16u::$4 [11] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
Simple Condition (bool~) divr16u::$9 [19] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3
Simple Condition (bool~) divr16u::$11 [26] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1
Simple Condition (bool~) mul16u::$0 [71] if((word) mul16u::a#3!=(byte) 0) goto mul16u::@2
Simple Condition (bool~) mul16u::$3 [76] if((byte~) mul16u::$1==(byte) 0) goto mul16u::@4
Simple Condition (bool~) mul16s::$4 [102] if((signed word) mul16s::a#3>=(signed byte) 0) goto mul16s::@1
Simple Condition (bool~) mul16s::$6 [106] if((signed word) mul16s::b#3>=(signed byte) 0) goto mul16s::@2
Simple Condition (bool~) sin16s_gen2::$4 [143] if((word) sin16s_gen2::i#2<(word) sin16s_gen2::wavelength#0) goto sin16s_gen2::@2
Simple Condition (bool~) sin16s::$1 [171] if((dword) sin16s::x#0<(const dword) PI_u4f28) goto sin16s::@1
Simple Condition (bool~) sin16s::$3 [175] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28) goto sin16s::@2
Simple Condition (bool~) sin16s::$16 [234] if((byte) sin16s::isUpper#2==(byte) 0) goto sin16s::@3
Simple Condition (bool~) memset::$1 [263] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [273] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [293] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [297] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [313] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [317] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) main::$18 [430] if((word) main::idx_x#1!=(word) $200) goto main::@4
Simple Condition (bool~) main::$20 [435] if((word) main::idx_y#1!=(word) $200) goto main::@5
Simple Condition (bool~) irq::$0 [462] if((byte) 0==(byte) frame_cnt) goto irq::@1
Simple Condition (bool~) divr16u::$4 [9] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
Simple Condition (bool~) divr16u::$9 [14] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3
Simple Condition (bool~) divr16u::$11 [19] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1
Simple Condition (bool~) mul16u::$0 [46] if((word) mul16u::a#3!=(byte) 0) goto mul16u::@2
Simple Condition (bool~) mul16u::$3 [49] if((byte~) mul16u::$1==(byte) 0) goto mul16u::@4
Simple Condition (bool~) mul16s::$4 [62] if((signed word) mul16s::a#3>=(signed byte) 0) goto mul16s::@1
Simple Condition (bool~) mul16s::$6 [65] if((signed word) mul16s::b#3>=(signed byte) 0) goto mul16s::@2
Simple Condition (bool~) sin16s_gen2::$4 [91] if((word) sin16s_gen2::i#2<(word) sin16s_gen2::wavelength#0) goto sin16s_gen2::@2
Simple Condition (bool~) sin16s::$1 [111] if((dword) sin16s::x#0<(const dword) PI_u4f28) goto sin16s::@1
Simple Condition (bool~) sin16s::$3 [114] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28) goto sin16s::@2
Simple Condition (bool~) sin16s::$16 [155] if((byte) sin16s::isUpper#2==(byte) 0) goto sin16s::@3
Simple Condition (bool~) memset::$1 [172] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [179] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [194] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [198] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [210] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [214] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) main::$18 [298] if((word) main::idx_x#1!=(word) $200) goto main::@4
Simple Condition (bool~) main::$20 [302] if((word) main::idx_y#1!=(word) $200) goto main::@5
Simple Condition (bool~) irq::$0 [321] if((byte) 0==(byte) frame_cnt) goto irq::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [201] (word) mulu16_sel::v2#2 ← (unumber)(number) $10000/(number) 6
Constant right-side identified [133] (word) mulu16_sel::v2#2 ← (unumber)(number) $10000/(number) 6
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const word) rem16u#0 = 0
Constant (const word) divr16u::quotient#0 = 0
@ -2371,18 +2371,18 @@ Constant (const word) divr16u::divisor#1 = div32u16u::divisor#0
Constant (const void*) memset::str#0 = (void*)bitmap_screen#1
Constant (const void*) memset::str#1 = (void*)bitmap_gfx#1
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [392] if(true) goto main::@2
if() condition always true - replacing block destination [270] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [24] divr16u::i#1 ← ++ divr16u::i#2 to ++
Resolved ranged comparison value [26] if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (number) $10
Resolved ranged next value [295] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [297] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [315] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [317] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
De-inlining pointer[w] to *(pointer+w) [395] (signed word) main::cos_x#0 ← *((const signed word*) SINUS + (word~) main::$22)
De-inlining pointer[w] to *(pointer+w) [409] (signed word) main::sin_y#0 ← *((const signed word*) SINUS + (word~) main::$23)
Resolved ranged next value [17] divr16u::i#1 ← ++ divr16u::i#2 to ++
Resolved ranged comparison value [19] if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (number) $10
Resolved ranged next value [196] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [198] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [212] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [214] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
De-inlining pointer[w] to *(pointer+w) [272] (signed word) main::cos_x#0 ← *((const signed word*) SINUS + (word~) main::$22)
De-inlining pointer[w] to *(pointer+w) [283] (signed word) main::sin_y#0 ← *((const signed word*) SINUS + (word~) main::$23)
Successful SSA optimization Pass2DeInlineWordDerefIdx
Simplifying expression containing zero bitmap_clear::$0 in [327] (byte) bitmap_clear::col#0 ← (byte~) bitmap_clear::$0 + (const byte) bitmap_clear::bgcol#0
Simplifying expression containing zero bitmap_clear::$0 in [219] (byte) bitmap_clear::col#0 ← (byte~) bitmap_clear::$0 + (const byte) bitmap_clear::bgcol#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (void*) memset::return#2 and assignment [169] (void*) memset::return#2 ← (void*) memset::str#3
Eliminating unused variable (void*) memset::return#3 and assignment [171] (void*) memset::return#3 ← (void*) memset::str#3
@ -2417,9 +2417,9 @@ Successful SSA optimization Pass2AliasElimination
Constant right-side identified [18] (word) divr16u::dividend#1 ← > (const dword) div32u16u::dividend#0
Constant right-side identified [22] (word) divr16u::dividend#2 ← < (const dword) div32u16u::dividend#0
Constant right-side identified [60] (signed word) sin16s_gen2::ampl#0 ← (const signed word) sin16s_gen2::max#0 - (const signed word) sin16s_gen2::min#0
Constant right-side identified [165] (byte) bitmap_clear::col#0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [182] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [185] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Constant right-side identified [164] (byte) bitmap_clear::col#0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [180] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [183] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const word) divr16u::dividend#1 = >div32u16u::dividend#0
Constant (const word) divr16u::dividend#2 = <div32u16u::dividend#0
@ -2456,7 +2456,7 @@ Eliminating unused constant (const signed word) sin16s_gen2::offs#0
Successful SSA optimization PassNEliminateUnusedVars
Alias (signed word~) sin16s_gen2::$9 = (signed word~) sin16s_gen2::$8
Successful SSA optimization Pass2AliasElimination
Constant right-side identified [172] (byte) main::toD0181_return#0 ← (const byte) main::toD0181_$3 | (const byte) main::toD0181_$7
Constant right-side identified [171] (byte) main::toD0181_return#0 ← (const byte) main::toD0181_$3 | (const byte) main::toD0181_$7
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::toD0181_return#0 = main::toD0181_$3|main::toD0181_$7
Successful SSA optimization Pass2ConstantIdentification

View File

@ -2449,33 +2449,33 @@ Identical Phi Values (void*) memset::return#0 (void*) memset::str#3
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [310] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) divr16u::$4 [11] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
Simple Condition (bool~) divr16u::$9 [19] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3
Simple Condition (bool~) divr16u::$11 [26] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1
Simple Condition (bool~) mul16u::$0 [71] if((word) mul16u::a#3!=(byte) 0) goto mul16u::@2
Simple Condition (bool~) mul16u::$3 [76] if((byte~) mul16u::$1==(byte) 0) goto mul16u::@4
Simple Condition (bool~) mul16s::$4 [102] if((signed word) mul16s::a#3>=(signed byte) 0) goto mul16s::@1
Simple Condition (bool~) mul16s::$6 [106] if((signed word) mul16s::b#3>=(signed byte) 0) goto mul16s::@2
Simple Condition (bool~) sin16s_gen2::$4 [143] if((word) sin16s_gen2::i#2<(word) sin16s_gen2::wavelength#0) goto sin16s_gen2::@2
Simple Condition (bool~) sin16s::$1 [171] if((dword) sin16s::x#0<(const dword) PI_u4f28) goto sin16s::@1
Simple Condition (bool~) sin16s::$3 [175] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28) goto sin16s::@2
Simple Condition (bool~) sin16s::$16 [234] if((byte) sin16s::isUpper#2==(byte) 0) goto sin16s::@3
Simple Condition (bool~) memset::$1 [263] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [273] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [293] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [297] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [313] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [317] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) main::$21 [435] if((word) main::idx_x#1<(word) $200) goto main::@4
Simple Condition (bool~) main::$23 [440] if((word) main::idx_y#1<(word) $200) goto main::@5
Simple Condition (bool~) main::$29 [455] if((signed word) main::r#1<(signed word)(number) $200*(number) $c+(number) $100) goto main::@1
Simple Condition (bool~) irq::$0 [482] if((byte) 0==(byte) frame_cnt) goto irq::@1
Simple Condition (bool~) divr16u::$4 [9] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
Simple Condition (bool~) divr16u::$9 [14] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3
Simple Condition (bool~) divr16u::$11 [19] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1
Simple Condition (bool~) mul16u::$0 [46] if((word) mul16u::a#3!=(byte) 0) goto mul16u::@2
Simple Condition (bool~) mul16u::$3 [49] if((byte~) mul16u::$1==(byte) 0) goto mul16u::@4
Simple Condition (bool~) mul16s::$4 [62] if((signed word) mul16s::a#3>=(signed byte) 0) goto mul16s::@1
Simple Condition (bool~) mul16s::$6 [65] if((signed word) mul16s::b#3>=(signed byte) 0) goto mul16s::@2
Simple Condition (bool~) sin16s_gen2::$4 [91] if((word) sin16s_gen2::i#2<(word) sin16s_gen2::wavelength#0) goto sin16s_gen2::@2
Simple Condition (bool~) sin16s::$1 [111] if((dword) sin16s::x#0<(const dword) PI_u4f28) goto sin16s::@1
Simple Condition (bool~) sin16s::$3 [114] if((dword) sin16s::x#4<(const dword) PI_HALF_u4f28) goto sin16s::@2
Simple Condition (bool~) sin16s::$16 [155] if((byte) sin16s::isUpper#2==(byte) 0) goto sin16s::@3
Simple Condition (bool~) memset::$1 [172] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [179] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [194] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [198] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [210] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [214] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) main::$21 [303] if((word) main::idx_x#1<(word) $200) goto main::@4
Simple Condition (bool~) main::$23 [307] if((word) main::idx_y#1<(word) $200) goto main::@5
Simple Condition (bool~) main::$29 [319] if((signed word) main::r#1<(signed word)(number) $200*(number) $c+(number) $100) goto main::@1
Simple Condition (bool~) irq::$0 [338] if((byte) 0==(byte) frame_cnt) goto irq::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [448] (bool~) main::$27 ← ! (bool~) main::$26
Rewriting && if()-condition to two if()s [447] (bool~) main::$26 ← (bool~) main::$24 && (bool~) main::$25
Rewriting ! if()-condition to reversed if() [314] (bool~) main::$27 ← ! (bool~) main::$26
Rewriting && if()-condition to two if()s [313] (bool~) main::$26 ← (bool~) main::$24 && (bool~) main::$25
Successful SSA optimization Pass2ConditionalAndOrRewriting
Negating conditional jump and destination [455] if((signed word) main::r#1>=(signed word)(number) $200*(number) $c+(number) $100) goto main::@17
Constant right-side identified [201] (word) mulu16_sel::v2#2 ← (unumber)(number) $10000/(number) 6
Negating conditional jump and destination [319] if((signed word) main::r#1>=(signed word)(number) $200*(number) $c+(number) $100) goto main::@17
Constant right-side identified [133] (word) mulu16_sel::v2#2 ← (unumber)(number) $10000/(number) 6
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const word) rem16u#0 = 0
Constant (const word) divr16u::quotient#0 = 0
@ -2530,19 +2530,19 @@ Constant (const word) divr16u::divisor#1 = div32u16u::divisor#0
Constant (const void*) memset::str#0 = (void*)bitmap_screen#1
Constant (const void*) memset::str#1 = (void*)bitmap_gfx#1
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [394] if(true) goto main::@2
if() condition always true - replacing block destination [459] if(true) goto main::@18
if() condition always true - replacing block destination [272] if(true) goto main::@2
if() condition always true - replacing block destination [322] if(true) goto main::@18
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [24] divr16u::i#1 ← ++ divr16u::i#2 to ++
Resolved ranged comparison value [26] if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (number) $10
Resolved ranged next value [295] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [297] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [315] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [317] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
De-inlining pointer[w] to *(pointer+w) [397] (signed word) main::cos_x#0 ← *((const signed word*) SINUS + (word~) main::$31)
De-inlining pointer[w] to *(pointer+w) [412] (signed word) main::sin_y#0 ← *((const signed word*) SINUS + (word~) main::$32)
Resolved ranged next value [17] divr16u::i#1 ← ++ divr16u::i#2 to ++
Resolved ranged comparison value [19] if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (number) $10
Resolved ranged next value [196] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [198] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [212] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [214] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
De-inlining pointer[w] to *(pointer+w) [274] (signed word) main::cos_x#0 ← *((const signed word*) SINUS + (word~) main::$31)
De-inlining pointer[w] to *(pointer+w) [286] (signed word) main::sin_y#0 ← *((const signed word*) SINUS + (word~) main::$32)
Successful SSA optimization Pass2DeInlineWordDerefIdx
Simplifying expression containing zero bitmap_clear::$0 in [327] (byte) bitmap_clear::col#0 ← (byte~) bitmap_clear::$0 + (const byte) bitmap_clear::bgcol#0
Simplifying expression containing zero bitmap_clear::$0 in [219] (byte) bitmap_clear::col#0 ← (byte~) bitmap_clear::$0 + (const byte) bitmap_clear::bgcol#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (void*) memset::return#2 and assignment [169] (void*) memset::return#2 ← (void*) memset::str#3
Eliminating unused variable (void*) memset::return#3 and assignment [171] (void*) memset::return#3 ← (void*) memset::str#3
@ -2570,18 +2570,18 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte~) bitmap_init::$7 = (byte~) bitmap_init::$3
Alias (byte) bitmap_clear::col#0 = (byte~) bitmap_clear::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$24 [231] if((word) main::idx_x#10==(byte) 0) goto main::@31
Simple Condition (bool~) main::$25 [254] if((byte) main::r_add#10!=(byte) 1) goto main::@13
Simple Condition (bool~) main::$24 [229] if((word) main::idx_x#10==(byte) 0) goto main::@31
Simple Condition (bool~) main::$25 [252] if((byte) main::r_add#10!=(byte) 1) goto main::@13
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [231] if((word) main::idx_x#10!=(byte) 0) goto main::@6
Negating conditional jump and destination [254] if((byte) main::r_add#10==(byte) 1) goto main::@6
Negating conditional jump and destination [229] if((word) main::idx_x#10!=(byte) 0) goto main::@6
Negating conditional jump and destination [252] if((byte) main::r_add#10==(byte) 1) goto main::@6
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [18] (word) divr16u::dividend#1 ← > (const dword) div32u16u::dividend#0
Constant right-side identified [22] (word) divr16u::dividend#2 ← < (const dword) div32u16u::dividend#0
Constant right-side identified [60] (signed word) sin16s_gen2::ampl#0 ← (const signed word) sin16s_gen2::max#0 - (const signed word) sin16s_gen2::min#0
Constant right-side identified [165] (byte) bitmap_clear::col#0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [182] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [185] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Constant right-side identified [164] (byte) bitmap_clear::col#0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [180] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [183] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const word) divr16u::dividend#1 = >div32u16u::dividend#0
Constant (const word) divr16u::dividend#2 = <div32u16u::dividend#0
@ -2618,7 +2618,7 @@ Eliminating unused constant (const signed word) sin16s_gen2::offs#0
Successful SSA optimization PassNEliminateUnusedVars
Alias (signed word~) sin16s_gen2::$9 = (signed word~) sin16s_gen2::$8
Successful SSA optimization Pass2AliasElimination
Constant right-side identified [172] (byte) main::toD0181_return#0 ← (const byte) main::toD0181_$3 | (const byte) main::toD0181_$7
Constant right-side identified [171] (byte) main::toD0181_return#0 ← (const byte) main::toD0181_$3 | (const byte) main::toD0181_$7
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::toD0181_return#0 = main::toD0181_$3|main::toD0181_$7
Successful SSA optimization Pass2ConstantIdentification

View File

@ -1531,25 +1531,25 @@ Identical Phi Values (void*) memset::return#0 (void*) memset::str#3
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [49] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [32] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [36] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [52] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [56] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_line::$12 [127] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
Simple Condition (bool~) bitmap_line::$21 [150] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@8
Simple Condition (bool~) bitmap_line::$22 [153] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#0) goto bitmap_line::@7
Simple Condition (bool~) bitmap_line::$27 [172] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@13
Simple Condition (bool~) bitmap_line::$28 [175] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#0) goto bitmap_line::@12
Simple Condition (bool~) abs_u16::$3 [183] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
Simple Condition (bool~) sgn_u16::$2 [196] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
Simple Condition (bool~) main::$3 [236] if((byte) main::i#2!=(byte) 8) goto main::@2
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [24] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [28] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [40] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [44] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_line::$12 [92] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
Simple Condition (bool~) bitmap_line::$21 [106] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@8
Simple Condition (bool~) bitmap_line::$22 [109] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#0) goto bitmap_line::@7
Simple Condition (bool~) bitmap_line::$27 [123] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@13
Simple Condition (bool~) bitmap_line::$28 [126] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#0) goto bitmap_line::@12
Simple Condition (bool~) abs_u16::$3 [133] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
Simple Condition (bool~) sgn_u16::$2 [141] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
Simple Condition (bool~) main::$3 [171] if((byte) main::i#2!=(byte) 8) goto main::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [109] (bool~) bitmap_line::$7 ← ! (bool~) bitmap_line::$6
Rewriting && if()-condition to two if()s [108] (bool~) bitmap_line::$6 ← (bool~) bitmap_line::$4 && (bool~) bitmap_line::$5
Rewriting ! if()-condition to reversed if() [81] (bool~) bitmap_line::$7 ← ! (bool~) bitmap_line::$6
Rewriting && if()-condition to two if()s [80] (bool~) bitmap_line::$6 ← (bool~) bitmap_line::$4 && (bool~) bitmap_line::$5
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant right-side identified [257] (byte*~) main::$16 ← (const byte*) SCREEN + (word) $3e7
Constant right-side identified [185] (byte*~) main::$16 ← (const byte*) SCREEN + (word) $3e7
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) bitmap_screen#0 = (byte*) 0
Constant (const byte*) bitmap_gfx#0 = (byte*) 0
@ -1580,13 +1580,13 @@ Successful SSA optimization Pass2ConstantIdentification
Constant (const void*) memset::str#0 = (void*)bitmap_screen#1
Constant (const void*) memset::str#1 = (void*)bitmap_gfx#1
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [255] if(true) goto main::@8
if() condition always true - replacing block destination [184] if(true) goto main::@8
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [34] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [36] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [54] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [56] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Simplifying expression containing zero bitmap_clear::$0 in [66] (byte) bitmap_clear::col#0 ← (byte~) bitmap_clear::$0 + (const byte) bitmap_clear::bgcol#0
Resolved ranged next value [26] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [28] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [42] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [44] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Simplifying expression containing zero bitmap_clear::$0 in [49] (byte) bitmap_clear::col#0 ← (byte~) bitmap_clear::$0 + (const byte) bitmap_clear::bgcol#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (void*) memset::return#2 and assignment [35] (void*) memset::return#2 ← (void*) memset::str#3
Eliminating unused variable (void*) memset::return#3 and assignment [37] (void*) memset::return#3 ← (void*) memset::str#3
@ -1612,14 +1612,14 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte~) bitmap_init::$7 = (byte~) bitmap_init::$3
Alias (byte) bitmap_clear::col#0 = (byte~) bitmap_clear::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) bitmap_line::$4 [55] if((word) bitmap_line::dx#0==(byte) 0) goto bitmap_line::@24
Simple Condition (bool~) bitmap_line::$5 [136] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
Simple Condition (bool~) bitmap_line::$4 [53] if((word) bitmap_line::dx#0==(byte) 0) goto bitmap_line::@24
Simple Condition (bool~) bitmap_line::$5 [134] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [55] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
Negating conditional jump and destination [53] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [31] (byte) bitmap_clear::col#0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [113] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [116] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Constant right-side identified [30] (byte) bitmap_clear::col#0 ← (const byte) bitmap_clear::fgcol#0 * (byte) $10
Constant right-side identified [111] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [114] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) bitmap_clear::col#0 = bitmap_clear::fgcol#0*$10
Constant (const word) main::toD0181_$1 = main::toD0181_$0&$3fff

View File

@ -476,16 +476,16 @@ Identified duplicate assignment right side [74] (byte~) init_plot_tables::$9 ←
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) main::$9 [14] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@2
Simple Condition (bool~) plots::$0 [23] if((byte) plots::i#2<(const byte) plots_cnt) goto plots::@2
Simple Condition (bool~) init_plot_tables::$3 [58] if((byte) init_plot_tables::bits#1!=(byte) 0) goto init_plot_tables::@2
Simple Condition (bool~) init_plot_tables::$4 [62] if((byte) init_plot_tables::x#1!=rangelast(0,$ff)) goto init_plot_tables::@1
Simple Condition (bool~) init_plot_tables::$11 [77] if((byte~) init_plot_tables::$9!=(byte) 7) goto init_plot_tables::@6
Simple Condition (bool~) init_plot_tables::$13 [81] if((byte) init_plot_tables::y#1!=rangelast(0,$ff)) goto init_plot_tables::@5
Simple Condition (bool~) init_screen::$0 [89] if((byte*) init_screen::b#2!=(const byte*) BITMAP+(word) $2000) goto init_screen::@2
Simple Condition (bool~) init_screen::$2 [97] if((byte*) init_screen::c#2!=(byte*~) init_screen::$1) goto init_screen::@8
Simple Condition (bool~) init_plot_tables::$3 [53] if((byte) init_plot_tables::bits#1!=(byte) 0) goto init_plot_tables::@2
Simple Condition (bool~) init_plot_tables::$4 [57] if((byte) init_plot_tables::x#1!=rangelast(0,$ff)) goto init_plot_tables::@1
Simple Condition (bool~) init_plot_tables::$11 [70] if((byte~) init_plot_tables::$9!=(byte) 7) goto init_plot_tables::@6
Simple Condition (bool~) init_plot_tables::$13 [74] if((byte) init_plot_tables::y#1!=rangelast(0,$ff)) goto init_plot_tables::@5
Simple Condition (bool~) init_screen::$0 [80] if((byte*) init_screen::b#2!=(const byte*) BITMAP+(word) $2000) goto init_screen::@2
Simple Condition (bool~) init_screen::$2 [87] if((byte*) init_screen::c#2!=(byte*~) init_screen::$1) goto init_screen::@8
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [2] (byte~) main::$0 ← (const byte) BMM | (const byte) DEN
Constant right-side identified [6] (word~) main::$3 ← (word)(const byte*) SCREEN
Constant right-side identified [95] (byte*~) init_screen::$1 ← (const byte*) SCREEN + (word) $400
Constant right-side identified [85] (byte*~) init_screen::$1 ← (const byte*) SCREEN + (word) $400
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::$0 = BMM|DEN
Constant (const word) main::$3 = (word)SCREEN
@ -503,10 +503,10 @@ Constant (const byte*) init_screen::$1 = SCREEN+$400
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [18] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [60] init_plot_tables::x#1 ← ++ init_plot_tables::x#2 to ++
Resolved ranged comparison value [62] if(init_plot_tables::x#1!=rangelast(0,$ff)) goto init_plot_tables::@1 to (number) 0
Resolved ranged next value [79] init_plot_tables::y#1 ← ++ init_plot_tables::y#2 to ++
Resolved ranged comparison value [81] if(init_plot_tables::y#1!=rangelast(0,$ff)) goto init_plot_tables::@5 to (number) 0
Resolved ranged next value [55] init_plot_tables::x#1 ← ++ init_plot_tables::x#2 to ++
Resolved ranged comparison value [57] if(init_plot_tables::x#1!=rangelast(0,$ff)) goto init_plot_tables::@1 to (number) 0
Resolved ranged next value [72] init_plot_tables::y#1 ← ++ init_plot_tables::y#2 to ++
Resolved ranged comparison value [74] if(init_plot_tables::y#1!=rangelast(0,$ff)) goto init_plot_tables::@5 to (number) 0
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
Adding number conversion cast (unumber) 0 in if((byte) init_plot_tables::x#1!=(number) 0) goto init_plot_tables::@1

View File

@ -204,23 +204,23 @@ Alias (bool) bool_const_vars::b1#0 = (bool~) bool_const_vars::$3
Alias (bool) bool_const_vars::b2#0 = (bool~) bool_const_vars::$6
Alias (bool) bool_const_vars::b#0 = (bool~) bool_const_vars::$9
Successful SSA optimization Pass2AliasElimination
Rewriting || if()-condition to two if()s [19] (bool) bool_const_vars::b#0 ← (bool~) bool_const_vars::$8 || false
Rewriting && if()-condition to two if()s [18] (bool~) bool_const_vars::$8 ← (bool) bool_const_vars::b1#0 && (bool~) bool_const_vars::$7
Rewriting || if()-condition to two if()s [11] (bool) bool_const_vars::b1#0 ← (bool~) bool_const_vars::$0 || (bool~) bool_const_vars::$2
Rewriting || if()-condition to two if()s [32] (bool~) bool_const_inline::$7 ← (bool~) bool_const_inline::$4 || (bool~) bool_const_inline::$6
Rewriting || if()-condition to two if()s [29] (bool~) bool_const_inline::$4 ← (bool~) bool_const_inline::$0 || (bool~) bool_const_inline::$3
Rewriting ! if()-condition to reversed if() [17] (bool~) bool_const_vars::$7 ← ! (bool) bool_const_vars::b2#0
Rewriting || if()-condition to two if()s [15] (bool) bool_const_vars::b2#0 ← (bool~) bool_const_vars::$4 || (bool~) bool_const_vars::$5
Rewriting && if()-condition to two if()s [28] (bool~) bool_const_inline::$3 ← (bool~) bool_const_inline::$1 && (bool~) bool_const_inline::$2
Rewriting || if()-condition to two if()s [16] (bool) bool_const_vars::b#0 ← (bool~) bool_const_vars::$8 || false
Rewriting && if()-condition to two if()s [15] (bool~) bool_const_vars::$8 ← (bool) bool_const_vars::b1#0 && (bool~) bool_const_vars::$7
Rewriting || if()-condition to two if()s [10] (bool) bool_const_vars::b1#0 ← (bool~) bool_const_vars::$0 || (bool~) bool_const_vars::$2
Rewriting || if()-condition to two if()s [27] (bool~) bool_const_inline::$7 ← (bool~) bool_const_inline::$4 || (bool~) bool_const_inline::$6
Rewriting || if()-condition to two if()s [25] (bool~) bool_const_inline::$4 ← (bool~) bool_const_inline::$0 || (bool~) bool_const_inline::$3
Rewriting ! if()-condition to reversed if() [14] (bool~) bool_const_vars::$7 ← ! (bool) bool_const_vars::b2#0
Rewriting || if()-condition to two if()s [13] (bool) bool_const_vars::b2#0 ← (bool~) bool_const_vars::$4 || (bool~) bool_const_vars::$5
Rewriting && if()-condition to two if()s [24] (bool~) bool_const_inline::$3 ← (bool~) bool_const_inline::$1 && (bool~) bool_const_inline::$2
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant right-side identified [8] (bool~) bool_const_vars::$0 ← (const byte) bool_const_vars::a == (byte) $f
Constant right-side identified [10] (bool~) bool_const_vars::$2 ← (byte) $15 >= (const byte) bool_const_vars::a
Constant right-side identified [13] (bool~) bool_const_vars::$4 ← (const byte) bool_const_vars::a != (byte) $2c
Constant right-side identified [14] (bool~) bool_const_vars::$5 ← (const byte) bool_const_vars::a >= (byte) -8
Constant right-side identified [25] (bool~) bool_const_inline::$0 ← (const byte) bool_const_inline::a != (byte) $2c
Constant right-side identified [26] (bool~) bool_const_inline::$1 ← (const byte) bool_const_inline::a >= (byte) -8
Constant right-side identified [27] (bool~) bool_const_inline::$2 ← (const byte) bool_const_inline::a == (byte) $f
Constant right-side identified [31] (bool~) bool_const_inline::$6 ← (byte) $15 >= (const byte) bool_const_inline::a
Constant right-side identified [9] (bool~) bool_const_vars::$2 ← (byte) $15 >= (const byte) bool_const_vars::a
Constant right-side identified [11] (bool~) bool_const_vars::$4 ← (const byte) bool_const_vars::a != (byte) $2c
Constant right-side identified [12] (bool~) bool_const_vars::$5 ← (const byte) bool_const_vars::a >= (byte) -8
Constant right-side identified [21] (bool~) bool_const_inline::$0 ← (const byte) bool_const_inline::a != (byte) $2c
Constant right-side identified [22] (bool~) bool_const_inline::$1 ← (const byte) bool_const_inline::a >= (byte) -8
Constant right-side identified [23] (bool~) bool_const_inline::$2 ← (const byte) bool_const_inline::a == (byte) $f
Constant right-side identified [26] (bool~) bool_const_inline::$6 ← (byte) $15 >= (const byte) bool_const_inline::a
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const bool) bool_const_vars::$0 = bool_const_vars::a==$f
Constant (const bool) bool_const_vars::$2 = $15>=bool_const_vars::a
@ -232,8 +232,8 @@ Constant (const bool) bool_const_inline::$2 = bool_const_inline::a==$f
Constant (const bool) bool_const_inline::$6 = $15>=bool_const_inline::a
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [4] if((const bool) bool_const_if::b) goto bool_const_if::@1
if() condition always false - eliminating [21] if((const bool) bool_const_vars::$0) goto bool_const_vars::@6
if() condition always true - replacing block destination [33] if((const bool) bool_const_inline::$0) goto bool_const_inline::@1
if() condition always false - eliminating [17] if((const bool) bool_const_vars::$0) goto bool_const_vars::@6
if() condition always true - replacing block destination [28] if((const bool) bool_const_inline::$0) goto bool_const_inline::@1
if() condition always false - eliminating if(false) goto bool_const_vars::@1
if() condition always true - replacing block destination if((const bool) bool_const_vars::$4) goto bool_const_vars::@5
if() condition always true - replacing block destination if((const bool) bool_const_vars::$2) goto bool_const_vars::@6

View File

@ -139,12 +139,12 @@ Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) isSet::i#1 (byte) isSet::i#0
Identical Phi Values (bool) isSet::b#1 (bool) isSet::b#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$3 [18] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1
Simple Condition (bool~) main::$3 [13] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::i#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [16] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [18] if(main::i#1!=rangelast(0,$64)) goto main::@1 to (number) $65
Resolved ranged next value [11] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [13] if(main::i#1!=rangelast(0,$64)) goto main::@1 to (number) $65
Adding number conversion cast (unumber) $65 in if((byte) main::i#1!=(number) $65) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast $65

View File

@ -80,15 +80,15 @@ Alias (byte) main::i#2 = (byte) main::i#4
Successful SSA optimization Pass2AliasElimination
Alias (byte) main::i#2 = (byte) main::i#3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$5 [11] if((byte) main::i#1!=rangelast(0,$14)) goto main::@1
Simple Condition (bool~) main::$5 [10] if((byte) main::i#1!=rangelast(0,$14)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [6] (bool~) main::$4 ← ! (bool~) main::$3
Rewriting && if()-condition to two if()s [5] (bool~) main::$3 ← (bool~) main::$0 && (bool~) main::$2
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant (const byte) main::i#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [9] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [11] if(main::i#1!=rangelast(0,$14)) goto main::@1 to (number) $15
Resolved ranged next value [8] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [10] if(main::i#1!=rangelast(0,$14)) goto main::@1 to (number) $15
Adding number conversion cast (unumber) $15 in if((byte) main::i#1!=(number) $15) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast $15

View File

@ -61,7 +61,7 @@ Finalized unsigned number type (byte) 2
Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (bool*) main::bscreen#1 = (bool*~) main::$0 (bool*) main::bscreen#3
Successful SSA optimization Pass2AliasElimination
Rewriting ! if()-condition to reversed if() [6] (bool~) main::$1 ← ! *((bool*) main::bscreen#1)
Rewriting ! if()-condition to reversed if() [5] (bool~) main::$1 ← ! *((bool*) main::bscreen#1)
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant (const bool*) main::bscreen#0 = (bool*) 1024
Successful SSA optimization Pass2ConstantIdentification

View File

@ -373,33 +373,33 @@ Alias (byte) bool_or::i#2 = (byte) bool_or::i#5
Alias (byte) bool_not::i#2 = (byte) bool_not::i#5
Alias (byte) bool_complex::i#2 = (byte) bool_complex::i#5
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) bool_and::$4 [22] if((byte) bool_and::i#1!=rangelast(0,$14)) goto bool_and::@1
Simple Condition (bool~) bool_or::$4 [41] if((byte) bool_or::i#1!=rangelast(0,$14)) goto bool_or::@1
Simple Condition (bool~) bool_not::$5 [61] if((byte) bool_not::i#1!=rangelast(0,$14)) goto bool_not::@1
Simple Condition (bool~) bool_complex::$7 [85] if((byte) bool_complex::i#1!=rangelast(0,$14)) goto bool_complex::@1
Simple Condition (bool~) bool_and::$4 [16] if((byte) bool_and::i#1!=rangelast(0,$14)) goto bool_and::@1
Simple Condition (bool~) bool_or::$4 [29] if((byte) bool_or::i#1!=rangelast(0,$14)) goto bool_or::@1
Simple Condition (bool~) bool_not::$5 [43] if((byte) bool_not::i#1!=rangelast(0,$14)) goto bool_not::@1
Simple Condition (bool~) bool_complex::$7 [59] if((byte) bool_complex::i#1!=rangelast(0,$14)) goto bool_complex::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting && if()-condition to two if()s [12] (bool) bool_and::o3#0 ← (bool) bool_and::o1#0 && (bool) bool_and::o2#0
Rewriting || if()-condition to two if()s [31] (bool) bool_or::o3#0 ← (bool) bool_or::o1#0 || (bool) bool_or::o2#0
Rewriting ! if()-condition to reversed if() [51] (bool) bool_not::o3#0 ← ! (bool~) bool_not::$3
Rewriting || if()-condition to two if()s [50] (bool~) bool_not::$3 ← (bool) bool_not::o1#0 || (bool) bool_not::o2#0
Rewriting || if()-condition to two if()s [75] (bool) bool_complex::o5#0 ← (bool) bool_complex::o3#0 || (bool) bool_complex::o4#0
Rewriting && if()-condition to two if()s [70] (bool) bool_complex::o3#0 ← (bool) bool_complex::o1#0 && (bool) bool_complex::o2#0
Rewriting ! if()-condition to reversed if() [73] (bool) bool_complex::o4#0 ← ! (bool~) bool_complex::$4
Rewriting || if()-condition to two if()s [72] (bool~) bool_complex::$4 ← (bool) bool_complex::o1#0 || (bool) bool_complex::o2#0
Rewriting && if()-condition to two if()s [10] (bool) bool_and::o3#0 ← (bool) bool_and::o1#0 && (bool) bool_and::o2#0
Rewriting || if()-condition to two if()s [23] (bool) bool_or::o3#0 ← (bool) bool_or::o1#0 || (bool) bool_or::o2#0
Rewriting ! if()-condition to reversed if() [37] (bool) bool_not::o3#0 ← ! (bool~) bool_not::$3
Rewriting || if()-condition to two if()s [36] (bool~) bool_not::$3 ← (bool) bool_not::o1#0 || (bool) bool_not::o2#0
Rewriting || if()-condition to two if()s [53] (bool) bool_complex::o5#0 ← (bool) bool_complex::o3#0 || (bool) bool_complex::o4#0
Rewriting && if()-condition to two if()s [50] (bool) bool_complex::o3#0 ← (bool) bool_complex::o1#0 && (bool) bool_complex::o2#0
Rewriting ! if()-condition to reversed if() [52] (bool) bool_complex::o4#0 ← ! (bool~) bool_complex::$4
Rewriting || if()-condition to two if()s [51] (bool~) bool_complex::$4 ← (bool) bool_complex::o1#0 || (bool) bool_complex::o2#0
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant (const byte) bool_and::i#0 = 0
Constant (const byte) bool_or::i#0 = 0
Constant (const byte) bool_not::i#0 = 0
Constant (const byte) bool_complex::i#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [20] bool_and::i#1 ← ++ bool_and::i#2 to ++
Resolved ranged comparison value [22] if(bool_and::i#1!=rangelast(0,$14)) goto bool_and::@1 to (number) $15
Resolved ranged next value [39] bool_or::i#1 ← ++ bool_or::i#2 to ++
Resolved ranged comparison value [41] if(bool_or::i#1!=rangelast(0,$14)) goto bool_or::@1 to (number) $15
Resolved ranged next value [59] bool_not::i#1 ← ++ bool_not::i#2 to ++
Resolved ranged comparison value [61] if(bool_not::i#1!=rangelast(0,$14)) goto bool_not::@1 to (number) $15
Resolved ranged next value [83] bool_complex::i#1 ← ++ bool_complex::i#2 to ++
Resolved ranged comparison value [85] if(bool_complex::i#1!=rangelast(0,$14)) goto bool_complex::@1 to (number) $15
Resolved ranged next value [14] bool_and::i#1 ← ++ bool_and::i#2 to ++
Resolved ranged comparison value [16] if(bool_and::i#1!=rangelast(0,$14)) goto bool_and::@1 to (number) $15
Resolved ranged next value [27] bool_or::i#1 ← ++ bool_or::i#2 to ++
Resolved ranged comparison value [29] if(bool_or::i#1!=rangelast(0,$14)) goto bool_or::@1 to (number) $15
Resolved ranged next value [41] bool_not::i#1 ← ++ bool_not::i#2 to ++
Resolved ranged comparison value [43] if(bool_not::i#1!=rangelast(0,$14)) goto bool_not::@1 to (number) $15
Resolved ranged next value [57] bool_complex::i#1 ← ++ bool_complex::i#2 to ++
Resolved ranged comparison value [59] if(bool_complex::i#1!=rangelast(0,$14)) goto bool_complex::@1 to (number) $15
Adding number conversion cast (unumber) $15 in if((byte) bool_and::i#1!=(number) $15) goto bool_and::@1
Adding number conversion cast (unumber) $15 in if((byte) bool_or::i#1!=(number) $15) goto bool_or::@1
Adding number conversion cast (unumber) $15 in if((byte) bool_not::i#1!=(number) $15) goto bool_not::@1

View File

@ -204,12 +204,12 @@ Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) main::yd#1 (byte) main::yd#0
Identical Phi Values (byte) main::xd#1 (byte) main::xd#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$10 [22] if((byte) main::xd#0>(byte) main::e#1) goto main::@2
Simple Condition (bool~) main::$15 [26] if((byte) main::x#1<(byte~) main::$14) goto main::@1
Simple Condition (bool~) main::$10 [14] if((byte) main::xd#0>(byte) main::e#1) goto main::@2
Simple Condition (bool~) main::$15 [18] if((byte) main::x#1<(byte~) main::$14) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [0] (byte) main::xd#0 ← (const byte) main::x1 - (const byte) main::x0
Constant right-side identified [2] (byte) main::yd#0 ← (const byte) main::y1 - (const byte) main::y0
Constant right-side identified [24] (byte~) main::$14 ← (const byte) main::x1 + (byte) 1
Constant right-side identified [1] (byte) main::yd#0 ← (const byte) main::y1 - (const byte) main::y0
Constant right-side identified [16] (byte~) main::$14 ← (const byte) main::x1 + (byte) 1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::xd#0 = main::x1-main::x0
Constant (const byte) main::yd#0 = main::y1-main::y0

View File

@ -208,12 +208,12 @@ Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) main::yd#1 (byte) main::yd#0
Identical Phi Values (byte) main::xd#1 (byte) main::xd#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$9 [21] if((byte) main::xd#0>=(byte) main::e#1) goto main::@2
Simple Condition (bool~) main::$14 [25] if((byte) main::x#1<(byte~) main::$13) goto main::@1
Simple Condition (bool~) main::$9 [13] if((byte) main::xd#0>=(byte) main::e#1) goto main::@2
Simple Condition (bool~) main::$14 [17] if((byte) main::x#1<(byte~) main::$13) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [0] (byte) main::xd#0 ← (const byte) main::x1 - (const byte) main::x0
Constant right-side identified [2] (byte) main::yd#0 ← (const byte) main::y1 - (const byte) main::y0
Constant right-side identified [23] (byte~) main::$13 ← (const byte) main::x1 + (byte) 1
Constant right-side identified [1] (byte) main::yd#0 ← (const byte) main::y1 - (const byte) main::y0
Constant right-side identified [15] (byte~) main::$13 ← (const byte) main::x1 + (byte) 1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::xd#0 = main::x1-main::x0
Constant (const byte) main::yd#0 = main::y1-main::y0
@ -221,11 +221,11 @@ Constant (const byte) main::x#0 = main::x0
Constant (const byte) main::y#0 = main::y0
Constant (const byte) main::$13 = main::x1+1
Successful SSA optimization Pass2ConstantIdentification
De-inlining pointer[w] to *(pointer+w) [12] *((const byte*) main::screen + (word) main::idx#3) ← (const byte) main::STAR
De-inlining pointer[w] to *(pointer+w) [8] *((const byte*) main::screen + (word) main::idx#3) ← (const byte) main::STAR
Successful SSA optimization Pass2DeInlineWordDerefIdx
Simplifying expression containing zero main::x1 in
Simplifying expression containing zero main::y1 in
Simplifying expression containing zero main::$3 in [9] (word) main::idx#0 ← (const byte) main::x#0 + (byte~) main::$3
Simplifying expression containing zero main::$3 in [6] (word) main::idx#0 ← (const byte) main::x#0 + (byte~) main::$3
Successful SSA optimization PassNSimplifyExpressionWithZero
Alias (word) main::idx#0 = (byte~) main::$3
Successful SSA optimization Pass2AliasElimination

View File

@ -1471,13 +1471,13 @@ Identical Phi Values (byte*) print_char_cursor#143 (byte*) print_char_cursor#26
Identical Phi Values (byte*) print_char_cursor#146 (byte*) print_char_cursor#26
Identical Phi Values (byte*) print_char_cursor#148 (byte*) print_char_cursor#26
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str::$0 [26] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#26) goto print_ln::@1
Simple Condition (bool~) print_sword::$0 [48] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1
Simple Condition (bool~) print_sbyte::$0 [72] if((signed byte) print_sbyte::b#1<(signed byte) 0) goto print_sbyte::@1
Simple Condition (bool~) print_sdword::$0 [124] if((signed dword) print_sdword::dw#3<(signed byte) 0) goto print_sdword::@1
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str::$0 [17] if((byte) 0!=*((byte*) print_str::str#5)) goto print_str::@2
Simple Condition (bool~) print_ln::$1 [26] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#26) goto print_ln::@1
Simple Condition (bool~) print_sword::$0 [30] if((signed word) print_sword::w#10<(signed byte) 0) goto print_sword::@1
Simple Condition (bool~) print_sbyte::$0 [45] if((signed byte) print_sbyte::b#1<(signed byte) 0) goto print_sbyte::@1
Simple Condition (bool~) print_sdword::$0 [76] if((signed dword) print_sdword::dw#3<(signed byte) 0) goto print_sdword::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) print_line_cursor#0 = (byte*) 1024
Constant (const byte) print_char::ch#0 = '-'
@ -1519,8 +1519,8 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always true - replacing block destination [72] if((const signed byte) print_sbyte::b#1<(signed byte) 0) goto print_sbyte::@1
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always true - replacing block destination [45] if((const signed byte) print_sbyte::b#1<(signed byte) 0) goto print_sbyte::@1
Successful SSA optimization Pass2ConstantIfs
Eliminating unused constant (const void*) memset::return#2
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -662,11 +662,11 @@ Simple Condition (bool~) main::$1 [32] if((byte) main::j#1!=rangelast(0,$f)) got
Simple Condition (bool~) main::$2 [40] if(*((const byte*) RASTER)!=(byte) main::rst#0) goto main::@6
Simple Condition (bool~) main::$6 [50] if((byte) main::rst#1!=(byte) $f2) goto main::@12
Simple Condition (bool~) gfx_init_screen0::$4 [68] if((byte) gfx_init_screen0::cx#1!=rangelast(0,$27)) goto gfx_init_screen0::@2
Simple Condition (bool~) gfx_init_screen0::$5 [72] if((byte) gfx_init_screen0::cy#1!=rangelast(0,$18)) goto gfx_init_screen0::@1
Simple Condition (bool~) gfx_init_plane_charset8::$4 [95] if((byte~) gfx_init_plane_charset8::$2==(byte) 0) goto gfx_init_plane_charset8::@4
Simple Condition (bool~) gfx_init_plane_charset8::$6 [104] if((byte) gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3
Simple Condition (bool~) gfx_init_plane_charset8::$7 [110] if((byte) gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2
Simple Condition (bool~) gfx_init_plane_charset8::$8 [114] if((byte) gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1
Simple Condition (bool~) gfx_init_screen0::$5 [71] if((byte) gfx_init_screen0::cy#1!=rangelast(0,$18)) goto gfx_init_screen0::@1
Simple Condition (bool~) gfx_init_plane_charset8::$4 [92] if((byte~) gfx_init_plane_charset8::$2==(byte) 0) goto gfx_init_plane_charset8::@4
Simple Condition (bool~) gfx_init_plane_charset8::$6 [100] if((byte) gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3
Simple Condition (bool~) gfx_init_plane_charset8::$7 [103] if((byte) gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2
Simple Condition (bool~) gfx_init_plane_charset8::$8 [106] if((byte) gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::j#0 = 0
Constant (const byte) main::rst#0 = $42
@ -691,14 +691,14 @@ Resolved ranged next value [30] main::j#1 ← ++ main::j#2 to ++
Resolved ranged comparison value [32] if(main::j#1!=rangelast(0,$f)) goto main::@1 to (number) $10
Resolved ranged next value [66] gfx_init_screen0::cx#1 ← ++ gfx_init_screen0::cx#2 to ++
Resolved ranged comparison value [68] if(gfx_init_screen0::cx#1!=rangelast(0,$27)) goto gfx_init_screen0::@2 to (number) $28
Resolved ranged next value [70] gfx_init_screen0::cy#1 ← ++ gfx_init_screen0::cy#4 to ++
Resolved ranged comparison value [72] if(gfx_init_screen0::cy#1!=rangelast(0,$18)) goto gfx_init_screen0::@1 to (number) $19
Resolved ranged next value [102] gfx_init_plane_charset8::cp#1 ← ++ gfx_init_plane_charset8::cp#2 to ++
Resolved ranged comparison value [104] if(gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3 to (number) 8
Resolved ranged next value [108] gfx_init_plane_charset8::cr#1 ← ++ gfx_init_plane_charset8::cr#6 to ++
Resolved ranged comparison value [110] if(gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2 to (number) 8
Resolved ranged next value [112] gfx_init_plane_charset8::ch#1 ← ++ gfx_init_plane_charset8::ch#8 to ++
Resolved ranged comparison value [114] if(gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1 to (number) 0
Resolved ranged next value [69] gfx_init_screen0::cy#1 ← ++ gfx_init_screen0::cy#4 to ++
Resolved ranged comparison value [71] if(gfx_init_screen0::cy#1!=rangelast(0,$18)) goto gfx_init_screen0::@1 to (number) $19
Resolved ranged next value [98] gfx_init_plane_charset8::cp#1 ← ++ gfx_init_plane_charset8::cp#2 to ++
Resolved ranged comparison value [100] if(gfx_init_plane_charset8::cp#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@3 to (number) 8
Resolved ranged next value [101] gfx_init_plane_charset8::cr#1 ← ++ gfx_init_plane_charset8::cr#6 to ++
Resolved ranged comparison value [103] if(gfx_init_plane_charset8::cr#1!=rangelast(0,7)) goto gfx_init_plane_charset8::@2 to (number) 8
Resolved ranged next value [104] gfx_init_plane_charset8::ch#1 ← ++ gfx_init_plane_charset8::ch#8 to ++
Resolved ranged comparison value [106] if(gfx_init_plane_charset8::ch#1!=rangelast(0,$ff)) goto gfx_init_plane_charset8::@1 to (number) 0
Simplifying constant evaluating to zero (word)(const byte*) CHARSET8&(word) $3fff in
Simplifying constant evaluating to zero <(const byte*) SCREEN in [12] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) SCREEN
Simplifying constant evaluating to zero <(const byte*) CHARSET8 in [18] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) CHARSET8

View File

@ -428,9 +428,9 @@ Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$1 [26] if((byte) main::j#1!=rangelast(0,$f)) goto main::@1
Simple Condition (bool~) main::$2 [34] if(*((const byte*) RASTER)!=(byte) main::rst#0) goto main::@6
Simple Condition (bool~) main::$6 [44] if((byte) main::rst#1!=(byte) $f2) goto main::@12
Simple Condition (bool~) gfx_init_chunky::$3 [58] if((byte*) gfx_init_chunky::gfxb#3!=(word) $8000) goto gfx_init_chunky::@3
Simple Condition (bool~) gfx_init_chunky::$7 [67] if((word) gfx_init_chunky::x#1!=rangelast(0,$13f)) goto gfx_init_chunky::@2
Simple Condition (bool~) gfx_init_chunky::$8 [77] if((byte) gfx_init_chunky::y#1!=rangelast(0,$32)) goto gfx_init_chunky::@1
Simple Condition (bool~) gfx_init_chunky::$3 [56] if((byte*) gfx_init_chunky::gfxb#3!=(word) $8000) goto gfx_init_chunky::@3
Simple Condition (bool~) gfx_init_chunky::$7 [64] if((word) gfx_init_chunky::x#1!=rangelast(0,$13f)) goto gfx_init_chunky::@2
Simple Condition (bool~) gfx_init_chunky::$8 [71] if((byte) gfx_init_chunky::y#1!=rangelast(0,$32)) goto gfx_init_chunky::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::j#0 = 0
Constant (const byte) main::rst#0 = $42
@ -447,10 +447,10 @@ if() condition always true - replacing block destination [27] if(true) goto main
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [24] main::j#1 ← ++ main::j#2 to ++
Resolved ranged comparison value [26] if(main::j#1!=rangelast(0,$f)) goto main::@1 to (number) $10
Resolved ranged next value [65] gfx_init_chunky::x#1 ← ++ gfx_init_chunky::x#2 to ++
Resolved ranged comparison value [67] if(gfx_init_chunky::x#1!=rangelast(0,$13f)) goto gfx_init_chunky::@2 to (number) $140
Resolved ranged next value [75] gfx_init_chunky::y#1 ← ++ gfx_init_chunky::y#6 to ++
Resolved ranged comparison value [77] if(gfx_init_chunky::y#1!=rangelast(0,$32)) goto gfx_init_chunky::@1 to (number) $33
Resolved ranged next value [62] gfx_init_chunky::x#1 ← ++ gfx_init_chunky::x#2 to ++
Resolved ranged comparison value [64] if(gfx_init_chunky::x#1!=rangelast(0,$13f)) goto gfx_init_chunky::@2 to (number) $140
Resolved ranged next value [69] gfx_init_chunky::y#1 ← ++ gfx_init_chunky::y#6 to ++
Resolved ranged comparison value [71] if(gfx_init_chunky::y#1!=rangelast(0,$32)) goto gfx_init_chunky::@1 to (number) $33
Simplifying constant evaluating to zero <(const byte*) CHUNKY in [12] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) CHUNKY
Simplifying constant evaluating to zero (byte)(word)(const byte*) CHUNKY&(word) $3fff/(byte) $40|>(word)(const byte*) CHUNKY&(word) $3fff/(byte) 4 in [20] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) CHUNKY&(word) $3fff/(byte) $40|>(word)(const byte*) CHUNKY&(word) $3fff/(byte) 4
Successful SSA optimization PassNSimplifyConstantZero

View File

@ -229,12 +229,12 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte) main::r#2 = (byte) main::r#3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$1 [36] if((byte~) main::$0!=(byte) 0) goto main::@2
Simple Condition (bool~) main::$2 [41] if((byte) main::r#1!=rangelast(0,7)) goto main::@2
Simple Condition (bool~) main::$2 [40] if((byte) main::r#1!=rangelast(0,7)) goto main::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::r#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [39] main::r#1 ← ++ main::r#2 to ++
Resolved ranged comparison value [41] if(main::r#1!=rangelast(0,7)) goto main::@2 to (number) 8
Resolved ranged next value [38] main::r#1 ← ++ main::r#2 to ++
Resolved ranged comparison value [40] if(main::r#1!=rangelast(0,7)) goto main::@2 to (number) 8
Simplifying constant evaluating to zero <(word) $100 in [7] *((const byte*) DTV_BLITTER_SRCA_LIN_LO) ← <(word) $100
Simplifying constant evaluating to zero <(word) $100 in [15] *((const byte*) DTV_BLITTER_SRCB_LIN_LO) ← <(word) $100
Simplifying constant evaluating to zero <(const byte*) SCREEN in [18] *((const byte*) DTV_BLITTER_DEST_LO) ← <(const byte*) SCREEN

View File

@ -165,15 +165,15 @@
.const FORM_CURSOR_BLINK = $28
// Number of form fields
.const form_fields_cnt = $24
.label print_char_cursor = $b
.label print_line_cursor = $e
.label print_char_cursor = $a
.label print_line_cursor = $d
// Keyboard event buffer size. The number of events currently in the event buffer
.label keyboard_events_size = 8
.label keyboard_events_size = $1e
// Counts down to blink for form cursor (it is inversed in the lower half)
// Always blink cursor in new field
.label form_cursor_count = $10
.label form_cursor_count = $f
// Current selected field in the form
.label form_field_idx = 9
.label form_field_idx = 8
main: {
sei
// Disable normal interrupt (prevent keyboard reading glitches and allows to hide basic/kernal)
@ -200,22 +200,22 @@ main: {
// Change graphics mode to show the selected graphics mode
gfx_mode: {
.label __20 = 2
.label __24 = $1a
.label __26 = $1c
.label __24 = $19
.label __26 = $1b
.label __34 = 2
.label __38 = $16
.label __40 = $18
.label __38 = $11
.label __40 = $17
.label __47 = 6
.label __48 = 6
.label __49 = 6
.label __50 = $1f
.label __52 = $e
.label __53 = $e
.label __50 = $1d
.label __52 = $d
.label __53 = $d
.label plane_a = 2
.label plane_b = 2
.label vic_colors = 6
.label col = $b
.label cy = $a
.label col = $a
.label cy = 9
lda form_ctrl_line
cmp #0
beq b1
@ -539,9 +539,9 @@ keyboard_event_get: {
// Handles debounce and only generates events when the status of a key changes.
// Also stores current status of modifiers in keyboard_modifiers.
keyboard_event_scan: {
.label row_scan = $1f
.label keycode = $d
.label row = $a
.label row_scan = $1d
.label keycode = $c
.label row = 9
lda #0
sta.z keycode
sta.z row
@ -641,10 +641,10 @@ keyboard_event_scan: {
}
// Determine if a specific key is currently pressed based on the last keyboard_event_scan()
// Returns 0 is not pressed and non-0 if pressed
// keyboard_event_pressed(byte zp($d) keycode)
// keyboard_event_pressed(byte zp($c) keycode)
keyboard_event_pressed: {
.label row_bits = $1f
.label keycode = $d
.label row_bits = $1d
.label keycode = $c
lda.z keycode
lsr
lsr
@ -719,7 +719,7 @@ get_vic_screen: {
// Get the VIC charset/bitmap address from the index
// get_vic_charset(byte register(A) idx)
get_vic_charset: {
.label return = $e
.label return = $d
cmp #0
beq __b1
cmp #1
@ -936,7 +936,7 @@ get_plane: {
}
// Show the form - and let the user change values
form_mode: {
.label preset_current = $11
.label preset_current = $10
lda #<COLS
sta.z print_set_screen.screen
lda #>COLS
@ -1151,9 +1151,9 @@ render_preset_name: {
.byte 0
}
// Print a string at a specific screen position
// print_str_at(byte* zp(6) str, byte* zp($b) at)
// print_str_at(byte* zp(6) str, byte* zp($a) at)
print_str_at: {
.label at = $b
.label at = $a
.label str = 6
lda #<FORM_SCREEN+$28*2+$a
sta.z at
@ -1199,23 +1199,29 @@ form_render_values: {
// field_idx is the index of the field to get the screen address for
// form_field_ptr(byte register(X) field_idx)
form_field_ptr: {
.label line = $1a
.label x = $1e
lda form_fields_y,x
tay
.label line = $19
.label x = $1d
.label return = $1b
ldy form_fields_y,x
lda form_line_hi,y
sta.z line+1
lda form_line_lo,y
sta.z line
lda form_fields_x,x
sta.z x
clc
adc.z line
sta.z return
lda #0
adc.z line+1
sta.z return+1
rts
}
// Apply a form value preset to the form values
// idx is the ID of the preset
// apply_preset(byte register(A) idx)
apply_preset: {
.label preset = $e
.label preset = $d
cmp #0
beq b1
cmp #1
@ -1319,6 +1325,7 @@ apply_preset: {
// Reads keyboard and allows the user to navigate and change the fields of the form
// Returns 0 if space is not pressed, non-0 if space is pressed
form_control: {
.label field = $1b
ldx.z form_field_idx
jsr form_field_ptr
dec.z form_cursor_count
@ -1338,19 +1345,19 @@ form_control: {
jmp __b2
!__b2:
lda #$7f
ldy.z form_field_ptr.x
and (form_field_ptr.line),y
sta (form_field_ptr.line),y
ldy #0
and (field),y
sta (field),y
__b3:
jsr keyboard_event_scan
jsr keyboard_event_get
cmp #KEY_CRSR_DOWN
bne __b4
lda #$7f
ldy.z form_field_ptr.x
and (form_field_ptr.line),y
ldy #0
and (field),y
// Unblink the cursor
sta (form_field_ptr.line),y
sta (field),y
txa
and #KEY_MODIFIER_SHIFT
cmp #0
@ -1394,8 +1401,8 @@ form_control: {
ldx.z form_field_idx
ldy form_fields_val,x
lda print_hextab,y
ldy.z form_field_ptr.x
sta (form_field_ptr.line),y
ldy #0
sta (field),y
b1:
ldx #0
rts
@ -1416,9 +1423,9 @@ form_control: {
rts
__b2:
lda #$80
ldy.z form_field_ptr.x
ora (form_field_ptr.line),y
sta (form_field_ptr.line),y
ldy #0
ora (field),y
sta (field),y
jmp __b3
}
// Set the screen to use for the form.
@ -1517,13 +1524,13 @@ print_cls: {
rts
}
// Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str.
// memset(void* zp($b) str)
// memset(void* zp($a) str)
memset: {
.const c = ' '
.const num = $3e8
.label end = $1c
.label dst = $b
.label str = $b
.label end = $11
.label dst = $a
.label str = $a
lda.z str
clc
adc #<num
@ -1550,9 +1557,9 @@ memset: {
jmp __b2
}
// Set the screen to print on. Also resets current line/char cursor.
// print_set_screen(byte* zp($e) screen)
// print_set_screen(byte* zp($d) screen)
print_set_screen: {
.label screen = $e
.label screen = $d
rts
}
// Initialize the different graphics in the memory
@ -1590,16 +1597,16 @@ gfx_init_plane_full: {
rts
}
// Initialize 320*200 1bpp pixel ($2000) plane with identical bytes
// gfx_init_plane_fill(dword zp(2) plane_addr, byte zp(8) fill)
// gfx_init_plane_fill(dword zp(2) plane_addr, byte zp($1e) fill)
gfx_init_plane_fill: {
.label __0 = $12
.label __1 = $16
.label __4 = $e
.label __5 = $e
.label gfxb = $e
.label by = $10
.label __0 = $13
.label __1 = $17
.label __4 = $d
.label __5 = $d
.label gfxb = $d
.label by = $f
.label plane_addr = 2
.label fill = 8
.label fill = $1e
lda.z plane_addr
asl
sta.z __0
@ -1709,7 +1716,7 @@ gfx_init_plane_vertical2: {
gfx_init_plane_horisontal2: {
.const gfxbCpuBank = PLANE_HORISONTAL2/$4000
.label gfxa = 6
.label ay = 9
.label ay = 8
lda #gfxbCpuBank
jsr dtvSetCpuBankSegment1
lda #<$4000
@ -1748,7 +1755,7 @@ gfx_init_plane_horisontal2: {
gfx_init_plane_vertical: {
.const gfxbCpuBank = PLANE_VERTICAL/$4000
.label gfxb = 6
.label by = $11
.label by = $10
lda #gfxbCpuBank
jsr dtvSetCpuBankSegment1
lda #0
@ -1782,7 +1789,7 @@ gfx_init_plane_vertical: {
gfx_init_plane_horisontal: {
.const gfxbCpuBank = PLANE_HORISONTAL/$4000
.label gfxa = 6
.label ay = $a
.label ay = 9
lda #gfxbCpuBank
jsr dtvSetCpuBankSegment1
lda #<$4000
@ -1830,12 +1837,12 @@ gfx_init_plane_horisontal: {
gfx_init_plane_charset8: {
// 8bpp cells for Plane B (charset) - ROM charset with 256 colors
.const gfxbCpuBank = PLANE_CHARSET8/$4000
.label bits = 8
.label bits = $1e
.label chargen = 6
.label gfxa = $b
.label col = $10
.label cr = $d
.label ch = $a
.label gfxa = $a
.label col = $f
.label cr = $c
.label ch = 9
lda #gfxbCpuBank
jsr dtvSetCpuBankSegment1
lda #PROCPORT_RAM_CHARROM
@ -1900,10 +1907,10 @@ gfx_init_plane_charset8: {
}
// Initialize 8BPP Chunky Bitmap (contains 8bpp pixels)
gfx_init_plane_8bppchunky: {
.label __5 = $18
.label gfxb = $e
.label x = $b
.label y = $d
.label __5 = $19
.label gfxb = $d
.label x = $a
.label y = $c
lda #PLANE_8BPP_CHUNKY/$4000
jsr dtvSetCpuBankSegment1
ldx #PLANE_8BPP_CHUNKY/$4000+1
@ -1967,7 +1974,7 @@ gfx_init_plane_8bppchunky: {
// Initialize VIC bitmap
gfx_init_vic_bitmap: {
.const lines_cnt = 9
.label l = 8
.label l = $1e
jsr bitmap_init
jsr bitmap_clear
lda #0
@ -1993,12 +2000,12 @@ gfx_init_vic_bitmap: {
lines_y: .byte 0, 0, $c7, $c7, 0, 0, $64, $c7, $64, 0
}
// Draw a line on the bitmap
// bitmap_line(byte zp(9) x0, byte register(X) x1, byte zp($d) y0, byte zp($11) y1)
// bitmap_line(byte zp(8) x0, byte register(X) x1, byte zp($c) y0, byte zp($10) y1)
bitmap_line: {
.label xd = $1f
.label x0 = 9
.label y0 = $d
.label y1 = $11
.label xd = $1d
.label x0 = 8
.label y0 = $c
.label y1 = $10
txa
cmp.z x0
beq !+
@ -2099,14 +2106,14 @@ bitmap_line: {
jsr bitmap_line_xdyi
rts
}
// bitmap_line_xdyi(byte zp($a) x, byte zp($d) y, byte zp(9) x1, byte zp($1f) xd, byte zp($10) yd)
// bitmap_line_xdyi(byte zp(9) x, byte zp($c) y, byte zp(8) x1, byte zp($1d) xd, byte zp($f) yd)
bitmap_line_xdyi: {
.label x = $a
.label y = $d
.label x1 = 9
.label xd = $1f
.label yd = $10
.label e = $11
.label x = 9
.label y = $c
.label x1 = 8
.label xd = $1d
.label yd = $f
.label e = $10
lda.z yd
lsr
sta.z e
@ -2136,9 +2143,9 @@ bitmap_line_xdyi: {
}
// bitmap_plot(byte register(X) x, byte register(Y) y)
bitmap_plot: {
.label plotter_x = $1a
.label plotter_y = $1c
.label plotter = $1a
.label plotter_x = $19
.label plotter_y = $1b
.label plotter = $19
lda bitmap_plot_xhi,x
sta.z plotter_x+1
lda bitmap_plot_xlo,x
@ -2160,13 +2167,13 @@ bitmap_plot: {
sta (plotter),y
rts
}
// bitmap_line_ydxi(byte zp($a) y, byte register(X) x, byte zp($11) y1, byte zp(9) yd, byte zp($1f) xd)
// bitmap_line_ydxi(byte zp(9) y, byte register(X) x, byte zp($10) y1, byte zp(8) yd, byte zp($1d) xd)
bitmap_line_ydxi: {
.label y = $a
.label y1 = $11
.label yd = 9
.label xd = $1f
.label e = $d
.label y = 9
.label y1 = $10
.label yd = 8
.label xd = $1d
.label e = $c
lda.z xd
lsr
sta.z e
@ -2194,14 +2201,14 @@ bitmap_line_ydxi: {
bne __b1
rts
}
// bitmap_line_xdyd(byte zp($10) x, byte zp($d) y, byte zp(9) x1, byte zp($1f) xd, byte zp($a) yd)
// bitmap_line_xdyd(byte zp($f) x, byte zp($c) y, byte zp(8) x1, byte zp($1d) xd, byte zp(9) yd)
bitmap_line_xdyd: {
.label x = $10
.label y = $d
.label x1 = 9
.label xd = $1f
.label yd = $a
.label e = $11
.label x = $f
.label y = $c
.label x1 = 8
.label xd = $1d
.label yd = 9
.label e = $10
lda.z yd
lsr
sta.z e
@ -2229,13 +2236,13 @@ bitmap_line_xdyd: {
bne __b1
rts
}
// bitmap_line_ydxd(byte zp($10) y, byte register(X) x, byte zp($d) y1, byte zp($a) yd, byte zp($1f) xd)
// bitmap_line_ydxd(byte zp($f) y, byte register(X) x, byte zp($c) y1, byte zp(9) yd, byte zp($1d) xd)
bitmap_line_ydxd: {
.label y = $10
.label y1 = $d
.label yd = $a
.label xd = $1f
.label e = $11
.label y = $f
.label y1 = $c
.label yd = 9
.label xd = $1d
.label e = $10
lda.z xd
lsr
sta.z e
@ -2265,8 +2272,8 @@ bitmap_line_ydxd: {
}
// Clear all graphics on the bitmap
bitmap_clear: {
.label bitmap = $e
.label y = $1f
.label bitmap = $d
.label y = $1d
lda bitmap_plot_xlo
sta.z bitmap
lda bitmap_plot_xhi
@ -2294,8 +2301,8 @@ bitmap_clear: {
}
// Initialize the bitmap plotter tables for a specific bitmap
bitmap_init: {
.label __10 = $1f
.label yoffs = $b
.label __10 = $1d
.label yoffs = $a
ldy #$80
ldx #0
__b1:
@ -2345,9 +2352,9 @@ bitmap_init: {
rts
}
gfx_init_charset: {
.label charset = $e
.label chargen = $b
.label c = $d
.label charset = $d
.label chargen = $a
.label c = $c
lda #$32
sta PROCPORT
lda #0
@ -2387,8 +2394,8 @@ gfx_init_charset: {
}
// Initialize VIC screen 4 - all chars are 00
gfx_init_screen4: {
.label ch = $e
.label cy = $d
.label ch = $d
.label cy = $c
lda #0
sta.z cy
lda #<VIC_SCREEN4
@ -2416,9 +2423,9 @@ gfx_init_screen4: {
}
// Initialize VIC screen 3 ( value is %00xx00yy where xx is xpos and yy is ypos
gfx_init_screen3: {
.label __1 = $1e
.label ch = $16
.label cy = $10
.label __1 = $1d
.label ch = $11
.label cy = $f
lda #<VIC_SCREEN3
sta.z ch
lda #>VIC_SCREEN3
@ -2455,9 +2462,9 @@ gfx_init_screen3: {
}
// Initialize VIC screen 2 ( value is %ccccrrrr where cccc is (x+y mod $f) and rrrr is %1111-%cccc)
gfx_init_screen2: {
.label col2 = $1f
.label ch = $16
.label cy = $10
.label col2 = $1e
.label ch = $11
.label cy = $f
lda #<VIC_SCREEN2
sta.z ch
lda #>VIC_SCREEN2
@ -2500,8 +2507,8 @@ gfx_init_screen2: {
}
// Initialize VIC screen 1 ( value is %0000cccc where cccc is (x+y mod $f))
gfx_init_screen1: {
.label ch = $16
.label cy = $11
.label ch = $11
.label cy = $10
lda #<VIC_SCREEN1
sta.z ch
lda #>VIC_SCREEN1
@ -2532,9 +2539,9 @@ gfx_init_screen1: {
}
// Initialize VIC screen 0 ( value is %yyyyxxxx where yyyy is ypos and xxxx is xpos)
gfx_init_screen0: {
.label __1 = $1f
.label ch = $16
.label cy = $11
.label __1 = $1e
.label ch = $11
.label cy = $10
lda #<VIC_SCREEN0
sta.z ch
lda #>VIC_SCREEN0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -115,27 +115,27 @@
(byte) apply_preset::idx
(byte) apply_preset::idx#0 reg byte a 11.18181818181818
(byte*) apply_preset::preset
(byte*) apply_preset::preset#15 preset zp[2]:14 200.2
(byte*) apply_preset::preset#15 preset zp[2]:13 200.2
(void()) bitmap_clear()
(label) bitmap_clear::@1
(label) bitmap_clear::@2
(label) bitmap_clear::@3
(label) bitmap_clear::@return
(byte*) bitmap_clear::bitmap
(word) bitmap_clear::bitmap#0 bitmap zp[2]:14 2.0
(byte*) bitmap_clear::bitmap#1 bitmap zp[2]:14 42.599999999999994
(byte*) bitmap_clear::bitmap#2 bitmap zp[2]:14 157.0
(byte*) bitmap_clear::bitmap#3 bitmap zp[2]:14 24.0
(byte*) bitmap_clear::bitmap#5 bitmap zp[2]:14 4.0
(word) bitmap_clear::bitmap#0 bitmap zp[2]:13 2.0
(byte*) bitmap_clear::bitmap#1 bitmap zp[2]:13 42.599999999999994
(byte*) bitmap_clear::bitmap#2 bitmap zp[2]:13 157.0
(byte*) bitmap_clear::bitmap#3 bitmap zp[2]:13 24.0
(byte*) bitmap_clear::bitmap#5 bitmap zp[2]:13 4.0
(byte) bitmap_clear::x
(byte) bitmap_clear::x#1 reg byte x 151.5
(byte) bitmap_clear::x#2 reg byte x 67.33333333333333
(byte) bitmap_clear::y
(byte) bitmap_clear::y#1 y zp[1]:31 16.5
(byte) bitmap_clear::y#4 y zp[1]:31 3.6666666666666665
(byte) bitmap_clear::y#1 y zp[1]:29 16.5
(byte) bitmap_clear::y#4 y zp[1]:29 3.6666666666666665
(void()) bitmap_init((byte*) bitmap_init::bitmap)
(byte~) bitmap_init::$0 reg byte a 22.0
(byte~) bitmap_init::$10 zp[1]:31 5.5
(byte~) bitmap_init::$10 zp[1]:29 5.5
(byte~) bitmap_init::$7 reg byte a 22.0
(byte~) bitmap_init::$8 reg byte a 22.0
(byte~) bitmap_init::$9 reg byte a 22.0
@ -158,9 +158,9 @@
(byte) bitmap_init::y#1 reg byte x 16.5
(byte) bitmap_init::y#2 reg byte x 5.5
(byte*) bitmap_init::yoffs
(byte*) bitmap_init::yoffs#1 yoffs zp[2]:11 22.0
(byte*) bitmap_init::yoffs#2 yoffs zp[2]:11 6.875
(byte*) bitmap_init::yoffs#4 yoffs zp[2]:11 11.0
(byte*) bitmap_init::yoffs#1 yoffs zp[2]:10 22.0
(byte*) bitmap_init::yoffs#2 yoffs zp[2]:10 6.875
(byte*) bitmap_init::yoffs#4 yoffs zp[2]:10 11.0
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
(label) bitmap_line::@1
(label) bitmap_line::@10
@ -178,16 +178,16 @@
(label) bitmap_line::@9
(label) bitmap_line::@return
(byte) bitmap_line::x0
(byte) bitmap_line::x0#0 x0 zp[1]:9 1.260869565217391
(byte) bitmap_line::x0#0 x0 zp[1]:8 1.260869565217391
(byte) bitmap_line::x1
(byte) bitmap_line::x1#0 reg byte x 1.3181818181818181
(byte) bitmap_line::xd
(byte) bitmap_line::xd#1 xd zp[1]:31 0.7
(byte) bitmap_line::xd#2 xd zp[1]:31 0.7
(byte) bitmap_line::xd#1 xd zp[1]:29 0.7
(byte) bitmap_line::xd#2 xd zp[1]:29 0.7
(byte) bitmap_line::y0
(byte) bitmap_line::y0#0 y0 zp[1]:13 1.6666666666666674
(byte) bitmap_line::y0#0 y0 zp[1]:12 1.6666666666666674
(byte) bitmap_line::y1
(byte) bitmap_line::y1#0 y1 zp[1]:17 1.7500000000000007
(byte) bitmap_line::y1#0 y1 zp[1]:16 1.7500000000000007
(byte) bitmap_line::yd
(byte) bitmap_line::yd#1 reg byte y 0.8888888888888888
(byte) bitmap_line::yd#10 reg byte y 0.8888888888888888
@ -201,36 +201,36 @@
(label) bitmap_line_xdyd::@4
(label) bitmap_line_xdyd::@return
(byte) bitmap_line_xdyd::e
(byte) bitmap_line_xdyd::e#0 e zp[1]:17 4.0
(byte) bitmap_line_xdyd::e#1 e zp[1]:17 134.66666666666666
(byte) bitmap_line_xdyd::e#2 e zp[1]:17 202.0
(byte) bitmap_line_xdyd::e#3 e zp[1]:17 40.8
(byte) bitmap_line_xdyd::e#6 e zp[1]:17 101.0
(byte) bitmap_line_xdyd::e#0 e zp[1]:16 4.0
(byte) bitmap_line_xdyd::e#1 e zp[1]:16 134.66666666666666
(byte) bitmap_line_xdyd::e#2 e zp[1]:16 202.0
(byte) bitmap_line_xdyd::e#3 e zp[1]:16 40.8
(byte) bitmap_line_xdyd::e#6 e zp[1]:16 101.0
(byte) bitmap_line_xdyd::x
(byte) bitmap_line_xdyd::x#0 x zp[1]:16 0.8
(byte) bitmap_line_xdyd::x#1 x zp[1]:16 0.8
(byte) bitmap_line_xdyd::x#2 x zp[1]:16 37.875
(byte) bitmap_line_xdyd::x#3 x zp[1]:16 76.25
(byte) bitmap_line_xdyd::x#6 x zp[1]:16 3.0
(byte) bitmap_line_xdyd::x#0 x zp[1]:15 0.8
(byte) bitmap_line_xdyd::x#1 x zp[1]:15 0.8
(byte) bitmap_line_xdyd::x#2 x zp[1]:15 37.875
(byte) bitmap_line_xdyd::x#3 x zp[1]:15 76.25
(byte) bitmap_line_xdyd::x#6 x zp[1]:15 3.0
(byte) bitmap_line_xdyd::x1
(byte) bitmap_line_xdyd::x1#0 x1 zp[1]:9 1.3333333333333333
(byte) bitmap_line_xdyd::x1#1 x1 zp[1]:9 1.3333333333333333
(byte) bitmap_line_xdyd::x1#6 x1 zp[1]:9 7.5
(byte) bitmap_line_xdyd::x1#0 x1 zp[1]:8 1.3333333333333333
(byte) bitmap_line_xdyd::x1#1 x1 zp[1]:8 1.3333333333333333
(byte) bitmap_line_xdyd::x1#6 x1 zp[1]:8 7.5
(byte) bitmap_line_xdyd::xd
(byte) bitmap_line_xdyd::xd#0 xd zp[1]:31 2.0
(byte) bitmap_line_xdyd::xd#1 xd zp[1]:31 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp[1]:31 14.714285714285715
(byte) bitmap_line_xdyd::xd#0 xd zp[1]:29 2.0
(byte) bitmap_line_xdyd::xd#1 xd zp[1]:29 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp[1]:29 14.714285714285715
(byte) bitmap_line_xdyd::y
(byte) bitmap_line_xdyd::y#0 y zp[1]:13 1.0
(byte) bitmap_line_xdyd::y#1 y zp[1]:13 1.0
(byte) bitmap_line_xdyd::y#2 y zp[1]:13 101.0
(byte) bitmap_line_xdyd::y#3 y zp[1]:13 58.00000000000001
(byte) bitmap_line_xdyd::y#5 y zp[1]:13 3.0
(byte) bitmap_line_xdyd::y#6 y zp[1]:13 101.0
(byte) bitmap_line_xdyd::y#0 y zp[1]:12 1.0
(byte) bitmap_line_xdyd::y#1 y zp[1]:12 1.0
(byte) bitmap_line_xdyd::y#2 y zp[1]:12 101.0
(byte) bitmap_line_xdyd::y#3 y zp[1]:12 58.00000000000001
(byte) bitmap_line_xdyd::y#5 y zp[1]:12 3.0
(byte) bitmap_line_xdyd::y#6 y zp[1]:12 101.0
(byte) bitmap_line_xdyd::yd
(byte) bitmap_line_xdyd::yd#0 yd zp[1]:10 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp[1]:10 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp[1]:10 7.642857142857143
(byte) bitmap_line_xdyd::yd#0 yd zp[1]:9 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp[1]:9 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp[1]:9 7.642857142857143
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
(byte~) bitmap_line_xdyi::$6 reg byte x 202.0
(label) bitmap_line_xdyi::@1
@ -239,36 +239,36 @@
(label) bitmap_line_xdyi::@4
(label) bitmap_line_xdyi::@return
(byte) bitmap_line_xdyi::e
(byte) bitmap_line_xdyi::e#0 e zp[1]:17 4.0
(byte) bitmap_line_xdyi::e#1 e zp[1]:17 134.66666666666666
(byte) bitmap_line_xdyi::e#2 e zp[1]:17 202.0
(byte) bitmap_line_xdyi::e#3 e zp[1]:17 40.8
(byte) bitmap_line_xdyi::e#6 e zp[1]:17 101.0
(byte) bitmap_line_xdyi::e#0 e zp[1]:16 4.0
(byte) bitmap_line_xdyi::e#1 e zp[1]:16 134.66666666666666
(byte) bitmap_line_xdyi::e#2 e zp[1]:16 202.0
(byte) bitmap_line_xdyi::e#3 e zp[1]:16 40.8
(byte) bitmap_line_xdyi::e#6 e zp[1]:16 101.0
(byte) bitmap_line_xdyi::x
(byte) bitmap_line_xdyi::x#0 x zp[1]:10 0.8
(byte) bitmap_line_xdyi::x#1 x zp[1]:10 0.8
(byte) bitmap_line_xdyi::x#2 x zp[1]:10 37.875
(byte) bitmap_line_xdyi::x#3 x zp[1]:10 76.25
(byte) bitmap_line_xdyi::x#6 x zp[1]:10 3.0
(byte) bitmap_line_xdyi::x#0 x zp[1]:9 0.8
(byte) bitmap_line_xdyi::x#1 x zp[1]:9 0.8
(byte) bitmap_line_xdyi::x#2 x zp[1]:9 37.875
(byte) bitmap_line_xdyi::x#3 x zp[1]:9 76.25
(byte) bitmap_line_xdyi::x#6 x zp[1]:9 3.0
(byte) bitmap_line_xdyi::x1
(byte) bitmap_line_xdyi::x1#0 x1 zp[1]:9 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp[1]:9 1.3333333333333333
(byte) bitmap_line_xdyi::x1#6 x1 zp[1]:9 7.5
(byte) bitmap_line_xdyi::x1#0 x1 zp[1]:8 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp[1]:8 1.3333333333333333
(byte) bitmap_line_xdyi::x1#6 x1 zp[1]:8 7.5
(byte) bitmap_line_xdyi::xd
(byte) bitmap_line_xdyi::xd#0 xd zp[1]:31 2.0
(byte) bitmap_line_xdyi::xd#1 xd zp[1]:31 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp[1]:31 14.714285714285715
(byte) bitmap_line_xdyi::xd#0 xd zp[1]:29 2.0
(byte) bitmap_line_xdyi::xd#1 xd zp[1]:29 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp[1]:29 14.714285714285715
(byte) bitmap_line_xdyi::y
(byte) bitmap_line_xdyi::y#0 y zp[1]:13 1.0
(byte) bitmap_line_xdyi::y#1 y zp[1]:13 1.0
(byte) bitmap_line_xdyi::y#2 y zp[1]:13 101.0
(byte) bitmap_line_xdyi::y#3 y zp[1]:13 58.00000000000001
(byte) bitmap_line_xdyi::y#5 y zp[1]:13 3.0
(byte) bitmap_line_xdyi::y#6 y zp[1]:13 101.0
(byte) bitmap_line_xdyi::y#0 y zp[1]:12 1.0
(byte) bitmap_line_xdyi::y#1 y zp[1]:12 1.0
(byte) bitmap_line_xdyi::y#2 y zp[1]:12 101.0
(byte) bitmap_line_xdyi::y#3 y zp[1]:12 58.00000000000001
(byte) bitmap_line_xdyi::y#5 y zp[1]:12 3.0
(byte) bitmap_line_xdyi::y#6 y zp[1]:12 101.0
(byte) bitmap_line_xdyi::yd
(byte) bitmap_line_xdyi::yd#0 yd zp[1]:16 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp[1]:16 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp[1]:16 7.642857142857143
(byte) bitmap_line_xdyi::yd#0 yd zp[1]:15 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp[1]:15 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp[1]:15 7.642857142857143
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
(byte~) bitmap_line_ydxd::$6 reg byte a 202.0
(label) bitmap_line_ydxd::@1
@ -277,11 +277,11 @@
(label) bitmap_line_ydxd::@4
(label) bitmap_line_ydxd::@return
(byte) bitmap_line_ydxd::e
(byte) bitmap_line_ydxd::e#0 e zp[1]:17 4.0
(byte) bitmap_line_ydxd::e#1 e zp[1]:17 134.66666666666666
(byte) bitmap_line_ydxd::e#2 e zp[1]:17 202.0
(byte) bitmap_line_ydxd::e#3 e zp[1]:17 40.8
(byte) bitmap_line_ydxd::e#6 e zp[1]:17 101.0
(byte) bitmap_line_ydxd::e#0 e zp[1]:16 4.0
(byte) bitmap_line_ydxd::e#1 e zp[1]:16 134.66666666666666
(byte) bitmap_line_ydxd::e#2 e zp[1]:16 202.0
(byte) bitmap_line_ydxd::e#3 e zp[1]:16 40.8
(byte) bitmap_line_ydxd::e#6 e zp[1]:16 101.0
(byte) bitmap_line_ydxd::x
(byte) bitmap_line_ydxd::x#0 reg byte x 1.0
(byte) bitmap_line_ydxd::x#1 reg byte x 1.0
@ -290,23 +290,23 @@
(byte) bitmap_line_ydxd::x#5 reg byte x 3.0
(byte) bitmap_line_ydxd::x#6 reg byte x 101.0
(byte) bitmap_line_ydxd::xd
(byte) bitmap_line_ydxd::xd#0 xd zp[1]:31 4.0
(byte) bitmap_line_ydxd::xd#1 xd zp[1]:31 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp[1]:31 7.642857142857143
(byte) bitmap_line_ydxd::xd#0 xd zp[1]:29 4.0
(byte) bitmap_line_ydxd::xd#1 xd zp[1]:29 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp[1]:29 7.642857142857143
(byte) bitmap_line_ydxd::y
(byte) bitmap_line_ydxd::y#0 y zp[1]:16 0.8
(byte) bitmap_line_ydxd::y#1 y zp[1]:16 0.8
(byte) bitmap_line_ydxd::y#2 y zp[1]:16 76.25
(byte) bitmap_line_ydxd::y#3 y zp[1]:16 37.875
(byte) bitmap_line_ydxd::y#7 y zp[1]:16 3.0
(byte) bitmap_line_ydxd::y#0 y zp[1]:15 0.8
(byte) bitmap_line_ydxd::y#1 y zp[1]:15 0.8
(byte) bitmap_line_ydxd::y#2 y zp[1]:15 76.25
(byte) bitmap_line_ydxd::y#3 y zp[1]:15 37.875
(byte) bitmap_line_ydxd::y#7 y zp[1]:15 3.0
(byte) bitmap_line_ydxd::y1
(byte) bitmap_line_ydxd::y1#0 y1 zp[1]:13 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp[1]:13 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp[1]:13 7.5
(byte) bitmap_line_ydxd::y1#0 y1 zp[1]:12 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp[1]:12 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp[1]:12 7.5
(byte) bitmap_line_ydxd::yd
(byte) bitmap_line_ydxd::yd#0 yd zp[1]:10 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp[1]:10 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp[1]:10 14.714285714285715
(byte) bitmap_line_ydxd::yd#0 yd zp[1]:9 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp[1]:9 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp[1]:9 14.714285714285715
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
(byte~) bitmap_line_ydxi::$6 reg byte a 202.0
(label) bitmap_line_ydxi::@1
@ -315,11 +315,11 @@
(label) bitmap_line_ydxi::@4
(label) bitmap_line_ydxi::@return
(byte) bitmap_line_ydxi::e
(byte) bitmap_line_ydxi::e#0 e zp[1]:13 4.0
(byte) bitmap_line_ydxi::e#1 e zp[1]:13 134.66666666666666
(byte) bitmap_line_ydxi::e#2 e zp[1]:13 202.0
(byte) bitmap_line_ydxi::e#3 e zp[1]:13 40.8
(byte) bitmap_line_ydxi::e#6 e zp[1]:13 101.0
(byte) bitmap_line_ydxi::e#0 e zp[1]:12 4.0
(byte) bitmap_line_ydxi::e#1 e zp[1]:12 134.66666666666666
(byte) bitmap_line_ydxi::e#2 e zp[1]:12 202.0
(byte) bitmap_line_ydxi::e#3 e zp[1]:12 40.8
(byte) bitmap_line_ydxi::e#6 e zp[1]:12 101.0
(byte) bitmap_line_ydxi::x
(byte) bitmap_line_ydxi::x#0 reg byte x 1.0
(byte) bitmap_line_ydxi::x#1 reg byte x 1.0
@ -328,32 +328,32 @@
(byte) bitmap_line_ydxi::x#5 reg byte x 3.0
(byte) bitmap_line_ydxi::x#6 reg byte x 101.0
(byte) bitmap_line_ydxi::xd
(byte) bitmap_line_ydxi::xd#0 xd zp[1]:31 4.0
(byte) bitmap_line_ydxi::xd#1 xd zp[1]:31 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp[1]:31 7.642857142857143
(byte) bitmap_line_ydxi::xd#0 xd zp[1]:29 4.0
(byte) bitmap_line_ydxi::xd#1 xd zp[1]:29 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp[1]:29 7.642857142857143
(byte) bitmap_line_ydxi::y
(byte) bitmap_line_ydxi::y#0 y zp[1]:10 0.8
(byte) bitmap_line_ydxi::y#1 y zp[1]:10 0.8
(byte) bitmap_line_ydxi::y#2 y zp[1]:10 37.875
(byte) bitmap_line_ydxi::y#3 y zp[1]:10 76.25
(byte) bitmap_line_ydxi::y#6 y zp[1]:10 3.0
(byte) bitmap_line_ydxi::y#0 y zp[1]:9 0.8
(byte) bitmap_line_ydxi::y#1 y zp[1]:9 0.8
(byte) bitmap_line_ydxi::y#2 y zp[1]:9 37.875
(byte) bitmap_line_ydxi::y#3 y zp[1]:9 76.25
(byte) bitmap_line_ydxi::y#6 y zp[1]:9 3.0
(byte) bitmap_line_ydxi::y1
(byte) bitmap_line_ydxi::y1#0 y1 zp[1]:17 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp[1]:17 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp[1]:17 7.5
(byte) bitmap_line_ydxi::y1#0 y1 zp[1]:16 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp[1]:16 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp[1]:16 7.5
(byte) bitmap_line_ydxi::yd
(byte) bitmap_line_ydxi::yd#0 yd zp[1]:9 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp[1]:9 2.0
(byte) bitmap_line_ydxi::yd#5 yd zp[1]:9 14.714285714285715
(byte) bitmap_line_ydxi::yd#0 yd zp[1]:8 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp[1]:8 2.0
(byte) bitmap_line_ydxi::yd#5 yd zp[1]:8 14.714285714285715
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
(byte~) bitmap_plot::$1 reg byte a 4.0
(label) bitmap_plot::@return
(byte*) bitmap_plot::plotter
(word) bitmap_plot::plotter#0 plotter zp[2]:26 1.0
(word) bitmap_plot::plotter#0 plotter zp[2]:25 1.0
(word) bitmap_plot::plotter_x
(word) bitmap_plot::plotter_x#0 plotter_x zp[2]:26 2.0
(word) bitmap_plot::plotter_x#0 plotter_x zp[2]:25 2.0
(word) bitmap_plot::plotter_y
(word) bitmap_plot::plotter_y#0 plotter_y zp[2]:28 4.0
(word) bitmap_plot::plotter_y#0 plotter_y zp[2]:27 4.0
(byte) bitmap_plot::x
(byte) bitmap_plot::x#0 reg byte x 101.0
(byte) bitmap_plot::x#1 reg byte x 101.0
@ -423,6 +423,7 @@
(label) form_control::@9
(label) form_control::@return
(byte*) form_control::field
(byte*) form_control::field#0 field zp[2]:27 0.5925925925925926
(byte) form_control::key_event
(byte) form_control::key_event#0 reg byte a 2.6666666666666665
(byte) form_control::return
@ -438,19 +439,19 @@
(const byte*) form_ctrl_mcm = (const byte*) form_fields_val+(byte) 2
(const byte*) form_ctrl_overs = (const byte*) form_fields_val+(byte) 9
(signed byte) form_cursor_count
(signed byte) form_cursor_count#1 form_cursor_count zp[1]:16 0.3333333333333333
(signed byte) form_cursor_count#15 form_cursor_count zp[1]:16 0.4
(signed byte) form_cursor_count#16 form_cursor_count zp[1]:16 65.82352941176472
(signed byte) form_cursor_count#21 form_cursor_count zp[1]:16 221.2
(signed byte) form_cursor_count#5 form_cursor_count zp[1]:16 2.0
(signed byte) form_cursor_count#1 form_cursor_count zp[1]:15 0.3333333333333333
(signed byte) form_cursor_count#15 form_cursor_count zp[1]:15 0.4
(signed byte) form_cursor_count#16 form_cursor_count zp[1]:15 65.82352941176472
(signed byte) form_cursor_count#21 form_cursor_count zp[1]:15 157.99999999999997
(signed byte) form_cursor_count#5 form_cursor_count zp[1]:15 2.0
(const byte*) form_dtv_palet = (const byte*) form_fields_val+(byte) $1b
(byte) form_field_idx
(byte) form_field_idx#1 form_field_idx zp[1]:9 0.3333333333333333
(byte) form_field_idx#18 form_field_idx zp[1]:9 65.94117647058826
(byte) form_field_idx#28 form_field_idx zp[1]:9 30.75675675675673
(byte) form_field_idx#31 form_field_idx zp[1]:9 6.0
(byte) form_field_idx#5 form_field_idx zp[1]:9 2.0
(byte) form_field_idx#6 form_field_idx zp[1]:9 2.0
(byte) form_field_idx#1 form_field_idx zp[1]:8 0.3333333333333333
(byte) form_field_idx#18 form_field_idx zp[1]:8 65.94117647058826
(byte) form_field_idx#28 form_field_idx zp[1]:8 29.17948717948718
(byte) form_field_idx#31 form_field_idx zp[1]:8 6.0
(byte) form_field_idx#5 form_field_idx zp[1]:8 2.0
(byte) form_field_idx#6 form_field_idx zp[1]:8 2.0
(byte*()) form_field_ptr((byte) form_field_ptr::field_idx)
(label) form_field_ptr::@return
(byte*) form_field_ptr::field
@ -459,12 +460,14 @@
(byte) form_field_ptr::field_idx#1 reg byte x 4.0
(byte) form_field_ptr::field_idx#2 reg byte x 335.66666666666674
(byte*) form_field_ptr::line
(word) form_field_ptr::line#0 line zp[2]:26 0.06451612903225806
(word) form_field_ptr::line#0 line zp[2]:25 0.4
(byte*) form_field_ptr::return
(byte*) form_field_ptr::return#0 return zp[2]:27 1.3333333333333333
(byte*) form_field_ptr::return#3 return zp[2]:27 4.0
(byte) form_field_ptr::x
(byte) form_field_ptr::x#0 x zp[1]:30 33.90000000000003
(byte) form_field_ptr::x#0 x zp[1]:29 251.25
(byte) form_field_ptr::y
(byte) form_field_ptr::y#0 reg byte a 6.0
(byte) form_field_ptr::y#0 reg byte y 6.0
(const byte) form_fields_cnt = (byte) $24
(const byte*) form_fields_max[] = { (byte) $a, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) $d, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $d, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) 3, (byte) 1, (byte) 4, (byte) 1, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f, (byte) $f }
(const byte*) form_fields_val[] = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 }
@ -498,9 +501,9 @@
(byte) form_mode::i#1 reg byte x 151.5
(byte) form_mode::i#2 reg byte x 202.0
(byte) form_mode::preset_current
(byte) form_mode::preset_current#0 preset_current zp[1]:17 4.0
(byte) form_mode::preset_current#1 preset_current zp[1]:17 50.5
(byte) form_mode::preset_current#6 preset_current zp[1]:17 388.25
(byte) form_mode::preset_current#0 preset_current zp[1]:16 4.0
(byte) form_mode::preset_current#1 preset_current zp[1]:16 50.5
(byte) form_mode::preset_current#6 preset_current zp[1]:16 388.25
(void()) form_render_values()
(label) form_render_values::@1
(label) form_render_values::@2
@ -564,8 +567,8 @@
(byte) get_vic_charset::idx
(byte) get_vic_charset::idx#0 reg byte a 3.0
(byte*) get_vic_charset::return
(byte*) get_vic_charset::return#2 return zp[2]:14 0.6666666666666666
(byte*) get_vic_charset::return#4 return zp[2]:14 4.0
(byte*) get_vic_charset::return#2 return zp[2]:13 0.6666666666666666
(byte*) get_vic_charset::return#4 return zp[2]:13 4.0
(byte*()) get_vic_screen((byte) get_vic_screen::idx)
(label) get_vic_screen::@1
(label) get_vic_screen::@2
@ -604,21 +607,21 @@
(label) gfx_init_charset::@4
(label) gfx_init_charset::@return
(byte) gfx_init_charset::c
(byte) gfx_init_charset::c#1 c zp[1]:13 16.5
(byte) gfx_init_charset::c#4 c zp[1]:13 3.142857142857143
(byte) gfx_init_charset::c#1 c zp[1]:12 16.5
(byte) gfx_init_charset::c#4 c zp[1]:12 3.142857142857143
(byte*) gfx_init_charset::chargen
(byte*) gfx_init_charset::chargen#1 chargen zp[2]:11 42.599999999999994
(byte*) gfx_init_charset::chargen#2 chargen zp[2]:11 104.66666666666666
(byte*) gfx_init_charset::chargen#3 chargen zp[2]:11 22.0
(byte*) gfx_init_charset::chargen#1 chargen zp[2]:10 42.599999999999994
(byte*) gfx_init_charset::chargen#2 chargen zp[2]:10 104.66666666666666
(byte*) gfx_init_charset::chargen#3 chargen zp[2]:10 22.0
(byte*) gfx_init_charset::charset
(byte*) gfx_init_charset::charset#1 charset zp[2]:14 35.5
(byte*) gfx_init_charset::charset#2 charset zp[2]:14 157.0
(byte*) gfx_init_charset::charset#3 charset zp[2]:14 22.0
(byte*) gfx_init_charset::charset#1 charset zp[2]:13 35.5
(byte*) gfx_init_charset::charset#2 charset zp[2]:13 157.0
(byte*) gfx_init_charset::charset#3 charset zp[2]:13 22.0
(byte) gfx_init_charset::l
(byte) gfx_init_charset::l#1 reg byte x 151.5
(byte) gfx_init_charset::l#2 reg byte x 50.5
(void()) gfx_init_plane_8bppchunky()
(word~) gfx_init_plane_8bppchunky::$5 zp[2]:24 101.0
(word~) gfx_init_plane_8bppchunky::$5 zp[2]:25 101.0
(label) gfx_init_plane_8bppchunky::@1
(label) gfx_init_plane_8bppchunky::@2
(label) gfx_init_plane_8bppchunky::@3
@ -630,21 +633,21 @@
(byte) gfx_init_plane_8bppchunky::c
(byte) gfx_init_plane_8bppchunky::c#0 reg byte a 202.0
(byte*) gfx_init_plane_8bppchunky::gfxb
(byte*) gfx_init_plane_8bppchunky::gfxb#1 gfxb zp[2]:14 42.599999999999994
(byte*) gfx_init_plane_8bppchunky::gfxb#3 gfxb zp[2]:14 157.0
(byte*) gfx_init_plane_8bppchunky::gfxb#4 gfxb zp[2]:14 75.75
(byte*) gfx_init_plane_8bppchunky::gfxb#5 gfxb zp[2]:14 22.0
(byte*) gfx_init_plane_8bppchunky::gfxb#1 gfxb zp[2]:13 42.599999999999994
(byte*) gfx_init_plane_8bppchunky::gfxb#3 gfxb zp[2]:13 157.0
(byte*) gfx_init_plane_8bppchunky::gfxb#4 gfxb zp[2]:13 75.75
(byte*) gfx_init_plane_8bppchunky::gfxb#5 gfxb zp[2]:13 22.0
(byte) gfx_init_plane_8bppchunky::gfxbCpuBank
(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#2 reg byte x 202.0
(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#4 reg byte x 103.75
(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#7 reg byte x 22.0
(byte) gfx_init_plane_8bppchunky::gfxbCpuBank#8 reg byte x 34.888888888888886
(word) gfx_init_plane_8bppchunky::x
(word) gfx_init_plane_8bppchunky::x#1 x zp[2]:11 151.5
(word) gfx_init_plane_8bppchunky::x#2 x zp[2]:11 30.299999999999997
(word) gfx_init_plane_8bppchunky::x#1 x zp[2]:10 151.5
(word) gfx_init_plane_8bppchunky::x#2 x zp[2]:10 30.299999999999997
(byte) gfx_init_plane_8bppchunky::y
(byte) gfx_init_plane_8bppchunky::y#1 y zp[1]:13 16.5
(byte) gfx_init_plane_8bppchunky::y#6 y zp[1]:13 9.461538461538462
(byte) gfx_init_plane_8bppchunky::y#1 y zp[1]:12 16.5
(byte) gfx_init_plane_8bppchunky::y#6 y zp[1]:12 9.461538461538462
(void()) gfx_init_plane_blank()
(label) gfx_init_plane_blank::@return
(void()) gfx_init_plane_charset8()
@ -660,42 +663,42 @@
(label) gfx_init_plane_charset8::@9
(label) gfx_init_plane_charset8::@return
(byte) gfx_init_plane_charset8::bits
(byte) gfx_init_plane_charset8::bits#0 bits zp[1]:8 101.0
(byte) gfx_init_plane_charset8::bits#1 bits zp[1]:8 500.5
(byte) gfx_init_plane_charset8::bits#2 bits zp[1]:8 443.42857142857144
(byte) gfx_init_plane_charset8::bits#0 bits zp[1]:30 101.0
(byte) gfx_init_plane_charset8::bits#1 bits zp[1]:30 500.5
(byte) gfx_init_plane_charset8::bits#2 bits zp[1]:30 443.42857142857144
(byte) gfx_init_plane_charset8::c
(byte) gfx_init_plane_charset8::c#2 reg byte a 2002.0
(byte) gfx_init_plane_charset8::c#3 reg byte a 2002.0
(byte) gfx_init_plane_charset8::ch
(byte) gfx_init_plane_charset8::ch#1 ch zp[1]:10 16.5
(byte) gfx_init_plane_charset8::ch#8 ch zp[1]:10 1.2941176470588236
(byte) gfx_init_plane_charset8::ch#1 ch zp[1]:9 16.5
(byte) gfx_init_plane_charset8::ch#8 ch zp[1]:9 1.2941176470588236
(byte*) gfx_init_plane_charset8::chargen
(byte*) gfx_init_plane_charset8::chargen#1 chargen zp[2]:6 13.3125
(byte*) gfx_init_plane_charset8::chargen#2 chargen zp[2]:6 157.0
(byte*) gfx_init_plane_charset8::chargen#3 chargen zp[2]:6 22.0
(byte) gfx_init_plane_charset8::col
(byte) gfx_init_plane_charset8::col#1 col zp[1]:16 302.0
(byte) gfx_init_plane_charset8::col#2 col zp[1]:16 388.0
(byte) gfx_init_plane_charset8::col#5 col zp[1]:16 71.0
(byte) gfx_init_plane_charset8::col#6 col zp[1]:16 22.0
(byte) gfx_init_plane_charset8::col#1 col zp[1]:15 302.0
(byte) gfx_init_plane_charset8::col#2 col zp[1]:15 388.0
(byte) gfx_init_plane_charset8::col#5 col zp[1]:15 71.0
(byte) gfx_init_plane_charset8::col#6 col zp[1]:15 22.0
(byte) gfx_init_plane_charset8::cp
(byte) gfx_init_plane_charset8::cp#1 reg byte x 1501.5
(byte) gfx_init_plane_charset8::cp#2 reg byte x 222.44444444444446
(byte) gfx_init_plane_charset8::cr
(byte) gfx_init_plane_charset8::cr#1 cr zp[1]:13 151.5
(byte) gfx_init_plane_charset8::cr#6 cr zp[1]:13 14.428571428571429
(byte) gfx_init_plane_charset8::cr#1 cr zp[1]:12 151.5
(byte) gfx_init_plane_charset8::cr#6 cr zp[1]:12 14.428571428571429
(byte*) gfx_init_plane_charset8::gfxa
(byte*) gfx_init_plane_charset8::gfxa#1 gfxa zp[2]:11 234.8888888888889
(byte*) gfx_init_plane_charset8::gfxa#2 gfxa zp[2]:11 517.3333333333334
(byte*) gfx_init_plane_charset8::gfxa#5 gfxa zp[2]:11 71.0
(byte*) gfx_init_plane_charset8::gfxa#6 gfxa zp[2]:11 22.0
(byte*) gfx_init_plane_charset8::gfxa#1 gfxa zp[2]:10 234.8888888888889
(byte*) gfx_init_plane_charset8::gfxa#2 gfxa zp[2]:10 517.3333333333334
(byte*) gfx_init_plane_charset8::gfxa#5 gfxa zp[2]:10 71.0
(byte*) gfx_init_plane_charset8::gfxa#6 gfxa zp[2]:10 22.0
(byte) gfx_init_plane_charset8::gfxbCpuBank
(const byte) gfx_init_plane_charset8::gfxbCpuBank#0 gfxbCpuBank = (byte)(const dword) PLANE_CHARSET8/(word) $4000
(void()) gfx_init_plane_fill((dword) gfx_init_plane_fill::plane_addr , (byte) gfx_init_plane_fill::fill)
(dword~) gfx_init_plane_fill::$0 zp[4]:18 4.0
(word~) gfx_init_plane_fill::$1 zp[2]:22 4.0
(word~) gfx_init_plane_fill::$4 zp[2]:14 4.0
(word~) gfx_init_plane_fill::$5 zp[2]:14 4.0
(dword~) gfx_init_plane_fill::$0 zp[4]:19 4.0
(word~) gfx_init_plane_fill::$1 zp[2]:23 4.0
(word~) gfx_init_plane_fill::$4 zp[2]:13 4.0
(word~) gfx_init_plane_fill::$5 zp[2]:13 4.0
(label) gfx_init_plane_fill::@1
(label) gfx_init_plane_fill::@2
(label) gfx_init_plane_fill::@3
@ -706,16 +709,16 @@
(byte) gfx_init_plane_fill::bx#1 reg byte x 151.5
(byte) gfx_init_plane_fill::bx#2 reg byte x 67.33333333333333
(byte) gfx_init_plane_fill::by
(byte) gfx_init_plane_fill::by#1 by zp[1]:16 16.5
(byte) gfx_init_plane_fill::by#4 by zp[1]:16 3.6666666666666665
(byte) gfx_init_plane_fill::by#1 by zp[1]:15 16.5
(byte) gfx_init_plane_fill::by#4 by zp[1]:15 3.6666666666666665
(byte) gfx_init_plane_fill::fill
(byte) gfx_init_plane_fill::fill#6 fill zp[1]:8 5.611111111111111
(byte) gfx_init_plane_fill::fill#6 fill zp[1]:30 5.611111111111111
(byte*) gfx_init_plane_fill::gfxb
(word) gfx_init_plane_fill::gfxb#0 gfxb zp[2]:14 2.0
(byte*) gfx_init_plane_fill::gfxb#1 gfxb zp[2]:14 42.599999999999994
(byte*) gfx_init_plane_fill::gfxb#2 gfxb zp[2]:14 157.0
(byte*) gfx_init_plane_fill::gfxb#3 gfxb zp[2]:14 24.0
(byte*) gfx_init_plane_fill::gfxb#6 gfxb zp[2]:14 4.0
(word) gfx_init_plane_fill::gfxb#0 gfxb zp[2]:13 2.0
(byte*) gfx_init_plane_fill::gfxb#1 gfxb zp[2]:13 42.599999999999994
(byte*) gfx_init_plane_fill::gfxb#2 gfxb zp[2]:13 157.0
(byte*) gfx_init_plane_fill::gfxb#3 gfxb zp[2]:13 24.0
(byte*) gfx_init_plane_fill::gfxb#6 gfxb zp[2]:13 4.0
(byte) gfx_init_plane_fill::gfxbCpuBank
(byte) gfx_init_plane_fill::gfxbCpuBank#0 reg byte a 4.0
(dword) gfx_init_plane_fill::plane_addr
@ -736,8 +739,8 @@
(byte) gfx_init_plane_horisontal::ax#1 reg byte x 151.5
(byte) gfx_init_plane_horisontal::ax#2 reg byte x 25.25
(byte) gfx_init_plane_horisontal::ay
(byte) gfx_init_plane_horisontal::ay#1 ay zp[1]:10 16.5
(byte) gfx_init_plane_horisontal::ay#4 ay zp[1]:10 11.181818181818182
(byte) gfx_init_plane_horisontal::ay#1 ay zp[1]:9 16.5
(byte) gfx_init_plane_horisontal::ay#4 ay zp[1]:9 11.181818181818182
(byte*) gfx_init_plane_horisontal::gfxa
(byte*) gfx_init_plane_horisontal::gfxa#1 gfxa zp[2]:6 202.0
(byte*) gfx_init_plane_horisontal::gfxa#2 gfxa zp[2]:6 202.0
@ -757,8 +760,8 @@
(byte) gfx_init_plane_horisontal2::ax#1 reg byte x 151.5
(byte) gfx_init_plane_horisontal2::ax#2 reg byte x 40.4
(byte) gfx_init_plane_horisontal2::ay
(byte) gfx_init_plane_horisontal2::ay#1 ay zp[1]:9 16.5
(byte) gfx_init_plane_horisontal2::ay#4 ay zp[1]:9 15.375
(byte) gfx_init_plane_horisontal2::ay#1 ay zp[1]:8 16.5
(byte) gfx_init_plane_horisontal2::ay#4 ay zp[1]:8 15.375
(byte*) gfx_init_plane_horisontal2::gfxa
(byte*) gfx_init_plane_horisontal2::gfxa#1 gfxa zp[2]:6 42.599999999999994
(byte*) gfx_init_plane_horisontal2::gfxa#2 gfxa zp[2]:6 78.5
@ -778,8 +781,8 @@
(byte) gfx_init_plane_vertical::bx#1 reg byte x 151.5
(byte) gfx_init_plane_vertical::bx#2 reg byte x 67.33333333333333
(byte) gfx_init_plane_vertical::by
(byte) gfx_init_plane_vertical::by#1 by zp[1]:17 16.5
(byte) gfx_init_plane_vertical::by#4 by zp[1]:17 3.6666666666666665
(byte) gfx_init_plane_vertical::by#1 by zp[1]:16 16.5
(byte) gfx_init_plane_vertical::by#4 by zp[1]:16 3.6666666666666665
(byte*) gfx_init_plane_vertical::gfxb
(byte*) gfx_init_plane_vertical::gfxb#1 gfxb zp[2]:6 42.599999999999994
(byte*) gfx_init_plane_vertical::gfxb#2 gfxb zp[2]:6 157.0
@ -790,7 +793,7 @@
(label) gfx_init_plane_vertical2::@return
(void()) gfx_init_screen0()
(byte~) gfx_init_screen0::$0 reg byte a 202.0
(byte~) gfx_init_screen0::$1 zp[1]:31 101.0
(byte~) gfx_init_screen0::$1 zp[1]:30 101.0
(byte~) gfx_init_screen0::$2 reg byte a 202.0
(byte~) gfx_init_screen0::$3 reg byte a 202.0
(label) gfx_init_screen0::@1
@ -798,15 +801,15 @@
(label) gfx_init_screen0::@3
(label) gfx_init_screen0::@return
(byte*) gfx_init_screen0::ch
(byte*) gfx_init_screen0::ch#1 ch zp[2]:22 42.599999999999994
(byte*) gfx_init_screen0::ch#2 ch zp[2]:22 52.33333333333333
(byte*) gfx_init_screen0::ch#3 ch zp[2]:22 22.0
(byte*) gfx_init_screen0::ch#1 ch zp[2]:17 42.599999999999994
(byte*) gfx_init_screen0::ch#2 ch zp[2]:17 52.33333333333333
(byte*) gfx_init_screen0::ch#3 ch zp[2]:17 22.0
(byte) gfx_init_screen0::cx
(byte) gfx_init_screen0::cx#1 reg byte x 151.5
(byte) gfx_init_screen0::cx#2 reg byte x 43.285714285714285
(byte) gfx_init_screen0::cy
(byte) gfx_init_screen0::cy#1 cy zp[1]:17 16.5
(byte) gfx_init_screen0::cy#4 cy zp[1]:17 12.299999999999999
(byte) gfx_init_screen0::cy#1 cy zp[1]:16 16.5
(byte) gfx_init_screen0::cy#4 cy zp[1]:16 12.299999999999999
(void()) gfx_init_screen1()
(byte~) gfx_init_screen1::$0 reg byte a 202.0
(byte~) gfx_init_screen1::$1 reg byte a 202.0
@ -815,15 +818,15 @@
(label) gfx_init_screen1::@3
(label) gfx_init_screen1::@return
(byte*) gfx_init_screen1::ch
(byte*) gfx_init_screen1::ch#1 ch zp[2]:22 42.599999999999994
(byte*) gfx_init_screen1::ch#2 ch zp[2]:22 78.5
(byte*) gfx_init_screen1::ch#3 ch zp[2]:22 22.0
(byte*) gfx_init_screen1::ch#1 ch zp[2]:17 42.599999999999994
(byte*) gfx_init_screen1::ch#2 ch zp[2]:17 78.5
(byte*) gfx_init_screen1::ch#3 ch zp[2]:17 22.0
(byte) gfx_init_screen1::cx
(byte) gfx_init_screen1::cx#1 reg byte x 151.5
(byte) gfx_init_screen1::cx#2 reg byte x 60.599999999999994
(byte) gfx_init_screen1::cy
(byte) gfx_init_screen1::cy#1 cy zp[1]:17 16.5
(byte) gfx_init_screen1::cy#4 cy zp[1]:17 15.375
(byte) gfx_init_screen1::cy#1 cy zp[1]:16 16.5
(byte) gfx_init_screen1::cy#4 cy zp[1]:16 15.375
(void()) gfx_init_screen2()
(byte~) gfx_init_screen2::$0 reg byte a 202.0
(byte~) gfx_init_screen2::$3 reg byte a 202.0
@ -833,22 +836,22 @@
(label) gfx_init_screen2::@3
(label) gfx_init_screen2::@return
(byte*) gfx_init_screen2::ch
(byte*) gfx_init_screen2::ch#1 ch zp[2]:22 42.599999999999994
(byte*) gfx_init_screen2::ch#2 ch zp[2]:22 44.85714285714286
(byte*) gfx_init_screen2::ch#3 ch zp[2]:22 22.0
(byte*) gfx_init_screen2::ch#1 ch zp[2]:17 42.599999999999994
(byte*) gfx_init_screen2::ch#2 ch zp[2]:17 44.85714285714286
(byte*) gfx_init_screen2::ch#3 ch zp[2]:17 22.0
(byte) gfx_init_screen2::col
(byte) gfx_init_screen2::col#0 reg byte y 151.5
(byte) gfx_init_screen2::col2
(byte) gfx_init_screen2::col2#0 col2 zp[1]:31 101.0
(byte) gfx_init_screen2::col2#0 col2 zp[1]:30 101.0
(byte) gfx_init_screen2::cx
(byte) gfx_init_screen2::cx#1 reg byte x 151.5
(byte) gfx_init_screen2::cx#2 reg byte x 37.875
(byte) gfx_init_screen2::cy
(byte) gfx_init_screen2::cy#1 cy zp[1]:16 16.5
(byte) gfx_init_screen2::cy#4 cy zp[1]:16 11.181818181818182
(byte) gfx_init_screen2::cy#1 cy zp[1]:15 16.5
(byte) gfx_init_screen2::cy#4 cy zp[1]:15 11.181818181818182
(void()) gfx_init_screen3()
(byte~) gfx_init_screen3::$0 reg byte a 202.0
(byte~) gfx_init_screen3::$1 zp[1]:30 101.0
(byte~) gfx_init_screen3::$1 zp[1]:29 101.0
(byte~) gfx_init_screen3::$2 reg byte a 202.0
(byte~) gfx_init_screen3::$3 reg byte a 202.0
(label) gfx_init_screen3::@1
@ -856,30 +859,30 @@
(label) gfx_init_screen3::@3
(label) gfx_init_screen3::@return
(byte*) gfx_init_screen3::ch
(byte*) gfx_init_screen3::ch#1 ch zp[2]:22 42.599999999999994
(byte*) gfx_init_screen3::ch#2 ch zp[2]:22 52.33333333333333
(byte*) gfx_init_screen3::ch#3 ch zp[2]:22 22.0
(byte*) gfx_init_screen3::ch#1 ch zp[2]:17 42.599999999999994
(byte*) gfx_init_screen3::ch#2 ch zp[2]:17 52.33333333333333
(byte*) gfx_init_screen3::ch#3 ch zp[2]:17 22.0
(byte) gfx_init_screen3::cx
(byte) gfx_init_screen3::cx#1 reg byte x 151.5
(byte) gfx_init_screen3::cx#2 reg byte x 43.285714285714285
(byte) gfx_init_screen3::cy
(byte) gfx_init_screen3::cy#1 cy zp[1]:16 16.5
(byte) gfx_init_screen3::cy#4 cy zp[1]:16 12.299999999999999
(byte) gfx_init_screen3::cy#1 cy zp[1]:15 16.5
(byte) gfx_init_screen3::cy#4 cy zp[1]:15 12.299999999999999
(void()) gfx_init_screen4()
(label) gfx_init_screen4::@1
(label) gfx_init_screen4::@2
(label) gfx_init_screen4::@3
(label) gfx_init_screen4::@return
(byte*) gfx_init_screen4::ch
(byte*) gfx_init_screen4::ch#1 ch zp[2]:14 42.599999999999994
(byte*) gfx_init_screen4::ch#2 ch zp[2]:14 157.0
(byte*) gfx_init_screen4::ch#3 ch zp[2]:14 22.0
(byte*) gfx_init_screen4::ch#1 ch zp[2]:13 42.599999999999994
(byte*) gfx_init_screen4::ch#2 ch zp[2]:13 157.0
(byte*) gfx_init_screen4::ch#3 ch zp[2]:13 22.0
(byte) gfx_init_screen4::cx
(byte) gfx_init_screen4::cx#1 reg byte x 151.5
(byte) gfx_init_screen4::cx#2 reg byte x 67.33333333333333
(byte) gfx_init_screen4::cy
(byte) gfx_init_screen4::cy#1 cy zp[1]:13 16.5
(byte) gfx_init_screen4::cy#4 cy zp[1]:13 3.6666666666666665
(byte) gfx_init_screen4::cy#1 cy zp[1]:12 16.5
(byte) gfx_init_screen4::cy#4 cy zp[1]:12 3.6666666666666665
(void()) gfx_init_vic_bitmap()
(label) gfx_init_vic_bitmap::@1
(label) gfx_init_vic_bitmap::@2
@ -887,8 +890,8 @@
(label) gfx_init_vic_bitmap::@4
(label) gfx_init_vic_bitmap::@return
(byte) gfx_init_vic_bitmap::l
(byte) gfx_init_vic_bitmap::l#1 l zp[1]:8 22.0
(byte) gfx_init_vic_bitmap::l#2 l zp[1]:8 11.0
(byte) gfx_init_vic_bitmap::l#1 l zp[1]:30 22.0
(byte) gfx_init_vic_bitmap::l#2 l zp[1]:30 11.0
(const byte) gfx_init_vic_bitmap::lines_cnt = (byte) 9
(const byte*) gfx_init_vic_bitmap::lines_x[] = { (byte) 0, (byte) $ff, (byte) $ff, (byte) 0, (byte) 0, (byte) $80, (byte) $ff, (byte) $80, (byte) 0, (byte) $80 }
(const byte*) gfx_init_vic_bitmap::lines_y[] = { (byte) 0, (byte) 0, (byte) $c7, (byte) $c7, (byte) 0, (byte) 0, (byte) $64, (byte) $c7, (byte) $64, (byte) 0 }
@ -896,9 +899,9 @@
(byte~) gfx_mode::$18 reg byte a 4.0
(dword~) gfx_mode::$20 zp[4]:2 4.0
(byte~) gfx_mode::$23 reg byte a 4.0
(word~) gfx_mode::$24 zp[2]:26 2.0
(word~) gfx_mode::$24 zp[2]:25 2.0
(byte~) gfx_mode::$25 reg byte a 4.0
(word~) gfx_mode::$26 zp[2]:28 4.0
(word~) gfx_mode::$26 zp[2]:27 4.0
(byte~) gfx_mode::$27 reg byte a 4.0
(byte~) gfx_mode::$28 reg byte a 4.0
(byte~) gfx_mode::$29 reg byte a 4.0
@ -907,9 +910,9 @@
(byte~) gfx_mode::$32 reg byte a 4.0
(dword~) gfx_mode::$34 zp[4]:2 4.0
(byte~) gfx_mode::$37 reg byte a 4.0
(word~) gfx_mode::$38 zp[2]:22 2.0
(word~) gfx_mode::$38 zp[2]:17 2.0
(byte~) gfx_mode::$39 reg byte a 4.0
(word~) gfx_mode::$40 zp[2]:24 4.0
(word~) gfx_mode::$40 zp[2]:23 4.0
(byte~) gfx_mode::$41 reg byte a 4.0
(byte~) gfx_mode::$42 reg byte a 4.0
(byte~) gfx_mode::$43 reg byte a 4.0
@ -918,9 +921,9 @@
(byte*~) gfx_mode::$47 zp[2]:6 2.0
(word~) gfx_mode::$48 zp[2]:6 4.0
(word~) gfx_mode::$49 zp[2]:6 2.0
(byte~) gfx_mode::$50 zp[1]:31 0.5
(byte*~) gfx_mode::$52 zp[2]:14 2.0
(word~) gfx_mode::$53 zp[2]:14 4.0
(byte~) gfx_mode::$50 zp[1]:29 0.5
(byte*~) gfx_mode::$52 zp[2]:13 2.0
(word~) gfx_mode::$53 zp[2]:13 4.0
(byte~) gfx_mode::$54 reg byte a 4.0
(byte~) gfx_mode::$55 reg byte a 4.0
(byte~) gfx_mode::$56 reg byte a 4.0
@ -967,15 +970,15 @@
(label) gfx_mode::@9
(label) gfx_mode::@return
(byte*) gfx_mode::col
(byte*) gfx_mode::col#1 col zp[2]:11 350.5
(byte*) gfx_mode::col#2 col zp[2]:11 1552.0
(byte*) gfx_mode::col#3 col zp[2]:11 202.0
(byte*) gfx_mode::col#1 col zp[2]:10 350.5
(byte*) gfx_mode::col#2 col zp[2]:10 1552.0
(byte*) gfx_mode::col#3 col zp[2]:10 202.0
(byte) gfx_mode::cx
(byte) gfx_mode::cx#1 reg byte x 1501.5
(byte) gfx_mode::cx#2 reg byte x 500.5
(byte) gfx_mode::cy
(byte) gfx_mode::cy#1 cy zp[1]:10 151.5
(byte) gfx_mode::cy#4 cy zp[1]:10 28.857142857142858
(byte) gfx_mode::cy#1 cy zp[1]:9 151.5
(byte) gfx_mode::cy#4 cy zp[1]:9 28.857142857142858
(byte) gfx_mode::dtv_control
(byte) gfx_mode::dtv_control#10 reg byte x 4.0
(byte) gfx_mode::dtv_control#11 reg byte x 4.0
@ -1028,7 +1031,7 @@
(byte~) keyboard_event_pressed::$1 reg byte a 4.0
(label) keyboard_event_pressed::@return
(byte) keyboard_event_pressed::keycode
(byte) keyboard_event_pressed::keycode#4 keycode zp[1]:13 1.3333333333333333
(byte) keyboard_event_pressed::keycode#4 keycode zp[1]:12 1.3333333333333333
(byte) keyboard_event_pressed::return
(byte) keyboard_event_pressed::return#0 reg byte a 4.0
(byte) keyboard_event_pressed::return#1 reg byte a 4.0
@ -1036,7 +1039,7 @@
(byte) keyboard_event_pressed::return#2 reg byte a 4.0
(byte) keyboard_event_pressed::return#3 reg byte a 4.0
(byte) keyboard_event_pressed::row_bits
(byte) keyboard_event_pressed::row_bits#0 row_bits zp[1]:31 2.0
(byte) keyboard_event_pressed::row_bits#0 row_bits zp[1]:29 2.0
(void()) keyboard_event_scan()
(byte~) keyboard_event_scan::$0 reg byte a 4.0
(byte~) keyboard_event_scan::$15 reg byte a 200002.0
@ -1075,29 +1078,29 @@
(byte) keyboard_event_scan::event_type
(byte) keyboard_event_scan::event_type#0 reg byte a 200002.0
(byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::keycode#1 keycode zp[1]:13 20002.0
(byte) keyboard_event_scan::keycode#10 keycode zp[1]:13 31538.846153846156
(byte) keyboard_event_scan::keycode#11 keycode zp[1]:13 5000.5
(byte) keyboard_event_scan::keycode#13 keycode zp[1]:13 10001.0
(byte) keyboard_event_scan::keycode#14 keycode zp[1]:13 52500.75
(byte) keyboard_event_scan::keycode#1 keycode zp[1]:12 20002.0
(byte) keyboard_event_scan::keycode#10 keycode zp[1]:12 31538.846153846156
(byte) keyboard_event_scan::keycode#11 keycode zp[1]:12 5000.5
(byte) keyboard_event_scan::keycode#13 keycode zp[1]:12 10001.0
(byte) keyboard_event_scan::keycode#14 keycode zp[1]:12 52500.75
(byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row#1 row zp[1]:10 15001.5
(byte) keyboard_event_scan::row#2 row zp[1]:10 6000.24
(byte) keyboard_event_scan::row#1 row zp[1]:9 15001.5
(byte) keyboard_event_scan::row#2 row zp[1]:9 6000.24
(byte) keyboard_event_scan::row_scan
(byte) keyboard_event_scan::row_scan#0 row_scan zp[1]:31 12778.055555555557
(byte) keyboard_event_scan::row_scan#0 row_scan zp[1]:29 12778.055555555557
(const byte*) keyboard_events[(number) 8] = { fill( 8, 0) }
(byte) keyboard_events_size
(byte) keyboard_events_size#1 keyboard_events_size zp[1]:8 200002.0
(byte) keyboard_events_size#100 keyboard_events_size zp[1]:8 882.6176470588235
(byte) keyboard_events_size#105 keyboard_events_size zp[1]:8 102001.2
(byte) keyboard_events_size#106 keyboard_events_size zp[1]:8 4286.428571428572
(byte) keyboard_events_size#18 keyboard_events_size zp[1]:8 81000.90000000001
(byte) keyboard_events_size#2 keyboard_events_size zp[1]:8 200002.0
(byte) keyboard_events_size#24 keyboard_events_size zp[1]:8 6.766666666666667
(byte) keyboard_events_size#27 keyboard_events_size zp[1]:8 0.3333333333333333
(byte) keyboard_events_size#4 keyboard_events_size zp[1]:8 3.0
(byte) keyboard_events_size#47 keyboard_events_size zp[1]:8 73.73333333333335
(byte) keyboard_events_size#97 keyboard_events_size zp[1]:8 105.0
(byte) keyboard_events_size#1 keyboard_events_size zp[1]:30 200002.0
(byte) keyboard_events_size#100 keyboard_events_size zp[1]:30 882.6176470588235
(byte) keyboard_events_size#105 keyboard_events_size zp[1]:30 102001.2
(byte) keyboard_events_size#106 keyboard_events_size zp[1]:30 4286.428571428572
(byte) keyboard_events_size#18 keyboard_events_size zp[1]:30 81000.90000000001
(byte) keyboard_events_size#2 keyboard_events_size zp[1]:30 200002.0
(byte) keyboard_events_size#24 keyboard_events_size zp[1]:30 6.766666666666667
(byte) keyboard_events_size#27 keyboard_events_size zp[1]:30 0.3333333333333333
(byte) keyboard_events_size#4 keyboard_events_size zp[1]:30 3.0
(byte) keyboard_events_size#47 keyboard_events_size zp[1]:30 65.05882352941177
(byte) keyboard_events_size#97 keyboard_events_size zp[1]:30 105.0
(void()) keyboard_init()
(label) keyboard_init::@return
(const byte*) keyboard_matrix_col_bitmask[(number) 8] = { (byte) 1, (byte) 2, (byte) 4, (byte) 8, (byte) $10, (byte) $20, (byte) $40, (byte) $80 }
@ -1132,16 +1135,16 @@
(byte) memset::c
(const byte) memset::c#0 c = (byte) ' '
(byte*) memset::dst
(byte*) memset::dst#1 dst zp[2]:11 202.0
(byte*) memset::dst#2 dst zp[2]:11 135.33333333333331
(byte*) memset::dst#4 dst zp[2]:11 4.0
(byte*) memset::dst#1 dst zp[2]:10 202.0
(byte*) memset::dst#2 dst zp[2]:10 135.33333333333331
(byte*) memset::dst#4 dst zp[2]:10 4.0
(byte*) memset::end
(byte*) memset::end#0 end zp[2]:28 17.166666666666664
(byte*) memset::end#0 end zp[2]:17 17.166666666666664
(word) memset::num
(const word) memset::num#0 num = (word) $3e8
(void*) memset::return
(void*) memset::str
(void*) memset::str#0 str zp[2]:11 0.6666666666666666
(void*) memset::str#0 str zp[2]:10 0.6666666666666666
(const byte*) preset_8bpppixelcell[] = { (byte) $a, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) $b, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 }
(const byte*) preset_chunky[] = { (byte) 7, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 6, (byte) 0, (byte) 0, (byte) 0, (byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 }
(const byte*) preset_ecmchar[] = { (byte) 1, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 2, (byte) 0, (byte) 5, (byte) 0, (byte) 6 }
@ -1154,19 +1157,19 @@
(const byte*) preset_stdchar[] = { (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0 }
(const byte*) preset_twoplane[] = { (byte) 6, (byte) 1, (byte) 0, (byte) 1, (byte) 1, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 7, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 8, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 0, (byte) 1, (byte) 7, (byte) 0, (byte) $d, (byte) 4, (byte) 0, (byte) 0, (byte) 0, (byte) 0 }
(byte*) print_char_cursor
(byte*) print_char_cursor#1 print_char_cursor zp[2]:11 2002.0
(byte*) print_char_cursor#20 print_char_cursor zp[2]:11 821.0
(byte*) print_char_cursor#22 print_char_cursor zp[2]:11 102.0
(byte*) print_char_cursor#38 print_char_cursor zp[2]:11 572.0
(byte*) print_char_cursor#67 print_char_cursor zp[2]:11 4.0
(byte*) print_char_cursor#68 print_char_cursor zp[2]:11 202.0
(byte*) print_char_cursor#1 print_char_cursor zp[2]:10 2002.0
(byte*) print_char_cursor#20 print_char_cursor zp[2]:10 821.0
(byte*) print_char_cursor#22 print_char_cursor zp[2]:10 102.0
(byte*) print_char_cursor#38 print_char_cursor zp[2]:10 572.0
(byte*) print_char_cursor#67 print_char_cursor zp[2]:10 4.0
(byte*) print_char_cursor#68 print_char_cursor zp[2]:10 202.0
(void()) print_cls()
(label) print_cls::@return
(const byte*) print_hextab[] = (byte*) "0123456789abcdef"z
(byte*) print_line_cursor
(byte*) print_line_cursor#2 print_line_cursor zp[2]:14 8.749999999999998
(byte*) print_line_cursor#21 print_line_cursor zp[2]:14 2004.0
(byte*) print_line_cursor#22 print_line_cursor zp[2]:14 641.0
(byte*) print_line_cursor#2 print_line_cursor zp[2]:13 8.749999999999998
(byte*) print_line_cursor#21 print_line_cursor zp[2]:13 2004.0
(byte*) print_line_cursor#22 print_line_cursor zp[2]:13 641.0
(void()) print_ln()
(label) print_ln::@1
(label) print_ln::@return
@ -1174,14 +1177,14 @@
(void()) print_set_screen((byte*) print_set_screen::screen)
(label) print_set_screen::@return
(byte*) print_set_screen::screen
(byte*) print_set_screen::screen#2 screen zp[2]:14 0.26666666666666666
(byte*) print_set_screen::screen#2 screen zp[2]:13 0.26666666666666666
(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at)
(label) print_str_at::@1
(label) print_str_at::@2
(label) print_str_at::@return
(byte*) print_str_at::at
(byte*) print_str_at::at#0 at zp[2]:11 1001.0
(byte*) print_str_at::at#2 at zp[2]:11 1001.0
(byte*) print_str_at::at#0 at zp[2]:10 1001.0
(byte*) print_str_at::at#2 at zp[2]:10 1001.0
(byte*) print_str_at::str
(byte*) print_str_at::str#0 str zp[2]:6 2002.0
(byte*) print_str_at::str#1 str zp[2]:6 2.0
@ -1261,27 +1264,26 @@ zp[2]:6 [ gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3
reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ]
reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ]
reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ]
zp[1]:8 [ gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 gfx_init_plane_fill::fill#6 keyboard_events_size#18 keyboard_events_size#106 keyboard_events_size#97 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#105 keyboard_events_size#1 keyboard_events_size#2 ]
reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
zp[1]:9 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::x1#1 bitmap_line::x0#0 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::x1#1 gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#31 form_field_idx#6 form_field_idx#5 ]
zp[1]:8 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::x1#1 bitmap_line::x0#0 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::x1#1 gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#31 form_field_idx#6 form_field_idx#5 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
zp[1]:10 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#0 bitmap_line_xdyd::yd#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#2 gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 keyboard_event_scan::row#2 keyboard_event_scan::row#1 gfx_mode::cy#4 gfx_mode::cy#1 ]
zp[1]:9 [ bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#0 bitmap_line_xdyd::yd#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#2 gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 keyboard_event_scan::row#2 keyboard_event_scan::row#1 gfx_mode::cy#4 gfx_mode::cy#1 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ]
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
zp[2]:11 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 memset::dst#2 memset::dst#4 memset::dst#1 memset::str#0 print_char_cursor#20 print_char_cursor#22 print_char_cursor#67 print_char_cursor#68 print_char_cursor#38 print_char_cursor#1 print_str_at::at#2 print_str_at::at#0 gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ]
zp[2]:10 [ gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 memset::dst#2 memset::dst#4 memset::dst#1 memset::str#0 print_char_cursor#20 print_char_cursor#22 print_char_cursor#67 print_char_cursor#68 print_char_cursor#38 print_char_cursor#1 print_str_at::at#2 print_str_at::at#0 gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 ]
reg byte x [ gfx_init_charset::l#2 gfx_init_charset::l#1 ]
zp[1]:13 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 gfx_init_charset::c#4 gfx_init_charset::c#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 keyboard_event_pressed::keycode#4 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ]
zp[2]:14 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 apply_preset::preset#15 get_vic_charset::return#2 get_vic_charset::return#4 gfx_mode::$52 gfx_mode::$53 ]
zp[1]:12 [ gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 gfx_init_charset::c#4 gfx_init_charset::c#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 keyboard_event_pressed::keycode#4 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 ]
zp[2]:13 [ gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::gfxb#0 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 apply_preset::preset#15 get_vic_charset::return#2 get_vic_charset::return#4 gfx_mode::$52 gfx_mode::$53 ]
reg byte x [ gfx_init_screen4::cx#2 gfx_init_screen4::cx#1 ]
reg byte x [ gfx_init_screen3::cx#2 gfx_init_screen3::cx#1 ]
zp[1]:16 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#0 bitmap_line_xdyi::yd#1 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ]
zp[1]:15 [ gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#0 bitmap_line_xdyi::yd#1 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 ]
reg byte x [ gfx_init_screen2::cx#2 gfx_init_screen2::cx#1 ]
reg byte x [ gfx_init_screen1::cx#2 gfx_init_screen1::cx#1 ]
zp[1]:17 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line::y1#0 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
zp[1]:16 [ gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line::y1#0 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 ]
reg byte x [ gfx_init_screen0::cx#2 gfx_init_screen0::cx#1 ]
reg byte a [ gfx_mode::$18 ]
reg byte x [ gfx_mode::plane_a_offs#0 ]
@ -1336,7 +1338,7 @@ reg byte a [ keyboard_matrix_read::return#0 ]
reg byte a [ form_control::return#0 ]
reg byte a [ form_mode::$11 ]
reg byte a [ apply_preset::idx#0 ]
reg byte a [ form_field_ptr::y#0 ]
reg byte y [ form_field_ptr::y#0 ]
reg byte a [ form_control::$12 ]
reg byte a [ keyboard_event_get::return#4 ]
reg byte a [ form_control::key_event#0 ]
@ -1347,14 +1349,14 @@ reg byte a [ form_control::$13 ]
reg byte a [ form_set_screen::$0 ]
reg byte a [ form_set_screen::$1 ]
reg byte a [ print_str_lines::ch#0 ]
zp[4]:18 [ gfx_init_plane_fill::$0 ]
zp[2]:22 [ gfx_init_plane_fill::$1 gfx_mode::$38 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ]
zp[2]:17 [ memset::end#0 gfx_mode::$38 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 ]
zp[4]:19 [ gfx_init_plane_fill::$0 ]
zp[2]:23 [ gfx_init_plane_fill::$1 gfx_mode::$40 ]
reg byte a [ gfx_init_plane_fill::gfxbCpuBank#0 ]
reg byte a [ gfx_init_plane_horisontal2::$2 ]
reg byte a [ gfx_init_plane_horisontal2::row#0 ]
reg byte a [ gfx_init_plane_horisontal::$2 ]
reg byte a [ gfx_init_plane_charset8::$2 ]
zp[2]:24 [ gfx_init_plane_8bppchunky::$5 gfx_mode::$40 ]
reg byte a [ gfx_init_plane_8bppchunky::c#0 ]
reg byte x [ bitmap_line::x1#0 ]
reg byte y [ bitmap_line::yd#2 ]
@ -1362,8 +1364,8 @@ reg byte y [ bitmap_line::yd#1 ]
reg byte y [ bitmap_line::yd#10 ]
reg byte y [ bitmap_line::yd#11 ]
reg byte x [ bitmap_line_xdyi::$6 ]
zp[2]:26 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 form_field_ptr::line#0 gfx_mode::$24 ]
zp[2]:28 [ bitmap_plot::plotter_y#0 memset::end#0 gfx_mode::$26 ]
zp[2]:25 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 gfx_init_plane_8bppchunky::$5 form_field_ptr::line#0 gfx_mode::$24 ]
zp[2]:27 [ bitmap_plot::plotter_y#0 form_field_ptr::return#0 form_field_ptr::return#3 form_control::field#0 gfx_mode::$26 ]
reg byte a [ bitmap_plot::$1 ]
reg byte a [ bitmap_line_ydxi::$6 ]
reg byte x [ bitmap_line_xdyd::$6 ]
@ -1373,7 +1375,7 @@ reg byte a [ bitmap_init::$7 ]
reg byte a [ bitmap_init::$8 ]
reg byte a [ bitmap_init::$9 ]
reg byte a [ gfx_init_screen3::$0 ]
zp[1]:30 [ gfx_init_screen3::$1 form_field_ptr::x#0 ]
zp[1]:29 [ gfx_init_screen3::$1 bitmap_init::$10 form_field_ptr::x#0 keyboard_event_pressed::row_bits#0 keyboard_event_scan::row_scan#0 gfx_mode::$50 bitmap_clear::y#4 bitmap_clear::y#1 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::xd#1 bitmap_line::xd#2 bitmap_line::xd#1 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::xd#1 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
reg byte a [ gfx_init_screen3::$2 ]
reg byte a [ gfx_init_screen3::$3 ]
reg byte a [ gfx_init_screen2::$0 ]
@ -1383,6 +1385,6 @@ reg byte a [ gfx_init_screen2::$4 ]
reg byte a [ gfx_init_screen1::$0 ]
reg byte a [ gfx_init_screen1::$1 ]
reg byte a [ gfx_init_screen0::$0 ]
zp[1]:31 [ gfx_init_screen0::$1 gfx_init_screen2::col2#0 bitmap_init::$10 keyboard_event_pressed::row_bits#0 keyboard_event_scan::row_scan#0 gfx_mode::$50 bitmap_clear::y#4 bitmap_clear::y#1 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::xd#1 bitmap_line::xd#2 bitmap_line::xd#1 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::xd#1 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
zp[1]:30 [ gfx_init_screen0::$1 gfx_init_screen2::col2#0 gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 gfx_init_plane_fill::fill#6 keyboard_events_size#18 keyboard_events_size#106 keyboard_events_size#97 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#105 keyboard_events_size#1 keyboard_events_size#2 ]
reg byte a [ gfx_init_screen0::$2 ]
reg byte a [ gfx_init_screen0::$3 ]

View File

@ -7114,112 +7114,112 @@ Identical Phi Values (byte) dtv_control#243 (byte) dtv_control#48
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [138] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) memset::$1 [7] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [17] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str_lines::$2 [30] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@4
Simple Condition (bool~) print_str_lines::$0 [36] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@5
Simple Condition (bool~) print_str_lines::$3 [39] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@4
Simple Condition (bool~) print_ln::$1 [57] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1
Simple Condition (bool~) bitmap_init::$4 [122] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$5 [126] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$12 [141] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$14 [145] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_clear::$1 [161] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
Simple Condition (bool~) bitmap_clear::$2 [165] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
Simple Condition (bool~) bitmap_line::$0 [181] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
Simple Condition (bool~) bitmap_line::$12 [186] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@20
Simple Condition (bool~) bitmap_line::$2 [191] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@10
Simple Condition (bool~) bitmap_line::$8 [196] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#2) goto bitmap_line::@15
Simple Condition (bool~) bitmap_line::$4 [201] if((byte) bitmap_line::yd#2<(byte) bitmap_line::xd#2) goto bitmap_line::@11
Simple Condition (bool~) bitmap_line::$18 [234] if((byte) bitmap_line::yd#11<(byte) bitmap_line::xd#1) goto bitmap_line::@25
Simple Condition (bool~) bitmap_line::$14 [239] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#1) goto bitmap_line::@21
Simple Condition (bool~) bitmap_line_xdyi::$4 [282] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2
Simple Condition (bool~) bitmap_line_xdyi::$7 [286] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1
Simple Condition (bool~) bitmap_line_xdyd::$4 [305] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2
Simple Condition (bool~) bitmap_line_xdyd::$7 [309] if((byte) bitmap_line_xdyd::x#2!=(byte~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1
Simple Condition (bool~) bitmap_line_ydxi::$4 [328] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2
Simple Condition (bool~) bitmap_line_ydxi::$7 [332] if((byte) bitmap_line_ydxi::y#2!=(byte~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1
Simple Condition (bool~) bitmap_line_ydxd::$4 [352] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2
Simple Condition (bool~) bitmap_line_ydxd::$7 [356] if((byte) bitmap_line_ydxd::y#3!=(byte~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1
Simple Condition (bool~) menu::$3 [397] if((byte) menu::i#1!=rangelast(0,$f)) goto menu::@1
Simple Condition (bool~) menu::$4 [402] if((byte*) menu::c#2!=(const byte*) COLS+(word) $3e8) goto menu::@4
Simple Condition (bool~) menu::$7 [434] if((byte~) menu::$5==(byte) 0) goto menu::@12
Simple Condition (bool~) menu::$11 [443] if((byte~) menu::$9==(byte) 0) goto menu::@13
Simple Condition (bool~) menu::$15 [462] if((byte~) menu::$13==(byte) 0) goto menu::@14
Simple Condition (bool~) menu::$19 [475] if((byte~) menu::$17==(byte) 0) goto menu::@15
Simple Condition (bool~) menu::$23 [488] if((byte~) menu::$21==(byte) 0) goto menu::@16
Simple Condition (bool~) menu::$27 [501] if((byte~) menu::$25==(byte) 0) goto menu::@17
Simple Condition (bool~) menu::$31 [514] if((byte~) menu::$29==(byte) 0) goto menu::@18
Simple Condition (bool~) menu::$35 [527] if((byte~) menu::$33==(byte) 0) goto menu::@19
Simple Condition (bool~) menu::$39 [540] if((byte~) menu::$37==(byte) 0) goto menu::@20
Simple Condition (bool~) menu::$43 [553] if((byte~) menu::$41==(byte) 0) goto menu::@21
Simple Condition (bool~) menu::$47 [566] if((byte~) menu::$45==(byte) 0) goto menu::@22
Simple Condition (bool~) menu::$51 [579] if((byte~) menu::$49==(byte) 0) goto menu::@9
Simple Condition (bool~) mode_ctrl::$0 [595] if(*((const byte*) RASTER)!=(byte) $ff) goto mode_ctrl::@4
Simple Condition (bool~) mode_ctrl::$3 [604] if((byte~) mode_ctrl::$1==(byte) 0) goto mode_ctrl::@12
Simple Condition (bool~) mode_ctrl::$6 [614] if((byte~) mode_ctrl::$4==(byte) 0) goto mode_ctrl::@13
Simple Condition (bool~) mode_ctrl::$10 [626] if((byte~) mode_ctrl::$8==(byte) 0) goto mode_ctrl::@14
Simple Condition (bool~) mode_ctrl::$14 [638] if((byte~) mode_ctrl::$12==(byte) 0) goto mode_ctrl::@15
Simple Condition (bool~) mode_ctrl::$18 [650] if((byte~) mode_ctrl::$16==(byte) 0) goto mode_ctrl::@16
Simple Condition (bool~) mode_ctrl::$22 [662] if((byte~) mode_ctrl::$20==(byte) 0) goto mode_ctrl::@17
Simple Condition (bool~) mode_ctrl::$26 [674] if((byte~) mode_ctrl::$24==(byte) 0) goto mode_ctrl::@18
Simple Condition (bool~) mode_ctrl::$30 [686] if((byte~) mode_ctrl::$28==(byte) 0) goto mode_ctrl::@19
Simple Condition (bool~) mode_ctrl::$32 [693] if((byte) mode_ctrl::ctrl#14==(byte) dtv_control#114) goto mode_ctrl::@1
Simple Condition (bool~) mode_stdchar::$1 [715] if((byte) mode_stdchar::i#1!=rangelast(0,$f)) goto mode_stdchar::@1
Simple Condition (bool~) mode_stdchar::$8 [737] if((byte) mode_stdchar::cx#1!=rangelast(0,$27)) goto mode_stdchar::@4
Simple Condition (bool~) mode_stdchar::$9 [741] if((byte) mode_stdchar::cy#1!=rangelast(0,$18)) goto mode_stdchar::@3
Simple Condition (bool~) mode_ecmchar::$1 [764] if((byte) mode_ecmchar::i#1!=rangelast(0,$f)) goto mode_ecmchar::@1
Simple Condition (bool~) mode_ecmchar::$8 [789] if((byte) mode_ecmchar::cx#1!=rangelast(0,$27)) goto mode_ecmchar::@4
Simple Condition (bool~) mode_ecmchar::$9 [793] if((byte) mode_ecmchar::cy#1!=rangelast(0,$18)) goto mode_ecmchar::@3
Simple Condition (bool~) mode_mcchar::$1 [816] if((byte) mode_mcchar::i#1!=rangelast(0,$f)) goto mode_mcchar::@1
Simple Condition (bool~) mode_mcchar::$8 [840] if((byte) mode_mcchar::cx#1!=rangelast(0,$27)) goto mode_mcchar::@4
Simple Condition (bool~) mode_mcchar::$9 [844] if((byte) mode_mcchar::cy#1!=rangelast(0,$18)) goto mode_mcchar::@3
Simple Condition (bool~) mode_stdbitmap::$3 [865] if((byte) mode_stdbitmap::i#1!=rangelast(0,$f)) goto mode_stdbitmap::@1
Simple Condition (bool~) mode_stdbitmap::$9 [885] if((byte) mode_stdbitmap::cx#1!=rangelast(0,$27)) goto mode_stdbitmap::@4
Simple Condition (bool~) mode_stdbitmap::$10 [889] if((byte) mode_stdbitmap::cy#1!=rangelast(0,$18)) goto mode_stdbitmap::@3
Simple Condition (bool~) mode_stdbitmap::$11 [899] if((byte) mode_stdbitmap::l#2<(const byte) mode_stdbitmap::lines_cnt) goto mode_stdbitmap::@8
Simple Condition (bool~) mode_hicolstdchar::$1 [932] if((byte) mode_hicolstdchar::i#1!=rangelast(0,$f)) goto mode_hicolstdchar::@1
Simple Condition (bool~) mode_hicolstdchar::$6 [953] if((byte) mode_hicolstdchar::cx#1!=rangelast(0,$27)) goto mode_hicolstdchar::@4
Simple Condition (bool~) mode_hicolstdchar::$7 [957] if((byte) mode_hicolstdchar::cy#1!=rangelast(0,$18)) goto mode_hicolstdchar::@3
Simple Condition (bool~) mode_hicolecmchar::$1 [980] if((byte) mode_hicolecmchar::i#1!=rangelast(0,$f)) goto mode_hicolecmchar::@1
Simple Condition (bool~) mode_hicolecmchar::$6 [1004] if((byte) mode_hicolecmchar::cx#1!=rangelast(0,$27)) goto mode_hicolecmchar::@4
Simple Condition (bool~) mode_hicolecmchar::$7 [1008] if((byte) mode_hicolecmchar::cy#1!=rangelast(0,$18)) goto mode_hicolecmchar::@3
Simple Condition (bool~) mode_hicolmcchar::$1 [1031] if((byte) mode_hicolmcchar::i#1!=rangelast(0,$f)) goto mode_hicolmcchar::@1
Simple Condition (bool~) mode_hicolmcchar::$6 [1054] if((byte) mode_hicolmcchar::cx#1!=rangelast(0,$27)) goto mode_hicolmcchar::@4
Simple Condition (bool~) mode_hicolmcchar::$7 [1058] if((byte) mode_hicolmcchar::cy#1!=rangelast(0,$18)) goto mode_hicolmcchar::@3
Simple Condition (bool~) mode_twoplanebitmap::$1 [1089] if((byte) mode_twoplanebitmap::i#1!=rangelast(0,$f)) goto mode_twoplanebitmap::@1
Simple Condition (bool~) mode_twoplanebitmap::$6 [1107] if((byte) mode_twoplanebitmap::cx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@4
Simple Condition (bool~) mode_twoplanebitmap::$7 [1111] if((byte) mode_twoplanebitmap::cy#1!=rangelast(0,$18)) goto mode_twoplanebitmap::@3
Simple Condition (bool~) mode_twoplanebitmap::$9 [1120] if((byte~) mode_twoplanebitmap::$8==(byte) 0) goto mode_twoplanebitmap::@9
Simple Condition (bool~) mode_twoplanebitmap::$10 [1130] if((byte) mode_twoplanebitmap::ax#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@8
Simple Condition (bool~) mode_twoplanebitmap::$11 [1134] if((byte) mode_twoplanebitmap::ay#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@7
Simple Condition (bool~) mode_twoplanebitmap::$12 [1145] if((byte) mode_twoplanebitmap::bx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@16
Simple Condition (bool~) mode_twoplanebitmap::$13 [1149] if((byte) mode_twoplanebitmap::by#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@15
Simple Condition (bool~) mode_sixsfred::$1 [1180] if((byte) mode_sixsfred::i#1!=rangelast(0,$f)) goto mode_sixsfred::@1
Simple Condition (bool~) mode_sixsfred::$4 [1194] if((byte) mode_sixsfred::cx#1!=rangelast(0,$27)) goto mode_sixsfred::@4
Simple Condition (bool~) mode_sixsfred::$5 [1198] if((byte) mode_sixsfred::cy#1!=rangelast(0,$18)) goto mode_sixsfred::@3
Simple Condition (bool~) mode_sixsfred::$8 [1212] if((byte) mode_sixsfred::ax#1!=rangelast(0,$27)) goto mode_sixsfred::@8
Simple Condition (bool~) mode_sixsfred::$9 [1216] if((byte) mode_sixsfred::ay#1!=rangelast(0,$c7)) goto mode_sixsfred::@7
Simple Condition (bool~) mode_sixsfred::$10 [1227] if((byte) mode_sixsfred::bx#1!=rangelast(0,$27)) goto mode_sixsfred::@12
Simple Condition (bool~) mode_sixsfred::$11 [1231] if((byte) mode_sixsfred::by#1!=rangelast(0,$c7)) goto mode_sixsfred::@11
Simple Condition (bool~) mode_sixsfred2::$1 [1262] if((byte) mode_sixsfred2::i#1!=rangelast(0,$f)) goto mode_sixsfred2::@1
Simple Condition (bool~) mode_sixsfred2::$6 [1278] if((byte) mode_sixsfred2::cx#1!=rangelast(0,$27)) goto mode_sixsfred2::@4
Simple Condition (bool~) mode_sixsfred2::$7 [1282] if((byte) mode_sixsfred2::cy#1!=rangelast(0,$18)) goto mode_sixsfred2::@3
Simple Condition (bool~) mode_sixsfred2::$10 [1296] if((byte) mode_sixsfred2::ax#1!=rangelast(0,$27)) goto mode_sixsfred2::@8
Simple Condition (bool~) mode_sixsfred2::$11 [1300] if((byte) mode_sixsfred2::ay#1!=rangelast(0,$c7)) goto mode_sixsfred2::@7
Simple Condition (bool~) mode_sixsfred2::$12 [1311] if((byte) mode_sixsfred2::bx#1!=rangelast(0,$27)) goto mode_sixsfred2::@12
Simple Condition (bool~) mode_sixsfred2::$13 [1315] if((byte) mode_sixsfred2::by#1!=rangelast(0,$c7)) goto mode_sixsfred2::@11
Simple Condition (bool~) mode_8bpppixelcell::$1 [1345] if((byte) mode_8bpppixelcell::i#1!=rangelast(0,$f)) goto mode_8bpppixelcell::@1
Simple Condition (bool~) mode_8bpppixelcell::$6 [1360] if((byte) mode_8bpppixelcell::ax#1!=rangelast(0,$27)) goto mode_8bpppixelcell::@4
Simple Condition (bool~) mode_8bpppixelcell::$7 [1364] if((byte) mode_8bpppixelcell::ay#1!=rangelast(0,$18)) goto mode_8bpppixelcell::@3
Simple Condition (bool~) mode_8bpppixelcell::$10 [1382] if((byte~) mode_8bpppixelcell::$8==(byte) 0) goto mode_8bpppixelcell::@10
Simple Condition (bool~) mode_8bpppixelcell::$12 [1391] if((byte) mode_8bpppixelcell::cp#1!=rangelast(0,7)) goto mode_8bpppixelcell::@9
Simple Condition (bool~) mode_8bpppixelcell::$13 [1397] if((byte) mode_8bpppixelcell::cr#1!=rangelast(0,7)) goto mode_8bpppixelcell::@8
Simple Condition (bool~) mode_8bpppixelcell::$14 [1401] if((byte) mode_8bpppixelcell::ch#1!=rangelast(0,$ff)) goto mode_8bpppixelcell::@7
Simple Condition (bool~) mode_8bppchunkybmm::$3 [1426] if((byte) mode_8bppchunkybmm::i#1!=rangelast(0,$f)) goto mode_8bppchunkybmm::@1
Simple Condition (bool~) mode_8bppchunkybmm::$5 [1440] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word) $8000) goto mode_8bppchunkybmm::@5
Simple Condition (bool~) mode_8bppchunkybmm::$9 [1449] if((word) mode_8bppchunkybmm::x#1!=rangelast(0,$13f)) goto mode_8bppchunkybmm::@4
Simple Condition (bool~) mode_8bppchunkybmm::$10 [1459] if((byte) mode_8bppchunkybmm::y#1!=rangelast(0,$c7)) goto mode_8bppchunkybmm::@3
Simple Condition (bool~) memset::$1 [6] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str_lines::$2 [21] if((byte) 0!=*((byte*) print_str_lines::str#2)) goto print_str_lines::@4
Simple Condition (bool~) print_str_lines::$0 [26] if((byte) 0==(byte) print_str_lines::ch#0) goto print_str_lines::@5
Simple Condition (bool~) print_str_lines::$3 [29] if((byte) 0!=(byte) print_str_lines::ch#0) goto print_str_lines::@4
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#19<(byte*) print_char_cursor#32) goto print_ln::@1
Simple Condition (bool~) bitmap_init::$4 [75] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$5 [79] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$12 [92] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$14 [96] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_clear::$1 [109] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
Simple Condition (bool~) bitmap_clear::$2 [112] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
Simple Condition (bool~) bitmap_line::$0 [126] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
Simple Condition (bool~) bitmap_line::$12 [129] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@20
Simple Condition (bool~) bitmap_line::$2 [132] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@10
Simple Condition (bool~) bitmap_line::$8 [135] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#2) goto bitmap_line::@15
Simple Condition (bool~) bitmap_line::$4 [138] if((byte) bitmap_line::yd#2<(byte) bitmap_line::xd#2) goto bitmap_line::@11
Simple Condition (bool~) bitmap_line::$18 [165] if((byte) bitmap_line::yd#11<(byte) bitmap_line::xd#1) goto bitmap_line::@25
Simple Condition (bool~) bitmap_line::$14 [168] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#1) goto bitmap_line::@21
Simple Condition (bool~) bitmap_line_xdyi::$4 [203] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2
Simple Condition (bool~) bitmap_line_xdyi::$7 [207] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1
Simple Condition (bool~) bitmap_line_xdyd::$4 [220] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2
Simple Condition (bool~) bitmap_line_xdyd::$7 [224] if((byte) bitmap_line_xdyd::x#2!=(byte~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1
Simple Condition (bool~) bitmap_line_ydxi::$4 [237] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2
Simple Condition (bool~) bitmap_line_ydxi::$7 [241] if((byte) bitmap_line_ydxi::y#2!=(byte~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1
Simple Condition (bool~) bitmap_line_ydxd::$4 [254] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2
Simple Condition (bool~) bitmap_line_ydxd::$7 [258] if((byte) bitmap_line_ydxd::y#3!=(byte~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1
Simple Condition (bool~) menu::$3 [287] if((byte) menu::i#1!=rangelast(0,$f)) goto menu::@1
Simple Condition (bool~) menu::$4 [291] if((byte*) menu::c#2!=(const byte*) COLS+(word) $3e8) goto menu::@4
Simple Condition (bool~) menu::$7 [311] if((byte~) menu::$5==(byte) 0) goto menu::@12
Simple Condition (bool~) menu::$11 [317] if((byte~) menu::$9==(byte) 0) goto menu::@13
Simple Condition (bool~) menu::$15 [327] if((byte~) menu::$13==(byte) 0) goto menu::@14
Simple Condition (bool~) menu::$19 [335] if((byte~) menu::$17==(byte) 0) goto menu::@15
Simple Condition (bool~) menu::$23 [343] if((byte~) menu::$21==(byte) 0) goto menu::@16
Simple Condition (bool~) menu::$27 [351] if((byte~) menu::$25==(byte) 0) goto menu::@17
Simple Condition (bool~) menu::$31 [359] if((byte~) menu::$29==(byte) 0) goto menu::@18
Simple Condition (bool~) menu::$35 [367] if((byte~) menu::$33==(byte) 0) goto menu::@19
Simple Condition (bool~) menu::$39 [375] if((byte~) menu::$37==(byte) 0) goto menu::@20
Simple Condition (bool~) menu::$43 [383] if((byte~) menu::$41==(byte) 0) goto menu::@21
Simple Condition (bool~) menu::$47 [391] if((byte~) menu::$45==(byte) 0) goto menu::@22
Simple Condition (bool~) menu::$51 [399] if((byte~) menu::$49==(byte) 0) goto menu::@9
Simple Condition (bool~) mode_ctrl::$0 [410] if(*((const byte*) RASTER)!=(byte) $ff) goto mode_ctrl::@4
Simple Condition (bool~) mode_ctrl::$3 [416] if((byte~) mode_ctrl::$1==(byte) 0) goto mode_ctrl::@12
Simple Condition (bool~) mode_ctrl::$6 [423] if((byte~) mode_ctrl::$4==(byte) 0) goto mode_ctrl::@13
Simple Condition (bool~) mode_ctrl::$10 [432] if((byte~) mode_ctrl::$8==(byte) 0) goto mode_ctrl::@14
Simple Condition (bool~) mode_ctrl::$14 [440] if((byte~) mode_ctrl::$12==(byte) 0) goto mode_ctrl::@15
Simple Condition (bool~) mode_ctrl::$18 [448] if((byte~) mode_ctrl::$16==(byte) 0) goto mode_ctrl::@16
Simple Condition (bool~) mode_ctrl::$22 [456] if((byte~) mode_ctrl::$20==(byte) 0) goto mode_ctrl::@17
Simple Condition (bool~) mode_ctrl::$26 [464] if((byte~) mode_ctrl::$24==(byte) 0) goto mode_ctrl::@18
Simple Condition (bool~) mode_ctrl::$30 [472] if((byte~) mode_ctrl::$28==(byte) 0) goto mode_ctrl::@19
Simple Condition (bool~) mode_ctrl::$32 [476] if((byte) mode_ctrl::ctrl#14==(byte) dtv_control#114) goto mode_ctrl::@1
Simple Condition (bool~) mode_stdchar::$1 [496] if((byte) mode_stdchar::i#1!=rangelast(0,$f)) goto mode_stdchar::@1
Simple Condition (bool~) mode_stdchar::$8 [517] if((byte) mode_stdchar::cx#1!=rangelast(0,$27)) goto mode_stdchar::@4
Simple Condition (bool~) mode_stdchar::$9 [520] if((byte) mode_stdchar::cy#1!=rangelast(0,$18)) goto mode_stdchar::@3
Simple Condition (bool~) mode_ecmchar::$1 [539] if((byte) mode_ecmchar::i#1!=rangelast(0,$f)) goto mode_ecmchar::@1
Simple Condition (bool~) mode_ecmchar::$8 [563] if((byte) mode_ecmchar::cx#1!=rangelast(0,$27)) goto mode_ecmchar::@4
Simple Condition (bool~) mode_ecmchar::$9 [566] if((byte) mode_ecmchar::cy#1!=rangelast(0,$18)) goto mode_ecmchar::@3
Simple Condition (bool~) mode_mcchar::$1 [585] if((byte) mode_mcchar::i#1!=rangelast(0,$f)) goto mode_mcchar::@1
Simple Condition (bool~) mode_mcchar::$8 [608] if((byte) mode_mcchar::cx#1!=rangelast(0,$27)) goto mode_mcchar::@4
Simple Condition (bool~) mode_mcchar::$9 [611] if((byte) mode_mcchar::cy#1!=rangelast(0,$18)) goto mode_mcchar::@3
Simple Condition (bool~) mode_stdbitmap::$3 [628] if((byte) mode_stdbitmap::i#1!=rangelast(0,$f)) goto mode_stdbitmap::@1
Simple Condition (bool~) mode_stdbitmap::$9 [645] if((byte) mode_stdbitmap::cx#1!=rangelast(0,$27)) goto mode_stdbitmap::@4
Simple Condition (bool~) mode_stdbitmap::$10 [648] if((byte) mode_stdbitmap::cy#1!=rangelast(0,$18)) goto mode_stdbitmap::@3
Simple Condition (bool~) mode_stdbitmap::$11 [655] if((byte) mode_stdbitmap::l#2<(const byte) mode_stdbitmap::lines_cnt) goto mode_stdbitmap::@8
Simple Condition (bool~) mode_hicolstdchar::$1 [682] if((byte) mode_hicolstdchar::i#1!=rangelast(0,$f)) goto mode_hicolstdchar::@1
Simple Condition (bool~) mode_hicolstdchar::$6 [701] if((byte) mode_hicolstdchar::cx#1!=rangelast(0,$27)) goto mode_hicolstdchar::@4
Simple Condition (bool~) mode_hicolstdchar::$7 [704] if((byte) mode_hicolstdchar::cy#1!=rangelast(0,$18)) goto mode_hicolstdchar::@3
Simple Condition (bool~) mode_hicolecmchar::$1 [723] if((byte) mode_hicolecmchar::i#1!=rangelast(0,$f)) goto mode_hicolecmchar::@1
Simple Condition (bool~) mode_hicolecmchar::$6 [745] if((byte) mode_hicolecmchar::cx#1!=rangelast(0,$27)) goto mode_hicolecmchar::@4
Simple Condition (bool~) mode_hicolecmchar::$7 [748] if((byte) mode_hicolecmchar::cy#1!=rangelast(0,$18)) goto mode_hicolecmchar::@3
Simple Condition (bool~) mode_hicolmcchar::$1 [767] if((byte) mode_hicolmcchar::i#1!=rangelast(0,$f)) goto mode_hicolmcchar::@1
Simple Condition (bool~) mode_hicolmcchar::$6 [788] if((byte) mode_hicolmcchar::cx#1!=rangelast(0,$27)) goto mode_hicolmcchar::@4
Simple Condition (bool~) mode_hicolmcchar::$7 [791] if((byte) mode_hicolmcchar::cy#1!=rangelast(0,$18)) goto mode_hicolmcchar::@3
Simple Condition (bool~) mode_twoplanebitmap::$1 [818] if((byte) mode_twoplanebitmap::i#1!=rangelast(0,$f)) goto mode_twoplanebitmap::@1
Simple Condition (bool~) mode_twoplanebitmap::$6 [835] if((byte) mode_twoplanebitmap::cx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@4
Simple Condition (bool~) mode_twoplanebitmap::$7 [838] if((byte) mode_twoplanebitmap::cy#1!=rangelast(0,$18)) goto mode_twoplanebitmap::@3
Simple Condition (bool~) mode_twoplanebitmap::$9 [846] if((byte~) mode_twoplanebitmap::$8==(byte) 0) goto mode_twoplanebitmap::@9
Simple Condition (bool~) mode_twoplanebitmap::$10 [854] if((byte) mode_twoplanebitmap::ax#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@8
Simple Condition (bool~) mode_twoplanebitmap::$11 [857] if((byte) mode_twoplanebitmap::ay#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@7
Simple Condition (bool~) mode_twoplanebitmap::$12 [867] if((byte) mode_twoplanebitmap::bx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@16
Simple Condition (bool~) mode_twoplanebitmap::$13 [870] if((byte) mode_twoplanebitmap::by#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@15
Simple Condition (bool~) mode_sixsfred::$1 [897] if((byte) mode_sixsfred::i#1!=rangelast(0,$f)) goto mode_sixsfred::@1
Simple Condition (bool~) mode_sixsfred::$4 [910] if((byte) mode_sixsfred::cx#1!=rangelast(0,$27)) goto mode_sixsfred::@4
Simple Condition (bool~) mode_sixsfred::$5 [913] if((byte) mode_sixsfred::cy#1!=rangelast(0,$18)) goto mode_sixsfred::@3
Simple Condition (bool~) mode_sixsfred::$8 [925] if((byte) mode_sixsfred::ax#1!=rangelast(0,$27)) goto mode_sixsfred::@8
Simple Condition (bool~) mode_sixsfred::$9 [928] if((byte) mode_sixsfred::ay#1!=rangelast(0,$c7)) goto mode_sixsfred::@7
Simple Condition (bool~) mode_sixsfred::$10 [938] if((byte) mode_sixsfred::bx#1!=rangelast(0,$27)) goto mode_sixsfred::@12
Simple Condition (bool~) mode_sixsfred::$11 [941] if((byte) mode_sixsfred::by#1!=rangelast(0,$c7)) goto mode_sixsfred::@11
Simple Condition (bool~) mode_sixsfred2::$1 [968] if((byte) mode_sixsfred2::i#1!=rangelast(0,$f)) goto mode_sixsfred2::@1
Simple Condition (bool~) mode_sixsfred2::$6 [983] if((byte) mode_sixsfred2::cx#1!=rangelast(0,$27)) goto mode_sixsfred2::@4
Simple Condition (bool~) mode_sixsfred2::$7 [986] if((byte) mode_sixsfred2::cy#1!=rangelast(0,$18)) goto mode_sixsfred2::@3
Simple Condition (bool~) mode_sixsfred2::$10 [998] if((byte) mode_sixsfred2::ax#1!=rangelast(0,$27)) goto mode_sixsfred2::@8
Simple Condition (bool~) mode_sixsfred2::$11 [1001] if((byte) mode_sixsfred2::ay#1!=rangelast(0,$c7)) goto mode_sixsfred2::@7
Simple Condition (bool~) mode_sixsfred2::$12 [1011] if((byte) mode_sixsfred2::bx#1!=rangelast(0,$27)) goto mode_sixsfred2::@12
Simple Condition (bool~) mode_sixsfred2::$13 [1014] if((byte) mode_sixsfred2::by#1!=rangelast(0,$c7)) goto mode_sixsfred2::@11
Simple Condition (bool~) mode_8bpppixelcell::$1 [1040] if((byte) mode_8bpppixelcell::i#1!=rangelast(0,$f)) goto mode_8bpppixelcell::@1
Simple Condition (bool~) mode_8bpppixelcell::$6 [1054] if((byte) mode_8bpppixelcell::ax#1!=rangelast(0,$27)) goto mode_8bpppixelcell::@4
Simple Condition (bool~) mode_8bpppixelcell::$7 [1057] if((byte) mode_8bpppixelcell::ay#1!=rangelast(0,$18)) goto mode_8bpppixelcell::@3
Simple Condition (bool~) mode_8bpppixelcell::$10 [1073] if((byte~) mode_8bpppixelcell::$8==(byte) 0) goto mode_8bpppixelcell::@10
Simple Condition (bool~) mode_8bpppixelcell::$12 [1081] if((byte) mode_8bpppixelcell::cp#1!=rangelast(0,7)) goto mode_8bpppixelcell::@9
Simple Condition (bool~) mode_8bpppixelcell::$13 [1084] if((byte) mode_8bpppixelcell::cr#1!=rangelast(0,7)) goto mode_8bpppixelcell::@8
Simple Condition (bool~) mode_8bpppixelcell::$14 [1087] if((byte) mode_8bpppixelcell::ch#1!=rangelast(0,$ff)) goto mode_8bpppixelcell::@7
Simple Condition (bool~) mode_8bppchunkybmm::$3 [1108] if((byte) mode_8bppchunkybmm::i#1!=rangelast(0,$f)) goto mode_8bppchunkybmm::@1
Simple Condition (bool~) mode_8bppchunkybmm::$5 [1119] if((byte*) mode_8bppchunkybmm::gfxb#3!=(word) $8000) goto mode_8bppchunkybmm::@5
Simple Condition (bool~) mode_8bppchunkybmm::$9 [1127] if((word) mode_8bppchunkybmm::x#1!=rangelast(0,$13f)) goto mode_8bppchunkybmm::@4
Simple Condition (bool~) mode_8bppchunkybmm::$10 [1134] if((byte) mode_8bppchunkybmm::y#1!=rangelast(0,$c7)) goto mode_8bppchunkybmm::@3
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) print_screen#0 = (byte*) 1024
Constant (const byte) memset::c#0 = ' '
@ -7365,171 +7365,171 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [7] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always true - replacing block destination [368] if(true) goto main::@2
if() condition always false - eliminating [6] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always true - replacing block destination [268] if(true) goto main::@2
Removing PHI-reference to removed block (menu::@9) in block menu::@return
if() condition always true - replacing block destination [425] if(true) goto menu::@10
if() condition always true - replacing block destination [592] if(true) goto mode_ctrl::@4
if() condition always true - replacing block destination [305] if(true) goto menu::@10
if() condition always true - replacing block destination [407] if(true) goto mode_ctrl::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [124] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [126] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [143] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [145] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [159] bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++
Resolved ranged comparison value [161] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (number) $c8
Resolved ranged next value [163] bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++
Resolved ranged comparison value [165] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (number) $28
Resolved ranged next value [395] menu::i#1 ← ++ menu::i#2 to ++
Resolved ranged comparison value [397] if(menu::i#1!=rangelast(0,$f)) goto menu::@1 to (number) $10
Resolved ranged next value [713] mode_stdchar::i#1 ← ++ mode_stdchar::i#2 to ++
Resolved ranged comparison value [715] if(mode_stdchar::i#1!=rangelast(0,$f)) goto mode_stdchar::@1 to (number) $10
Resolved ranged next value [735] mode_stdchar::cx#1 ← ++ mode_stdchar::cx#2 to ++
Resolved ranged comparison value [737] if(mode_stdchar::cx#1!=rangelast(0,$27)) goto mode_stdchar::@4 to (number) $28
Resolved ranged next value [739] mode_stdchar::cy#1 ← ++ mode_stdchar::cy#4 to ++
Resolved ranged comparison value [741] if(mode_stdchar::cy#1!=rangelast(0,$18)) goto mode_stdchar::@3 to (number) $19
Resolved ranged next value [762] mode_ecmchar::i#1 ← ++ mode_ecmchar::i#2 to ++
Resolved ranged comparison value [764] if(mode_ecmchar::i#1!=rangelast(0,$f)) goto mode_ecmchar::@1 to (number) $10
Resolved ranged next value [787] mode_ecmchar::cx#1 ← ++ mode_ecmchar::cx#2 to ++
Resolved ranged comparison value [789] if(mode_ecmchar::cx#1!=rangelast(0,$27)) goto mode_ecmchar::@4 to (number) $28
Resolved ranged next value [791] mode_ecmchar::cy#1 ← ++ mode_ecmchar::cy#4 to ++
Resolved ranged comparison value [793] if(mode_ecmchar::cy#1!=rangelast(0,$18)) goto mode_ecmchar::@3 to (number) $19
Resolved ranged next value [814] mode_mcchar::i#1 ← ++ mode_mcchar::i#2 to ++
Resolved ranged comparison value [816] if(mode_mcchar::i#1!=rangelast(0,$f)) goto mode_mcchar::@1 to (number) $10
Resolved ranged next value [838] mode_mcchar::cx#1 ← ++ mode_mcchar::cx#2 to ++
Resolved ranged comparison value [840] if(mode_mcchar::cx#1!=rangelast(0,$27)) goto mode_mcchar::@4 to (number) $28
Resolved ranged next value [842] mode_mcchar::cy#1 ← ++ mode_mcchar::cy#4 to ++
Resolved ranged comparison value [844] if(mode_mcchar::cy#1!=rangelast(0,$18)) goto mode_mcchar::@3 to (number) $19
Resolved ranged next value [863] mode_stdbitmap::i#1 ← ++ mode_stdbitmap::i#2 to ++
Resolved ranged comparison value [865] if(mode_stdbitmap::i#1!=rangelast(0,$f)) goto mode_stdbitmap::@1 to (number) $10
Resolved ranged next value [883] mode_stdbitmap::cx#1 ← ++ mode_stdbitmap::cx#2 to ++
Resolved ranged comparison value [885] if(mode_stdbitmap::cx#1!=rangelast(0,$27)) goto mode_stdbitmap::@4 to (number) $28
Resolved ranged next value [887] mode_stdbitmap::cy#1 ← ++ mode_stdbitmap::cy#4 to ++
Resolved ranged comparison value [889] if(mode_stdbitmap::cy#1!=rangelast(0,$18)) goto mode_stdbitmap::@3 to (number) $19
Resolved ranged next value [930] mode_hicolstdchar::i#1 ← ++ mode_hicolstdchar::i#2 to ++
Resolved ranged comparison value [932] if(mode_hicolstdchar::i#1!=rangelast(0,$f)) goto mode_hicolstdchar::@1 to (number) $10
Resolved ranged next value [951] mode_hicolstdchar::cx#1 ← ++ mode_hicolstdchar::cx#2 to ++
Resolved ranged comparison value [953] if(mode_hicolstdchar::cx#1!=rangelast(0,$27)) goto mode_hicolstdchar::@4 to (number) $28
Resolved ranged next value [955] mode_hicolstdchar::cy#1 ← ++ mode_hicolstdchar::cy#4 to ++
Resolved ranged comparison value [957] if(mode_hicolstdchar::cy#1!=rangelast(0,$18)) goto mode_hicolstdchar::@3 to (number) $19
Resolved ranged next value [978] mode_hicolecmchar::i#1 ← ++ mode_hicolecmchar::i#2 to ++
Resolved ranged comparison value [980] if(mode_hicolecmchar::i#1!=rangelast(0,$f)) goto mode_hicolecmchar::@1 to (number) $10
Resolved ranged next value [1002] mode_hicolecmchar::cx#1 ← ++ mode_hicolecmchar::cx#2 to ++
Resolved ranged comparison value [1004] if(mode_hicolecmchar::cx#1!=rangelast(0,$27)) goto mode_hicolecmchar::@4 to (number) $28
Resolved ranged next value [1006] mode_hicolecmchar::cy#1 ← ++ mode_hicolecmchar::cy#4 to ++
Resolved ranged comparison value [1008] if(mode_hicolecmchar::cy#1!=rangelast(0,$18)) goto mode_hicolecmchar::@3 to (number) $19
Resolved ranged next value [1029] mode_hicolmcchar::i#1 ← ++ mode_hicolmcchar::i#2 to ++
Resolved ranged comparison value [1031] if(mode_hicolmcchar::i#1!=rangelast(0,$f)) goto mode_hicolmcchar::@1 to (number) $10
Resolved ranged next value [1052] mode_hicolmcchar::cx#1 ← ++ mode_hicolmcchar::cx#2 to ++
Resolved ranged comparison value [1054] if(mode_hicolmcchar::cx#1!=rangelast(0,$27)) goto mode_hicolmcchar::@4 to (number) $28
Resolved ranged next value [1056] mode_hicolmcchar::cy#1 ← ++ mode_hicolmcchar::cy#4 to ++
Resolved ranged comparison value [1058] if(mode_hicolmcchar::cy#1!=rangelast(0,$18)) goto mode_hicolmcchar::@3 to (number) $19
Resolved ranged next value [1087] mode_twoplanebitmap::i#1 ← ++ mode_twoplanebitmap::i#2 to ++
Resolved ranged comparison value [1089] if(mode_twoplanebitmap::i#1!=rangelast(0,$f)) goto mode_twoplanebitmap::@1 to (number) $10
Resolved ranged next value [1105] mode_twoplanebitmap::cx#1 ← ++ mode_twoplanebitmap::cx#2 to ++
Resolved ranged comparison value [1107] if(mode_twoplanebitmap::cx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@4 to (number) $28
Resolved ranged next value [1109] mode_twoplanebitmap::cy#1 ← ++ mode_twoplanebitmap::cy#4 to ++
Resolved ranged comparison value [1111] if(mode_twoplanebitmap::cy#1!=rangelast(0,$18)) goto mode_twoplanebitmap::@3 to (number) $19
Resolved ranged next value [1128] mode_twoplanebitmap::ax#1 ← ++ mode_twoplanebitmap::ax#2 to ++
Resolved ranged comparison value [1130] if(mode_twoplanebitmap::ax#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@8 to (number) $28
Resolved ranged next value [1132] mode_twoplanebitmap::ay#1 ← ++ mode_twoplanebitmap::ay#5 to ++
Resolved ranged comparison value [1134] if(mode_twoplanebitmap::ay#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@7 to (number) $c8
Resolved ranged next value [1143] mode_twoplanebitmap::bx#1 ← ++ mode_twoplanebitmap::bx#2 to ++
Resolved ranged comparison value [1145] if(mode_twoplanebitmap::bx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@16 to (number) $28
Resolved ranged next value [1147] mode_twoplanebitmap::by#1 ← ++ mode_twoplanebitmap::by#4 to ++
Resolved ranged comparison value [1149] if(mode_twoplanebitmap::by#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@15 to (number) $c8
Resolved ranged next value [1178] mode_sixsfred::i#1 ← ++ mode_sixsfred::i#2 to ++
Resolved ranged comparison value [1180] if(mode_sixsfred::i#1!=rangelast(0,$f)) goto mode_sixsfred::@1 to (number) $10
Resolved ranged next value [1192] mode_sixsfred::cx#1 ← ++ mode_sixsfred::cx#2 to ++
Resolved ranged comparison value [1194] if(mode_sixsfred::cx#1!=rangelast(0,$27)) goto mode_sixsfred::@4 to (number) $28
Resolved ranged next value [1196] mode_sixsfred::cy#1 ← ++ mode_sixsfred::cy#4 to ++
Resolved ranged comparison value [1198] if(mode_sixsfred::cy#1!=rangelast(0,$18)) goto mode_sixsfred::@3 to (number) $19
Resolved ranged next value [1210] mode_sixsfred::ax#1 ← ++ mode_sixsfred::ax#2 to ++
Resolved ranged comparison value [1212] if(mode_sixsfred::ax#1!=rangelast(0,$27)) goto mode_sixsfred::@8 to (number) $28
Resolved ranged next value [1214] mode_sixsfred::ay#1 ← ++ mode_sixsfred::ay#4 to ++
Resolved ranged comparison value [1216] if(mode_sixsfred::ay#1!=rangelast(0,$c7)) goto mode_sixsfred::@7 to (number) $c8
Resolved ranged next value [1225] mode_sixsfred::bx#1 ← ++ mode_sixsfred::bx#2 to ++
Resolved ranged comparison value [1227] if(mode_sixsfred::bx#1!=rangelast(0,$27)) goto mode_sixsfred::@12 to (number) $28
Resolved ranged next value [1229] mode_sixsfred::by#1 ← ++ mode_sixsfred::by#4 to ++
Resolved ranged comparison value [1231] if(mode_sixsfred::by#1!=rangelast(0,$c7)) goto mode_sixsfred::@11 to (number) $c8
Resolved ranged next value [1260] mode_sixsfred2::i#1 ← ++ mode_sixsfred2::i#2 to ++
Resolved ranged comparison value [1262] if(mode_sixsfred2::i#1!=rangelast(0,$f)) goto mode_sixsfred2::@1 to (number) $10
Resolved ranged next value [1276] mode_sixsfred2::cx#1 ← ++ mode_sixsfred2::cx#2 to ++
Resolved ranged comparison value [1278] if(mode_sixsfred2::cx#1!=rangelast(0,$27)) goto mode_sixsfred2::@4 to (number) $28
Resolved ranged next value [1280] mode_sixsfred2::cy#1 ← ++ mode_sixsfred2::cy#4 to ++
Resolved ranged comparison value [1282] if(mode_sixsfred2::cy#1!=rangelast(0,$18)) goto mode_sixsfred2::@3 to (number) $19
Resolved ranged next value [1294] mode_sixsfred2::ax#1 ← ++ mode_sixsfred2::ax#2 to ++
Resolved ranged comparison value [1296] if(mode_sixsfred2::ax#1!=rangelast(0,$27)) goto mode_sixsfred2::@8 to (number) $28
Resolved ranged next value [1298] mode_sixsfred2::ay#1 ← ++ mode_sixsfred2::ay#4 to ++
Resolved ranged comparison value [1300] if(mode_sixsfred2::ay#1!=rangelast(0,$c7)) goto mode_sixsfred2::@7 to (number) $c8
Resolved ranged next value [1309] mode_sixsfred2::bx#1 ← ++ mode_sixsfred2::bx#2 to ++
Resolved ranged comparison value [1311] if(mode_sixsfred2::bx#1!=rangelast(0,$27)) goto mode_sixsfred2::@12 to (number) $28
Resolved ranged next value [1313] mode_sixsfred2::by#1 ← ++ mode_sixsfred2::by#4 to ++
Resolved ranged comparison value [1315] if(mode_sixsfred2::by#1!=rangelast(0,$c7)) goto mode_sixsfred2::@11 to (number) $c8
Resolved ranged next value [1343] mode_8bpppixelcell::i#1 ← ++ mode_8bpppixelcell::i#2 to ++
Resolved ranged comparison value [1345] if(mode_8bpppixelcell::i#1!=rangelast(0,$f)) goto mode_8bpppixelcell::@1 to (number) $10
Resolved ranged next value [1358] mode_8bpppixelcell::ax#1 ← ++ mode_8bpppixelcell::ax#2 to ++
Resolved ranged comparison value [1360] if(mode_8bpppixelcell::ax#1!=rangelast(0,$27)) goto mode_8bpppixelcell::@4 to (number) $28
Resolved ranged next value [1362] mode_8bpppixelcell::ay#1 ← ++ mode_8bpppixelcell::ay#4 to ++
Resolved ranged comparison value [1364] if(mode_8bpppixelcell::ay#1!=rangelast(0,$18)) goto mode_8bpppixelcell::@3 to (number) $19
Resolved ranged next value [1389] mode_8bpppixelcell::cp#1 ← ++ mode_8bpppixelcell::cp#2 to ++
Resolved ranged comparison value [1391] if(mode_8bpppixelcell::cp#1!=rangelast(0,7)) goto mode_8bpppixelcell::@9 to (number) 8
Resolved ranged next value [1395] mode_8bpppixelcell::cr#1 ← ++ mode_8bpppixelcell::cr#6 to ++
Resolved ranged comparison value [1397] if(mode_8bpppixelcell::cr#1!=rangelast(0,7)) goto mode_8bpppixelcell::@8 to (number) 8
Resolved ranged next value [1399] mode_8bpppixelcell::ch#1 ← ++ mode_8bpppixelcell::ch#8 to ++
Resolved ranged comparison value [1401] if(mode_8bpppixelcell::ch#1!=rangelast(0,$ff)) goto mode_8bpppixelcell::@7 to (number) 0
Resolved ranged next value [1424] mode_8bppchunkybmm::i#1 ← ++ mode_8bppchunkybmm::i#2 to ++
Resolved ranged comparison value [1426] if(mode_8bppchunkybmm::i#1!=rangelast(0,$f)) goto mode_8bppchunkybmm::@1 to (number) $10
Resolved ranged next value [1447] mode_8bppchunkybmm::x#1 ← ++ mode_8bppchunkybmm::x#2 to ++
Resolved ranged comparison value [1449] if(mode_8bppchunkybmm::x#1!=rangelast(0,$13f)) goto mode_8bppchunkybmm::@4 to (number) $140
Resolved ranged next value [1457] mode_8bppchunkybmm::y#1 ← ++ mode_8bppchunkybmm::y#6 to ++
Resolved ranged comparison value [1459] if(mode_8bppchunkybmm::y#1!=rangelast(0,$c7)) goto mode_8bppchunkybmm::@3 to (number) $c8
Simplifying constant evaluating to zero (byte)(dword)(const byte*) menu::CHARSET/(dword) $10000 in [383] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) menu::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400 in [385] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) menu::SCREEN&(word) $3fff/(byte) $40 in [391] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) menu::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) menu::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_stdchar::CHARSET/(dword) $10000 in [700] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_stdchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400 in [702] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_stdchar::SCREEN&(word) $3fff/(byte) $40 in [709] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_stdchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_stdchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_ecmchar::CHARSET/(dword) $10000 in [749] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_ecmchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400 in [751] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_ecmchar::SCREEN&(word) $3fff/(byte) $40 in [758] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_ecmchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_ecmchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_mcchar::CHARSET/(dword) $10000 in [801] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_mcchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400 in [803] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_mcchar::SCREEN&(word) $3fff/(byte) $40 in [810] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_mcchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_mcchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_stdbitmap::BITMAP/(dword) $10000 in [852] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_stdbitmap::BITMAP/(dword) $10000
Simplifying constant evaluating to zero (word)(const byte*) mode_stdbitmap::SCREEN&(word) $3fff/(byte) $40 in [859] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_stdbitmap::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_stdbitmap::BITMAP&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_hicolstdchar::CHARSET/(dword) $10000 in [917] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_hicolstdchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const byte*) mode_hicolstdchar::COLORS/(word) $400 in [919] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const byte*) mode_hicolstdchar::COLORS/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_hicolstdchar::SCREEN&(word) $3fff/(byte) $40 in [926] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_hicolstdchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_hicolstdchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_hicolecmchar::CHARSET/(dword) $10000 in [965] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_hicolecmchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const byte*) mode_hicolecmchar::COLORS/(word) $400 in [967] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const byte*) mode_hicolecmchar::COLORS/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_hicolecmchar::SCREEN&(word) $3fff/(byte) $40 in [974] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_hicolecmchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_hicolecmchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_hicolmcchar::CHARSET/(dword) $10000 in [1016] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_hicolmcchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const byte*) mode_hicolmcchar::COLORS/(word) $400 in [1018] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const byte*) mode_hicolmcchar::COLORS/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_hicolmcchar::SCREEN&(word) $3fff/(byte) $40 in [1025] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_hicolmcchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_hicolmcchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero <(const byte*) mode_twoplanebitmap::PLANEA in [1070] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) mode_twoplanebitmap::PLANEA
Simplifying constant evaluating to zero <(const byte*) mode_twoplanebitmap::PLANEB in [1076] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) mode_twoplanebitmap::PLANEB
Simplifying constant evaluating to zero >(const byte*) mode_twoplanebitmap::COLORS/(word) $400 in [1083] *((const byte*) DTV_COLOR_BANK_HI) ← >(const byte*) mode_twoplanebitmap::COLORS/(word) $400
Simplifying constant evaluating to zero <(const byte*) mode_sixsfred::PLANEA in [1161] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) mode_sixsfred::PLANEA
Simplifying constant evaluating to zero <(const byte*) mode_sixsfred::PLANEB in [1167] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) mode_sixsfred::PLANEB
Simplifying constant evaluating to zero >(const byte*) mode_sixsfred::COLORS/(word) $400 in [1174] *((const byte*) DTV_COLOR_BANK_HI) ← >(const byte*) mode_sixsfred::COLORS/(word) $400
Simplifying constant evaluating to zero <(const byte*) mode_sixsfred2::PLANEA in [1243] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) mode_sixsfred2::PLANEA
Simplifying constant evaluating to zero <(const byte*) mode_sixsfred2::PLANEB in [1249] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) mode_sixsfred2::PLANEB
Simplifying constant evaluating to zero >(const byte*) mode_sixsfred2::COLORS/(word) $400 in [1256] *((const byte*) DTV_COLOR_BANK_HI) ← >(const byte*) mode_sixsfred2::COLORS/(word) $400
Simplifying constant evaluating to zero <(const byte*) mode_8bpppixelcell::PLANEA in [1327] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) mode_8bpppixelcell::PLANEA
Simplifying constant evaluating to zero <(const byte*) mode_8bpppixelcell::PLANEB in [1333] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) mode_8bpppixelcell::PLANEB
Simplifying constant evaluating to zero <<(const dword) mode_8bppchunkybmm::PLANEB in [1414] *((const byte*) DTV_PLANEB_START_LO) ← <<(const dword) mode_8bppchunkybmm::PLANEB
Simplifying constant evaluating to zero ><(const dword) mode_8bppchunkybmm::PLANEB in [1415] *((const byte*) DTV_PLANEB_START_MI) ← ><(const dword) mode_8bppchunkybmm::PLANEB
Resolved ranged next value [77] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [79] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [94] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [96] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [107] bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++
Resolved ranged comparison value [109] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (number) $c8
Resolved ranged next value [110] bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++
Resolved ranged comparison value [112] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (number) $28
Resolved ranged next value [285] menu::i#1 ← ++ menu::i#2 to ++
Resolved ranged comparison value [287] if(menu::i#1!=rangelast(0,$f)) goto menu::@1 to (number) $10
Resolved ranged next value [494] mode_stdchar::i#1 ← ++ mode_stdchar::i#2 to ++
Resolved ranged comparison value [496] if(mode_stdchar::i#1!=rangelast(0,$f)) goto mode_stdchar::@1 to (number) $10
Resolved ranged next value [515] mode_stdchar::cx#1 ← ++ mode_stdchar::cx#2 to ++
Resolved ranged comparison value [517] if(mode_stdchar::cx#1!=rangelast(0,$27)) goto mode_stdchar::@4 to (number) $28
Resolved ranged next value [518] mode_stdchar::cy#1 ← ++ mode_stdchar::cy#4 to ++
Resolved ranged comparison value [520] if(mode_stdchar::cy#1!=rangelast(0,$18)) goto mode_stdchar::@3 to (number) $19
Resolved ranged next value [537] mode_ecmchar::i#1 ← ++ mode_ecmchar::i#2 to ++
Resolved ranged comparison value [539] if(mode_ecmchar::i#1!=rangelast(0,$f)) goto mode_ecmchar::@1 to (number) $10
Resolved ranged next value [561] mode_ecmchar::cx#1 ← ++ mode_ecmchar::cx#2 to ++
Resolved ranged comparison value [563] if(mode_ecmchar::cx#1!=rangelast(0,$27)) goto mode_ecmchar::@4 to (number) $28
Resolved ranged next value [564] mode_ecmchar::cy#1 ← ++ mode_ecmchar::cy#4 to ++
Resolved ranged comparison value [566] if(mode_ecmchar::cy#1!=rangelast(0,$18)) goto mode_ecmchar::@3 to (number) $19
Resolved ranged next value [583] mode_mcchar::i#1 ← ++ mode_mcchar::i#2 to ++
Resolved ranged comparison value [585] if(mode_mcchar::i#1!=rangelast(0,$f)) goto mode_mcchar::@1 to (number) $10
Resolved ranged next value [606] mode_mcchar::cx#1 ← ++ mode_mcchar::cx#2 to ++
Resolved ranged comparison value [608] if(mode_mcchar::cx#1!=rangelast(0,$27)) goto mode_mcchar::@4 to (number) $28
Resolved ranged next value [609] mode_mcchar::cy#1 ← ++ mode_mcchar::cy#4 to ++
Resolved ranged comparison value [611] if(mode_mcchar::cy#1!=rangelast(0,$18)) goto mode_mcchar::@3 to (number) $19
Resolved ranged next value [626] mode_stdbitmap::i#1 ← ++ mode_stdbitmap::i#2 to ++
Resolved ranged comparison value [628] if(mode_stdbitmap::i#1!=rangelast(0,$f)) goto mode_stdbitmap::@1 to (number) $10
Resolved ranged next value [643] mode_stdbitmap::cx#1 ← ++ mode_stdbitmap::cx#2 to ++
Resolved ranged comparison value [645] if(mode_stdbitmap::cx#1!=rangelast(0,$27)) goto mode_stdbitmap::@4 to (number) $28
Resolved ranged next value [646] mode_stdbitmap::cy#1 ← ++ mode_stdbitmap::cy#4 to ++
Resolved ranged comparison value [648] if(mode_stdbitmap::cy#1!=rangelast(0,$18)) goto mode_stdbitmap::@3 to (number) $19
Resolved ranged next value [680] mode_hicolstdchar::i#1 ← ++ mode_hicolstdchar::i#2 to ++
Resolved ranged comparison value [682] if(mode_hicolstdchar::i#1!=rangelast(0,$f)) goto mode_hicolstdchar::@1 to (number) $10
Resolved ranged next value [699] mode_hicolstdchar::cx#1 ← ++ mode_hicolstdchar::cx#2 to ++
Resolved ranged comparison value [701] if(mode_hicolstdchar::cx#1!=rangelast(0,$27)) goto mode_hicolstdchar::@4 to (number) $28
Resolved ranged next value [702] mode_hicolstdchar::cy#1 ← ++ mode_hicolstdchar::cy#4 to ++
Resolved ranged comparison value [704] if(mode_hicolstdchar::cy#1!=rangelast(0,$18)) goto mode_hicolstdchar::@3 to (number) $19
Resolved ranged next value [721] mode_hicolecmchar::i#1 ← ++ mode_hicolecmchar::i#2 to ++
Resolved ranged comparison value [723] if(mode_hicolecmchar::i#1!=rangelast(0,$f)) goto mode_hicolecmchar::@1 to (number) $10
Resolved ranged next value [743] mode_hicolecmchar::cx#1 ← ++ mode_hicolecmchar::cx#2 to ++
Resolved ranged comparison value [745] if(mode_hicolecmchar::cx#1!=rangelast(0,$27)) goto mode_hicolecmchar::@4 to (number) $28
Resolved ranged next value [746] mode_hicolecmchar::cy#1 ← ++ mode_hicolecmchar::cy#4 to ++
Resolved ranged comparison value [748] if(mode_hicolecmchar::cy#1!=rangelast(0,$18)) goto mode_hicolecmchar::@3 to (number) $19
Resolved ranged next value [765] mode_hicolmcchar::i#1 ← ++ mode_hicolmcchar::i#2 to ++
Resolved ranged comparison value [767] if(mode_hicolmcchar::i#1!=rangelast(0,$f)) goto mode_hicolmcchar::@1 to (number) $10
Resolved ranged next value [786] mode_hicolmcchar::cx#1 ← ++ mode_hicolmcchar::cx#2 to ++
Resolved ranged comparison value [788] if(mode_hicolmcchar::cx#1!=rangelast(0,$27)) goto mode_hicolmcchar::@4 to (number) $28
Resolved ranged next value [789] mode_hicolmcchar::cy#1 ← ++ mode_hicolmcchar::cy#4 to ++
Resolved ranged comparison value [791] if(mode_hicolmcchar::cy#1!=rangelast(0,$18)) goto mode_hicolmcchar::@3 to (number) $19
Resolved ranged next value [816] mode_twoplanebitmap::i#1 ← ++ mode_twoplanebitmap::i#2 to ++
Resolved ranged comparison value [818] if(mode_twoplanebitmap::i#1!=rangelast(0,$f)) goto mode_twoplanebitmap::@1 to (number) $10
Resolved ranged next value [833] mode_twoplanebitmap::cx#1 ← ++ mode_twoplanebitmap::cx#2 to ++
Resolved ranged comparison value [835] if(mode_twoplanebitmap::cx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@4 to (number) $28
Resolved ranged next value [836] mode_twoplanebitmap::cy#1 ← ++ mode_twoplanebitmap::cy#4 to ++
Resolved ranged comparison value [838] if(mode_twoplanebitmap::cy#1!=rangelast(0,$18)) goto mode_twoplanebitmap::@3 to (number) $19
Resolved ranged next value [852] mode_twoplanebitmap::ax#1 ← ++ mode_twoplanebitmap::ax#2 to ++
Resolved ranged comparison value [854] if(mode_twoplanebitmap::ax#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@8 to (number) $28
Resolved ranged next value [855] mode_twoplanebitmap::ay#1 ← ++ mode_twoplanebitmap::ay#5 to ++
Resolved ranged comparison value [857] if(mode_twoplanebitmap::ay#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@7 to (number) $c8
Resolved ranged next value [865] mode_twoplanebitmap::bx#1 ← ++ mode_twoplanebitmap::bx#2 to ++
Resolved ranged comparison value [867] if(mode_twoplanebitmap::bx#1!=rangelast(0,$27)) goto mode_twoplanebitmap::@16 to (number) $28
Resolved ranged next value [868] mode_twoplanebitmap::by#1 ← ++ mode_twoplanebitmap::by#4 to ++
Resolved ranged comparison value [870] if(mode_twoplanebitmap::by#1!=rangelast(0,$c7)) goto mode_twoplanebitmap::@15 to (number) $c8
Resolved ranged next value [895] mode_sixsfred::i#1 ← ++ mode_sixsfred::i#2 to ++
Resolved ranged comparison value [897] if(mode_sixsfred::i#1!=rangelast(0,$f)) goto mode_sixsfred::@1 to (number) $10
Resolved ranged next value [908] mode_sixsfred::cx#1 ← ++ mode_sixsfred::cx#2 to ++
Resolved ranged comparison value [910] if(mode_sixsfred::cx#1!=rangelast(0,$27)) goto mode_sixsfred::@4 to (number) $28
Resolved ranged next value [911] mode_sixsfred::cy#1 ← ++ mode_sixsfred::cy#4 to ++
Resolved ranged comparison value [913] if(mode_sixsfred::cy#1!=rangelast(0,$18)) goto mode_sixsfred::@3 to (number) $19
Resolved ranged next value [923] mode_sixsfred::ax#1 ← ++ mode_sixsfred::ax#2 to ++
Resolved ranged comparison value [925] if(mode_sixsfred::ax#1!=rangelast(0,$27)) goto mode_sixsfred::@8 to (number) $28
Resolved ranged next value [926] mode_sixsfred::ay#1 ← ++ mode_sixsfred::ay#4 to ++
Resolved ranged comparison value [928] if(mode_sixsfred::ay#1!=rangelast(0,$c7)) goto mode_sixsfred::@7 to (number) $c8
Resolved ranged next value [936] mode_sixsfred::bx#1 ← ++ mode_sixsfred::bx#2 to ++
Resolved ranged comparison value [938] if(mode_sixsfred::bx#1!=rangelast(0,$27)) goto mode_sixsfred::@12 to (number) $28
Resolved ranged next value [939] mode_sixsfred::by#1 ← ++ mode_sixsfred::by#4 to ++
Resolved ranged comparison value [941] if(mode_sixsfred::by#1!=rangelast(0,$c7)) goto mode_sixsfred::@11 to (number) $c8
Resolved ranged next value [966] mode_sixsfred2::i#1 ← ++ mode_sixsfred2::i#2 to ++
Resolved ranged comparison value [968] if(mode_sixsfred2::i#1!=rangelast(0,$f)) goto mode_sixsfred2::@1 to (number) $10
Resolved ranged next value [981] mode_sixsfred2::cx#1 ← ++ mode_sixsfred2::cx#2 to ++
Resolved ranged comparison value [983] if(mode_sixsfred2::cx#1!=rangelast(0,$27)) goto mode_sixsfred2::@4 to (number) $28
Resolved ranged next value [984] mode_sixsfred2::cy#1 ← ++ mode_sixsfred2::cy#4 to ++
Resolved ranged comparison value [986] if(mode_sixsfred2::cy#1!=rangelast(0,$18)) goto mode_sixsfred2::@3 to (number) $19
Resolved ranged next value [996] mode_sixsfred2::ax#1 ← ++ mode_sixsfred2::ax#2 to ++
Resolved ranged comparison value [998] if(mode_sixsfred2::ax#1!=rangelast(0,$27)) goto mode_sixsfred2::@8 to (number) $28
Resolved ranged next value [999] mode_sixsfred2::ay#1 ← ++ mode_sixsfred2::ay#4 to ++
Resolved ranged comparison value [1001] if(mode_sixsfred2::ay#1!=rangelast(0,$c7)) goto mode_sixsfred2::@7 to (number) $c8
Resolved ranged next value [1009] mode_sixsfred2::bx#1 ← ++ mode_sixsfred2::bx#2 to ++
Resolved ranged comparison value [1011] if(mode_sixsfred2::bx#1!=rangelast(0,$27)) goto mode_sixsfred2::@12 to (number) $28
Resolved ranged next value [1012] mode_sixsfred2::by#1 ← ++ mode_sixsfred2::by#4 to ++
Resolved ranged comparison value [1014] if(mode_sixsfred2::by#1!=rangelast(0,$c7)) goto mode_sixsfred2::@11 to (number) $c8
Resolved ranged next value [1038] mode_8bpppixelcell::i#1 ← ++ mode_8bpppixelcell::i#2 to ++
Resolved ranged comparison value [1040] if(mode_8bpppixelcell::i#1!=rangelast(0,$f)) goto mode_8bpppixelcell::@1 to (number) $10
Resolved ranged next value [1052] mode_8bpppixelcell::ax#1 ← ++ mode_8bpppixelcell::ax#2 to ++
Resolved ranged comparison value [1054] if(mode_8bpppixelcell::ax#1!=rangelast(0,$27)) goto mode_8bpppixelcell::@4 to (number) $28
Resolved ranged next value [1055] mode_8bpppixelcell::ay#1 ← ++ mode_8bpppixelcell::ay#4 to ++
Resolved ranged comparison value [1057] if(mode_8bpppixelcell::ay#1!=rangelast(0,$18)) goto mode_8bpppixelcell::@3 to (number) $19
Resolved ranged next value [1079] mode_8bpppixelcell::cp#1 ← ++ mode_8bpppixelcell::cp#2 to ++
Resolved ranged comparison value [1081] if(mode_8bpppixelcell::cp#1!=rangelast(0,7)) goto mode_8bpppixelcell::@9 to (number) 8
Resolved ranged next value [1082] mode_8bpppixelcell::cr#1 ← ++ mode_8bpppixelcell::cr#6 to ++
Resolved ranged comparison value [1084] if(mode_8bpppixelcell::cr#1!=rangelast(0,7)) goto mode_8bpppixelcell::@8 to (number) 8
Resolved ranged next value [1085] mode_8bpppixelcell::ch#1 ← ++ mode_8bpppixelcell::ch#8 to ++
Resolved ranged comparison value [1087] if(mode_8bpppixelcell::ch#1!=rangelast(0,$ff)) goto mode_8bpppixelcell::@7 to (number) 0
Resolved ranged next value [1106] mode_8bppchunkybmm::i#1 ← ++ mode_8bppchunkybmm::i#2 to ++
Resolved ranged comparison value [1108] if(mode_8bppchunkybmm::i#1!=rangelast(0,$f)) goto mode_8bppchunkybmm::@1 to (number) $10
Resolved ranged next value [1125] mode_8bppchunkybmm::x#1 ← ++ mode_8bppchunkybmm::x#2 to ++
Resolved ranged comparison value [1127] if(mode_8bppchunkybmm::x#1!=rangelast(0,$13f)) goto mode_8bppchunkybmm::@4 to (number) $140
Resolved ranged next value [1132] mode_8bppchunkybmm::y#1 ← ++ mode_8bppchunkybmm::y#6 to ++
Resolved ranged comparison value [1134] if(mode_8bppchunkybmm::y#1!=rangelast(0,$c7)) goto mode_8bppchunkybmm::@3 to (number) $c8
Simplifying constant evaluating to zero (byte)(dword)(const byte*) menu::CHARSET/(dword) $10000 in [273] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) menu::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400 in [275] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) menu::SCREEN&(word) $3fff/(byte) $40 in [281] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) menu::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) menu::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_stdchar::CHARSET/(dword) $10000 in [481] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_stdchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400 in [483] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_stdchar::SCREEN&(word) $3fff/(byte) $40 in [490] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_stdchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_stdchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_ecmchar::CHARSET/(dword) $10000 in [524] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_ecmchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400 in [526] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_ecmchar::SCREEN&(word) $3fff/(byte) $40 in [533] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_ecmchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_ecmchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_mcchar::CHARSET/(dword) $10000 in [570] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_mcchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400 in [572] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const dword) DTV_COLOR_BANK_DEFAULT/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_mcchar::SCREEN&(word) $3fff/(byte) $40 in [579] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_mcchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_mcchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_stdbitmap::BITMAP/(dword) $10000 in [615] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_stdbitmap::BITMAP/(dword) $10000
Simplifying constant evaluating to zero (word)(const byte*) mode_stdbitmap::SCREEN&(word) $3fff/(byte) $40 in [622] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_stdbitmap::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_stdbitmap::BITMAP&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_hicolstdchar::CHARSET/(dword) $10000 in [667] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_hicolstdchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const byte*) mode_hicolstdchar::COLORS/(word) $400 in [669] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const byte*) mode_hicolstdchar::COLORS/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_hicolstdchar::SCREEN&(word) $3fff/(byte) $40 in [676] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_hicolstdchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_hicolstdchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_hicolecmchar::CHARSET/(dword) $10000 in [708] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_hicolecmchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const byte*) mode_hicolecmchar::COLORS/(word) $400 in [710] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const byte*) mode_hicolecmchar::COLORS/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_hicolecmchar::SCREEN&(word) $3fff/(byte) $40 in [717] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_hicolecmchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_hicolecmchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero (byte)(dword)(const byte*) mode_hicolmcchar::CHARSET/(dword) $10000 in [752] *((const byte*) DTV_GRAPHICS_VIC_BANK) ← (byte)(dword)(const byte*) mode_hicolmcchar::CHARSET/(dword) $10000
Simplifying constant evaluating to zero >(word)(const byte*) mode_hicolmcchar::COLORS/(word) $400 in [754] *((const byte*) DTV_COLOR_BANK_HI) ← >(word)(const byte*) mode_hicolmcchar::COLORS/(word) $400
Simplifying constant evaluating to zero (word)(const byte*) mode_hicolmcchar::SCREEN&(word) $3fff/(byte) $40 in [761] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) mode_hicolmcchar::SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) mode_hicolmcchar::CHARSET&(word) $3fff/(word) $400
Simplifying constant evaluating to zero <(const byte*) mode_twoplanebitmap::PLANEA in [799] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) mode_twoplanebitmap::PLANEA
Simplifying constant evaluating to zero <(const byte*) mode_twoplanebitmap::PLANEB in [805] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) mode_twoplanebitmap::PLANEB
Simplifying constant evaluating to zero >(const byte*) mode_twoplanebitmap::COLORS/(word) $400 in [812] *((const byte*) DTV_COLOR_BANK_HI) ← >(const byte*) mode_twoplanebitmap::COLORS/(word) $400
Simplifying constant evaluating to zero <(const byte*) mode_sixsfred::PLANEA in [878] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) mode_sixsfred::PLANEA
Simplifying constant evaluating to zero <(const byte*) mode_sixsfred::PLANEB in [884] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) mode_sixsfred::PLANEB
Simplifying constant evaluating to zero >(const byte*) mode_sixsfred::COLORS/(word) $400 in [891] *((const byte*) DTV_COLOR_BANK_HI) ← >(const byte*) mode_sixsfred::COLORS/(word) $400
Simplifying constant evaluating to zero <(const byte*) mode_sixsfred2::PLANEA in [949] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) mode_sixsfred2::PLANEA
Simplifying constant evaluating to zero <(const byte*) mode_sixsfred2::PLANEB in [955] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) mode_sixsfred2::PLANEB
Simplifying constant evaluating to zero >(const byte*) mode_sixsfred2::COLORS/(word) $400 in [962] *((const byte*) DTV_COLOR_BANK_HI) ← >(const byte*) mode_sixsfred2::COLORS/(word) $400
Simplifying constant evaluating to zero <(const byte*) mode_8bpppixelcell::PLANEA in [1022] *((const byte*) DTV_PLANEA_START_LO) ← <(const byte*) mode_8bpppixelcell::PLANEA
Simplifying constant evaluating to zero <(const byte*) mode_8bpppixelcell::PLANEB in [1028] *((const byte*) DTV_PLANEB_START_LO) ← <(const byte*) mode_8bpppixelcell::PLANEB
Simplifying constant evaluating to zero <<(const dword) mode_8bppchunkybmm::PLANEB in [1096] *((const byte*) DTV_PLANEB_START_LO) ← <<(const dword) mode_8bppchunkybmm::PLANEB
Simplifying constant evaluating to zero ><(const dword) mode_8bppchunkybmm::PLANEB in [1097] *((const byte*) DTV_PLANEB_START_MI) ← ><(const dword) mode_8bppchunkybmm::PLANEB
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero bitmap_plot_xhi in [150] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi + (byte) 0) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_plot_xlo in [150] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero (word)menu::CHARSET&$3fff/$400 in [391] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) menu::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_stdchar::CHARSET&$3fff/$400 in [709] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_stdchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_ecmchar::CHARSET&$3fff/$400 in [758] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_ecmchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_mcchar::CHARSET&$3fff/$400 in [810] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_mcchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_stdbitmap::BITMAP&$3fff/$400 in [859] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_stdbitmap::BITMAP&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_hicolstdchar::CHARSET&$3fff/$400 in [926] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_hicolstdchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_hicolecmchar::CHARSET&$3fff/$400 in [974] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_hicolecmchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_hicolmcchar::CHARSET&$3fff/$400 in [1025] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_hicolmcchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero bitmap_plot_xhi in [99] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi + (byte) 0) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_plot_xlo in [99] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero (word)menu::CHARSET&$3fff/$400 in [281] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) menu::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_stdchar::CHARSET&$3fff/$400 in [490] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_stdchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_ecmchar::CHARSET&$3fff/$400 in [533] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_ecmchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_mcchar::CHARSET&$3fff/$400 in [579] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_mcchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_stdbitmap::BITMAP&$3fff/$400 in [622] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_stdbitmap::BITMAP&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_hicolstdchar::CHARSET&$3fff/$400 in [676] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_hicolstdchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_hicolecmchar::CHARSET&$3fff/$400 in [717] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_hicolecmchar::CHARSET&(word) $3fff/(word) $400
Simplifying expression containing zero (word)mode_hicolmcchar::CHARSET&$3fff/$400 in [761] *((const byte*) VIC_MEMORY) ← (byte)(word) 0|(word)(const byte*) mode_hicolmcchar::CHARSET&(word) $3fff/(word) $400
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable - keeping the phi block (byte*) print_screen#12
Eliminating unused variable - keeping the phi block (byte*) print_line_cursor#10
@ -7722,7 +7722,7 @@ Alias (byte~) bitmap_init::$10 = (byte~) bitmap_init::$6
Successful SSA optimization Pass2AliasElimination
Constant right-side identified [4] (byte*) memset::end#0 ← (const byte*) memset::$2 + (const word) memset::num#0
Constant right-side identified [44] (byte~) bitmap_init::$1 ← > (const byte*) bitmap_init::bitmap#0
Constant right-side identified [827] (byte) mode_8bppchunkybmm::gfxbCpuBank#1 ← ++ (const byte) mode_8bppchunkybmm::gfxbCpuBank#0
Constant right-side identified [824] (byte) mode_8bppchunkybmm::gfxbCpuBank#1 ← ++ (const byte) mode_8bppchunkybmm::gfxbCpuBank#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) memset::end#0 = memset::$2+memset::num#0
Constant (const byte) bitmap_init::$1 = >bitmap_init::bitmap#0

View File

@ -127,7 +127,7 @@ Identical Phi Values (byte) idx#1 (byte) idx#13
Identical Phi Values (byte) idx#10 (byte) idx#13
Identical Phi Values (byte) idx#14 (byte) idx#10
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [9] (word) print::w#2 ← (byte) $12 w= (byte) $34
Constant right-side identified [7] (word) print::w#2 ← (byte) $12 w= (byte) $34
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const word) print::w#0 = $1234
Constant (const word) print::w#1 = main::w

View File

@ -154,7 +154,7 @@ Identical Phi Values (byte*) screen#2 (byte*) screen#10
Identical Phi Values (byte) line::x1#2 (byte) line::x1#3
Identical Phi Values (byte*) screen#12 (byte*) screen#2
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) line::$0 [19] if((byte) line::x#2<(byte) line::x1#3) goto line::@2
Simple Condition (bool~) line::$0 [14] if((byte) line::x#2<(byte) line::x1#3) goto line::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) screen#0 = (byte*) 1024
Constant (const byte) line::x0#0 = 1

View File

@ -117,7 +117,7 @@ Alias (byte) main::spritePtr1_return#0 = (byte~) main::spritePtr1_$1 (byte) main
Successful SSA optimization Pass2AliasElimination
Constant (const byte) main::getScreen1_id#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::DSP in [17] *((const byte*) main::DSP + (byte) 0) ← (byte) main::spritePtr1_return#0
Simplifying expression containing zero main::DSP in [5] *((const byte*) main::DSP + (byte) 0) ← (byte) main::spritePtr1_return#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Constant right-side identified [0] (byte~) main::getScreen1_$0 ← (const byte) main::getScreen1_id#0 * (const byte) SIZEOF_POINTER
Successful SSA optimization Pass2ConstantRValueConsolidation

View File

@ -57,14 +57,14 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte*) main::sprite_ptr#0 = (byte*~) main::$0
Successful SSA optimization Pass2AliasElimination
Constant right-side identified [0] (byte*) main::sprite_ptr#0 ← (const byte*) SCREEN + (word) $378
Constant right-side identified [2] (byte*~) main::$1 ← (const byte*) sprite / (byte) $40
Constant right-side identified [1] (byte*~) main::$1 ← (const byte*) sprite / (byte) $40
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) main::sprite_ptr#0 = SCREEN+$378
Constant (const byte*) main::$1 = sprite/$40
Successful SSA optimization Pass2ConstantIdentification
Constant (const byte) main::$2 = (byte)main::$1
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::sprite_ptr#0 in [4] *((const byte*) main::sprite_ptr#0 + (byte) 0) ← (const byte) main::$2
Simplifying expression containing zero main::sprite_ptr#0 in [3] *((const byte*) main::sprite_ptr#0 + (byte) 0) ← (const byte) main::$2
Successful SSA optimization PassNSimplifyExpressionWithZero
Constant inlined main::$1 = (const byte*) sprite/(byte) $40
Constant inlined main::$2 = (byte)(const byte*) sprite/(byte) $40

View File

@ -121,16 +121,16 @@ Alias (byte) main::midw#0 = (byte~) main::$3
Alias (byte) main::sumb#0 = (byte~) main::$4
Alias (byte) main::midb#0 = (byte~) main::$6
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$7 [14] if(*((const byte*) main::SCREEN + (byte) 0)==*((const byte*) main::SCREEN + (byte) 1)) goto main::@1
Simple Condition (bool~) main::$7 [10] if(*((const byte*) main::SCREEN + (byte) 0)==*((const byte*) main::SCREEN + (byte) 1)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [0] (word) main::sumw#0 ← (const byte) main::min + (const byte) main::max
Constant right-side identified [7] (byte) main::sumb#0 ← (const byte) main::min + (const byte) main::max
Constant right-side identified [5] (byte) main::sumb#0 ← (const byte) main::min + (const byte) main::max
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const word) main::sumw#0 = main::min+main::max
Constant (const byte) main::sumb#0 = main::min+main::max
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::SCREEN in [6] *((const byte*) main::SCREEN + (byte) 0) ← (byte) main::midw#0
Simplifying expression containing zero main::SCREEN in [14] if(*((const byte*) main::SCREEN + (byte) 0)==*((const byte*) main::SCREEN + (byte) 1)) goto main::@1
Simplifying expression containing zero main::SCREEN in [4] *((const byte*) main::SCREEN + (byte) 0) ← (byte) main::midw#0
Simplifying expression containing zero main::SCREEN in [10] if(*((const byte*) main::SCREEN + (byte) 0)==*((const byte*) main::SCREEN + (byte) 1)) goto main::@1
Successful SSA optimization PassNSimplifyExpressionWithZero
Constant right-side identified [0] (word~) main::$1 ← (const word) main::sumw#0 >> (byte) 1
Constant right-side identified [4] (byte~) main::$5 ← (const byte) main::sumb#0 >> (byte) 1

View File

@ -189,13 +189,13 @@ Identical Phi Values (byte*) SCREEN4#2 (byte*) SCREEN4#3
Identical Phi Values (byte*) SCREEN3#1 (byte*) SCREEN3#2
Identical Phi Values (byte*) SCREEN4#1 (byte*) SCREEN4#2
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$5 [19] if((byte) main::b#1!=rangelast(0,$64)) goto main::@1
Simple Condition (bool~) w::$3 [35] if((byte) w::i#1!=rangelast(0,$a)) goto w::@1
Simple Condition (bool~) main::$5 [14] if((byte) main::b#1!=rangelast(0,$64)) goto main::@1
Simple Condition (bool~) w::$3 [27] if((byte) w::i#1!=rangelast(0,$a)) goto w::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [0] (byte*) SCREEN2#0 ← (const byte*) SCREEN + (byte)(number) $28*(number) 3
Constant right-side identified [2] (byte*) SCREEN3#0 ← (const byte*) SCREEN + (byte)(number) $28*(number) 6
Constant right-side identified [4] (byte*) SCREEN4#0 ← (const byte*) SCREEN + (word)(number) $28*(number) 9
Constant right-side identified [26] (word~) w::$0 ← (const word) w::w1 - (const word) w::w2
Constant right-side identified [1] (byte*) SCREEN3#0 ← (const byte*) SCREEN + (byte)(number) $28*(number) 6
Constant right-side identified [2] (byte*) SCREEN4#0 ← (const byte*) SCREEN + (word)(number) $28*(number) 9
Constant right-side identified [20] (word~) w::$0 ← (const word) w::w1 - (const word) w::w2
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) SCREEN2#0 = SCREEN+(byte)$28*3
Constant (const byte*) SCREEN3#0 = SCREEN+(byte)$28*6
@ -206,10 +206,10 @@ Constant (const word) w::$0 = w::w1-w::w2
Successful SSA optimization Pass2ConstantIdentification
Constant (const byte) w::b#0 = (byte)w::$0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [17] main::b#1 ← ++ main::b#2 to ++
Resolved ranged comparison value [19] if(main::b#1!=rangelast(0,$64)) goto main::@1 to (number) $65
Resolved ranged next value [33] w::i#1 ← ++ w::i#2 to ++
Resolved ranged comparison value [35] if(w::i#1!=rangelast(0,$a)) goto w::@1 to (number) $b
Resolved ranged next value [12] main::b#1 ← ++ main::b#2 to ++
Resolved ranged comparison value [14] if(main::b#1!=rangelast(0,$64)) goto main::@1 to (number) $65
Resolved ranged next value [25] w::i#1 ← ++ w::i#2 to ++
Resolved ranged comparison value [27] if(w::i#1!=rangelast(0,$a)) goto w::@1 to (number) $b
Adding number conversion cast (unumber) $65 in if((byte) main::b#1!=(number) $65) goto main::@1
Adding number conversion cast (unumber) $b in if((byte) w::i#1!=(number) $b) goto w::@1
Successful SSA optimization PassNAddNumberTypeConversions

View File

@ -205,9 +205,9 @@ Identical Phi Values (byte*) main::CHAR_A#2 (byte*) main::CHAR_A#1
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (byte*) main::CHAR_A#1 (byte*) main::CHAR_A#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$3 [14] if((byte~) main::$1==(byte) 0) goto main::@3
Simple Condition (bool~) main::$5 [22] if((byte) main::x#1!=rangelast(0,7)) goto main::@2
Simple Condition (bool~) main::$7 [30] if((byte) main::y#1!=rangelast(0,7)) goto main::@1
Simple Condition (bool~) main::$3 [12] if((byte~) main::$1==(byte) 0) goto main::@3
Simple Condition (bool~) main::$5 [19] if((byte) main::x#1!=rangelast(0,7)) goto main::@2
Simple Condition (bool~) main::$7 [24] if((byte) main::y#1!=rangelast(0,7)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [1] (byte*) main::CHAR_A#0 ← (const byte*) CHARGEN + (byte) 8
Successful SSA optimization Pass2ConstantRValueConsolidation
@ -218,10 +218,10 @@ Constant (const byte) main::x#0 = 0
Constant (const byte) main::c#0 = '.'
Constant (const byte) main::c#1 = '*'
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [20] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [22] if(main::x#1!=rangelast(0,7)) goto main::@2 to (number) 8
Resolved ranged next value [28] main::y#1 ← ++ main::y#2 to ++
Resolved ranged comparison value [30] if(main::y#1!=rangelast(0,7)) goto main::@1 to (number) 8
Resolved ranged next value [17] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [19] if(main::x#1!=rangelast(0,7)) goto main::@2 to (number) 8
Resolved ranged next value [22] main::y#1 ← ++ main::y#2 to ++
Resolved ranged comparison value [24] if(main::y#1!=rangelast(0,7)) goto main::@1 to (number) 8
Adding number conversion cast (unumber) 8 in if((byte) main::x#1!=(number) 8) goto main::@2
Adding number conversion cast (unumber) 8 in if((byte) main::y#1!=(number) 8) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions

View File

@ -141,8 +141,8 @@ Identical Phi Values (byte*) main::screen#2 (byte*) main::screen#4
Identical Phi Values (byte*) main::colors#2 (byte*) main::colors#4
Identical Phi Values (byte) main::row#2 (byte) main::row#4
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$1 [13] if((byte) main::column#1!=rangelast(0,7)) goto main::@2
Simple Condition (bool~) main::$5 [23] if((byte) main::row#1!=rangelast(0,7)) goto main::@1
Simple Condition (bool~) main::$1 [12] if((byte) main::column#1!=rangelast(0,7)) goto main::@2
Simple Condition (bool~) main::$5 [18] if((byte) main::row#1!=rangelast(0,7)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) main::screen#0 = (byte*) 1024
Constant (const byte*) main::colors#0 = (byte*) 55296
@ -150,10 +150,10 @@ Constant (const byte) main::color#0 = 1
Constant (const byte) main::row#0 = 0
Constant (const byte) main::column#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [11] main::column#1 ← ++ main::column#2 to ++
Resolved ranged comparison value [13] if(main::column#1!=rangelast(0,7)) goto main::@2 to (number) 8
Resolved ranged next value [21] main::row#1 ← ++ main::row#4 to ++
Resolved ranged comparison value [23] if(main::row#1!=rangelast(0,7)) goto main::@1 to (number) 8
Resolved ranged next value [10] main::column#1 ← ++ main::column#2 to ++
Resolved ranged comparison value [12] if(main::column#1!=rangelast(0,7)) goto main::@2 to (number) 8
Resolved ranged next value [16] main::row#1 ← ++ main::row#4 to ++
Resolved ranged comparison value [18] if(main::row#1!=rangelast(0,7)) goto main::@1 to (number) 8
Adding number conversion cast (unumber) 8 in if((byte) main::column#1!=(number) 8) goto main::@2
Adding number conversion cast (unumber) 8 in if((byte) main::row#1!=(number) 8) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions

View File

@ -365,16 +365,16 @@ Constant (const byte*) print_dword_at::at#0 = SCREEN
Successful SSA optimization Pass2ConstantIdentification
Constant (const byte*) print_word_at::at#0 = print_dword_at::at#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [50] if(true) goto main::@2
if() condition always true - replacing block destination [37] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES in [5] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
Simplifying constant evaluating to zero (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS in [6] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying constant evaluating to zero (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES in [2] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
Simplifying constant evaluating to zero (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS in [3] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [6] *((const byte*) CIA2_TIMER_B_CONTROL) ← (byte) 0|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying expression containing zero CIA_TIMER_CONTROL_START in [8] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [9] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [3] *((const byte*) CIA2_TIMER_B_CONTROL) ← (byte) 0|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying expression containing zero CIA_TIMER_CONTROL_START in [5] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [6] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
Successful SSA optimization PassNSimplifyExpressionWithZero
Simplifying expression containing zero CIA_TIMER_CONTROL_START in [9] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS
Simplifying expression containing zero CIA_TIMER_CONTROL_START in [6] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused constant (const byte) CIA_TIMER_CONTROL_STOP
Eliminating unused constant (const byte) CIA_TIMER_CONTROL_CONTINUOUS

View File

@ -358,16 +358,16 @@ Constant (const byte*) print_dword_at::at#0 = SCREEN
Successful SSA optimization Pass2ConstantIdentification
Constant (const byte*) print_word_at::at#0 = print_dword_at::at#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [51] if(true) goto main::@2
if() condition always true - replacing block destination [38] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES in [5] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
Simplifying constant evaluating to zero (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS in [6] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying constant evaluating to zero (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES in [2] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
Simplifying constant evaluating to zero (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS in [3] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_STOP|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [6] *((const byte*) CIA2_TIMER_B_CONTROL) ← (byte) 0|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying expression containing zero CIA_TIMER_CONTROL_START in [8] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [9] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
Simplifying expression containing zero CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A in [3] *((const byte*) CIA2_TIMER_B_CONTROL) ← (byte) 0|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying expression containing zero CIA_TIMER_CONTROL_START in [5] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
Simplifying expression containing zero CIA_TIMER_CONTROL_START|CIA_TIMER_CONTROL_CONTINUOUS in [6] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS|(const byte) CIA_TIMER_CONTROL_A_COUNT_CYCLES
Successful SSA optimization PassNSimplifyExpressionWithZero
Simplifying expression containing zero CIA_TIMER_CONTROL_START in [9] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS
Simplifying expression containing zero CIA_TIMER_CONTROL_START in [6] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_CONTINUOUS
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused constant (const byte) CIA_TIMER_CONTROL_STOP
Eliminating unused constant (const byte) CIA_TIMER_CONTROL_CONTINUOUS

View File

@ -99,7 +99,7 @@ Inversing boolean not [8] (bool~) irq::$2 ← (byte~) irq::$0 != (byte) 0 from [
Successful SSA optimization Pass2UnaryNotSimplification
Alias (byte) irq::raster_next#0 = (byte) irq::raster_next#3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) irq::$2 [9] if((byte~) irq::$0!=(byte) 0) goto irq::@1
Simple Condition (bool~) irq::$2 [8] if((byte~) irq::$0!=(byte) 0) goto irq::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Added new block during phi lifting irq::@3(between irq and irq::@1)
Adding NOP phi() at start of @begin

View File

@ -103,17 +103,17 @@ Alias (byte) main::idx#1 = (byte) main::idx#4
Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) main::a#2 (byte) main::a#4
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$3 [17] if((byte) main::b#1!=rangelast(0,5)) goto main::@2
Simple Condition (bool~) main::$4 [21] if((byte) main::a#1!=rangelast(0,5)) goto main::@1
Simple Condition (bool~) main::$3 [12] if((byte) main::b#1!=rangelast(0,5)) goto main::@2
Simple Condition (bool~) main::$4 [15] if((byte) main::a#1!=rangelast(0,5)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::idx#0 = 0
Constant (const byte) main::a#0 = 0
Constant (const byte) main::b#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [15] main::b#1 ← ++ main::d#0 to ++
Resolved ranged comparison value [17] if(main::b#1!=rangelast(0,5)) goto main::@2 to (number) 6
Resolved ranged next value [19] main::a#1 ← ++ main::a#4 to ++
Resolved ranged comparison value [21] if(main::a#1!=rangelast(0,5)) goto main::@1 to (number) 6
Resolved ranged next value [10] main::b#1 ← ++ main::d#0 to ++
Resolved ranged comparison value [12] if(main::b#1!=rangelast(0,5)) goto main::@2 to (number) 6
Resolved ranged next value [13] main::a#1 ← ++ main::a#4 to ++
Resolved ranged comparison value [15] if(main::a#1!=rangelast(0,5)) goto main::@1 to (number) 6
Adding number conversion cast (unumber) 6 in if((byte) main::b#1!=(number) 6) goto main::@2
Adding number conversion cast (unumber) 6 in if((byte) main::a#1!=(number) 6) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions

View File

@ -70,7 +70,7 @@ Constant right-side identified [0] (byte) main::c#0 ← (const byte) main::b + (
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::c#0 = main::b+1
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::SCREEN in [4] *((const byte*) main::SCREEN + (byte) 0) ← (const byte) main::b
Simplifying expression containing zero main::SCREEN in [2] *((const byte*) main::SCREEN + (byte) 0) ← (const byte) main::b
Successful SSA optimization PassNSimplifyExpressionWithZero
Constant right-side identified [0] (byte) main::d#0 ← (const byte) main::c#0 + (byte) 1
Successful SSA optimization Pass2ConstantRValueConsolidation

View File

@ -51,7 +51,7 @@ Constant right-side identified [0] (byte) main::c#0 ← (const byte) main::b + (
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::c#0 = main::b+1
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::SCREEN in [2] *((const byte*) main::SCREEN + (byte) 0) ← (const byte) main::c#0
Simplifying expression containing zero main::SCREEN in [1] *((const byte*) main::SCREEN + (byte) 0) ← (const byte) main::c#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @1

View File

@ -97,7 +97,7 @@ Alias (byte*) main::sc#2 = (byte*) main::sc#3
Alias (byte*) main::cc#2 = (byte*) main::cc#3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$0 [3] if((byte*) main::sc#2<=(const byte*) main::screen+(word) $3e7) goto main::@2
Simple Condition (bool~) main::$1 [10] if((byte*) main::cc#2>(const byte*) main::cols-(byte) 1) goto main::@8
Simple Condition (bool~) main::$1 [9] if((byte*) main::cc#2>(const byte*) main::cols-(byte) 1) goto main::@8
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) main::sc#0 = main::screen
Constant (const byte*) main::cc#0 = main::cols+$3e7

View File

@ -275,12 +275,12 @@ Alias (byte*) main::screen#1 = (byte*) main::screen#4 (byte*) main::screen#10 (b
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$0 [5] if((byte*) main::sc#1!=rangelast(main::SCREEN,main::SCREEN+$3e8)) goto main::@1
Simple Condition (bool~) main::$1 [9] if(*((const byte*) main::header + (byte) main::i#2)!=(byte) 0) goto main::@4
Simple Condition (bool~) main::$2 [17] if((byte) main::i1#10<=(byte) 9) goto main::@10
Simple Condition (bool~) main::$5 [24] if((byte) main::i1#10>=(byte) 5) goto main::@12
Simple Condition (bool~) main::$7 [28] if((byte) main::i1#10>(byte) 5) goto main::@13
Simple Condition (bool~) main::$9 [34] if((byte) main::i1#10!=(byte) 5) goto main::@14
Simple Condition (bool~) main::$11 [40] if((byte) main::i1#10<(byte) 5) goto main::@15
Simple Condition (bool~) main::$13 [46] if((byte) main::i1#10<=(byte) 5) goto main::@16
Simple Condition (bool~) main::$2 [16] if((byte) main::i1#10<=(byte) 9) goto main::@10
Simple Condition (bool~) main::$5 [21] if((byte) main::i1#10>=(byte) 5) goto main::@12
Simple Condition (bool~) main::$7 [23] if((byte) main::i1#10>(byte) 5) goto main::@13
Simple Condition (bool~) main::$9 [26] if((byte) main::i1#10!=(byte) 5) goto main::@14
Simple Condition (bool~) main::$11 [29] if((byte) main::i1#10<(byte) 5) goto main::@15
Simple Condition (bool~) main::$13 [32] if((byte) main::i1#10<=(byte) 5) goto main::@16
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) main::sc#0 = main::SCREEN
Constant (const byte) main::i#0 = 0
@ -289,10 +289,10 @@ Constant (const byte) main::i1#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [3] main::sc#1 ← ++ main::sc#2 to ++
Resolved ranged comparison value [5] if(main::sc#1!=rangelast(main::SCREEN,main::SCREEN+$3e8)) goto main::@1 to (byte*)(const byte*) main::SCREEN+(word) $3e8+(number) 1
Rewriting conditional comparison [17] if((byte) main::i1#10<=(byte) 9) goto main::@10
Rewriting conditional comparison [28] if((byte) main::i1#10>(byte) 5) goto main::@13
Rewriting conditional comparison [46] if((byte) main::i1#10<=(byte) 5) goto main::@16
Simplifying expression containing zero main::screen#1 in [21] *((byte*) main::screen#1 + (byte) 0) ← (byte~) main::$3
Rewriting conditional comparison [16] if((byte) main::i1#10<=(byte) 9) goto main::@10
Rewriting conditional comparison [23] if((byte) main::i1#10>(byte) 5) goto main::@13
Rewriting conditional comparison [32] if((byte) main::i1#10<=(byte) 5) goto main::@16
Simplifying expression containing zero main::screen#1 in [19] *((byte*) main::screen#1 + (byte) 0) ← (byte~) main::$3
Successful SSA optimization PassNSimplifyExpressionWithZero
Adding number conversion cast (unumber) 1 in if((byte*) main::sc#1!=(byte*)(const byte*) main::SCREEN+(word) $3e8+(number) 1) goto main::@1
Adding number conversion cast (unumber) 9+1 in if((byte) main::i1#10<(byte) 9+(number) 1) goto main::@10

View File

@ -2718,49 +2718,49 @@ Identical Phi Values (byte) startProcessing::center_x#8 (byte) startProcessing::
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [343] (byte~) processChars::$15 ← (byte) processChars::i#10 * (byte) 2
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) atan2_16::$0 [12] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
Simple Condition (bool~) atan2_16::$5 [21] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
Simple Condition (bool~) atan2_16::$17 [34] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@16
Simple Condition (bool~) atan2_16::$11 [43] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
Simple Condition (bool~) atan2_16::$18 [46] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@19
Simple Condition (bool~) atan2_16::$19 [54] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@25
Simple Condition (bool~) atan2_16::$20 [57] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@26
Simple Condition (bool~) atan2_16::$21 [74] if((byte) atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@15
Simple Condition (bool~) atan2_16::$14 [78] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
Simple Condition (bool~) main::$3 [113] if((byte*) main::src#2!=(const byte*) SCREEN+(word) $3e8) goto main::@2
Simple Condition (bool~) main::$4 [125] if((byte) main::i#1!=rangelast(0,NUM_PROCESSING-1)) goto main::@7
Simple Condition (bool~) main::$7 [147] if((byte) main::center_dist#0!=(const byte) NOT_FOUND) goto main::@10
Simple Condition (bool~) getCharToProcess::$3 [171] if(*((byte*) getCharToProcess::screen_line#4 + (byte) getCharToProcess::x#2)==(byte) ' ') goto getCharToProcess::@5
Simple Condition (bool~) getCharToProcess::$6 [175] if((byte) getCharToProcess::x#1!=rangelast(0,$27)) goto getCharToProcess::@4
Simple Condition (bool~) getCharToProcess::$5 [180] if((byte) getCharToProcess::dist#0>=(byte) getCharToProcess::closest_dist#2) goto getCharToProcess::@5
Simple Condition (bool~) getCharToProcess::$7 [190] if((byte) getCharToProcess::y#1!=rangelast(0,$18)) goto getCharToProcess::@3
Simple Condition (bool~) getCharToProcess::$1 [194] if((byte) getCharToProcess::return_dist#1==(const byte) NOT_FOUND) goto getCharToProcess::@1
Simple Condition (bool~) startProcessing::$23 [220] if(*((byte*)(const struct ProcessingSprite*) PROCESSING+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS + (byte~) startProcessing::$27)!=(const byte) STATUS_FREE) goto startProcessing::@3
Simple Condition (bool~) startProcessing::$24 [224] if((byte) startProcessing::i#1!=rangelast(0,NUM_PROCESSING-1)) goto startProcessing::@2
Simple Condition (bool~) startProcessing::$25 [229] if((byte) startProcessing::freeIdx#2==(byte) $ff) goto startProcessing::@1
Simple Condition (bool~) startProcessing::$26 [259] if((byte) startProcessing::i1#1!=rangelast(0,7)) goto startProcessing::@9
Simple Condition (bool~) processChars::$4 [300] if(*((byte*~) processChars::$36)==(const byte) STATUS_FREE) goto processChars::@3
Simple Condition (bool~) processChars::$30 [304] if((byte) processChars::i#1!=rangelast(0,NUM_PROCESSING-1)) goto processChars::@2
Simple Condition (bool~) processChars::$6 [309] if(*((byte*~) processChars::$37)!=(const byte) STATUS_NEW) goto processChars::@4
Simple Condition (bool~) processChars::$61 [316] if((byte) 0!=(byte~) processChars::$9) goto processChars::@5
Simple Condition (bool~) init_angle_screen::$2 [407] if((byte) init_angle_screen::x#2<=(byte) $13) goto init_angle_screen::@3
Simple Condition (bool~) init_angle_screen::$16 [444] if((byte) init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
Simple Condition (bool~) initSprites::$0 [449] if((byte*) initSprites::sp#2<(const byte*) SPRITE_DATA+(const byte) NUM_PROCESSING*(byte) $40) goto initSprites::@2
Simple Condition (bool~) initSprites::$1 [458] if((byte) initSprites::i#1!=rangelast(0,7)) goto initSprites::@7
Simple Condition (bool~) setupRasterIrq::$0 [469] if((word) setupRasterIrq::raster#0<(word) $100) goto setupRasterIrq::@1
Simple Condition (bool~) irqTop::$1 [490] if((byte) irqTop::i#1!=rangelast(0,4)) goto irqTop::@3
Simple Condition (bool~) irqTop::$2 [497] if((byte) irqTop::i1#1!=rangelast(0,7)) goto irqTop::@5
Simple Condition (bool~) irqBottom::$3 [510] if((byte) irqBottom::i#1!=rangelast(0,4)) goto irqBottom::@5
Simple Condition (bool~) atan2_16::$0 [8] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
Simple Condition (bool~) atan2_16::$5 [12] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
Simple Condition (bool~) atan2_16::$17 [19] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@16
Simple Condition (bool~) atan2_16::$11 [23] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
Simple Condition (bool~) atan2_16::$18 [26] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@19
Simple Condition (bool~) atan2_16::$19 [31] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@25
Simple Condition (bool~) atan2_16::$20 [34] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@26
Simple Condition (bool~) atan2_16::$21 [48] if((byte) atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@15
Simple Condition (bool~) atan2_16::$14 [51] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
Simple Condition (bool~) main::$3 [75] if((byte*) main::src#2!=(const byte*) SCREEN+(word) $3e8) goto main::@2
Simple Condition (bool~) main::$4 [85] if((byte) main::i#1!=rangelast(0,NUM_PROCESSING-1)) goto main::@7
Simple Condition (bool~) main::$7 [99] if((byte) main::center_dist#0!=(const byte) NOT_FOUND) goto main::@10
Simple Condition (bool~) getCharToProcess::$3 [120] if(*((byte*) getCharToProcess::screen_line#4 + (byte) getCharToProcess::x#2)==(byte) ' ') goto getCharToProcess::@5
Simple Condition (bool~) getCharToProcess::$6 [124] if((byte) getCharToProcess::x#1!=rangelast(0,$27)) goto getCharToProcess::@4
Simple Condition (bool~) getCharToProcess::$5 [127] if((byte) getCharToProcess::dist#0>=(byte) getCharToProcess::closest_dist#2) goto getCharToProcess::@5
Simple Condition (bool~) getCharToProcess::$7 [132] if((byte) getCharToProcess::y#1!=rangelast(0,$18)) goto getCharToProcess::@3
Simple Condition (bool~) getCharToProcess::$1 [134] if((byte) getCharToProcess::return_dist#1==(const byte) NOT_FOUND) goto getCharToProcess::@1
Simple Condition (bool~) startProcessing::$23 [150] if(*((byte*)(const struct ProcessingSprite*) PROCESSING+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS + (byte~) startProcessing::$27)!=(const byte) STATUS_FREE) goto startProcessing::@3
Simple Condition (bool~) startProcessing::$24 [153] if((byte) startProcessing::i#1!=rangelast(0,NUM_PROCESSING-1)) goto startProcessing::@2
Simple Condition (bool~) startProcessing::$25 [156] if((byte) startProcessing::freeIdx#2==(byte) $ff) goto startProcessing::@1
Simple Condition (bool~) startProcessing::$26 [179] if((byte) startProcessing::i1#1!=rangelast(0,7)) goto startProcessing::@9
Simple Condition (bool~) processChars::$4 [213] if(*((byte*~) processChars::$36)==(const byte) STATUS_FREE) goto processChars::@3
Simple Condition (bool~) processChars::$30 [217] if((byte) processChars::i#1!=rangelast(0,NUM_PROCESSING-1)) goto processChars::@2
Simple Condition (bool~) processChars::$6 [220] if(*((byte*~) processChars::$37)!=(const byte) STATUS_NEW) goto processChars::@4
Simple Condition (bool~) processChars::$61 [225] if((byte) 0!=(byte~) processChars::$9) goto processChars::@5
Simple Condition (bool~) init_angle_screen::$2 [302] if((byte) init_angle_screen::x#2<=(byte) $13) goto init_angle_screen::@3
Simple Condition (bool~) init_angle_screen::$16 [330] if((byte) init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
Simple Condition (bool~) initSprites::$0 [335] if((byte*) initSprites::sp#2<(const byte*) SPRITE_DATA+(const byte) NUM_PROCESSING*(byte) $40) goto initSprites::@2
Simple Condition (bool~) initSprites::$1 [343] if((byte) initSprites::i#1!=rangelast(0,7)) goto initSprites::@7
Simple Condition (bool~) setupRasterIrq::$0 [354] if((word) setupRasterIrq::raster#0<(word) $100) goto setupRasterIrq::@1
Simple Condition (bool~) irqTop::$1 [372] if((byte) irqTop::i#1!=rangelast(0,4)) goto irqTop::@3
Simple Condition (bool~) irqTop::$2 [379] if((byte) irqTop::i1#1!=rangelast(0,7)) goto irqTop::@5
Simple Condition (bool~) irqBottom::$3 [392] if((byte) irqBottom::i#1!=rangelast(0,4)) goto irqBottom::@5
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting || if()-condition to two if()s [355] (bool~) processChars::$22 ← (bool~) processChars::$20 || (bool~) processChars::$21
Rewriting || if()-condition to two if()s [352] (bool~) processChars::$20 ← (bool~) processChars::$18 || (bool~) processChars::$19
Rewriting || if()-condition to two if()s [349] (bool~) processChars::$18 ← (bool~) processChars::$16 || (bool~) processChars::$17
Rewriting ! if()-condition to reversed if() [390] (bool~) processChars::$0 ← ! (const bool) DEBUG
Rewriting ! if()-condition to reversed if() [481] (bool~) irqTop::$0 ← ! (const bool) DEBUG
Rewriting ! if()-condition to reversed if() [501] (bool~) irqBottom::$0 ← ! (const bool) DEBUG
Rewriting ! if()-condition to reversed if() [504] (bool~) irqBottom::$2 ← ! (const bool) DEBUG
Rewriting || if()-condition to two if()s [259] (bool~) processChars::$22 ← (bool~) processChars::$20 || (bool~) processChars::$21
Rewriting || if()-condition to two if()s [256] (bool~) processChars::$20 ← (bool~) processChars::$18 || (bool~) processChars::$19
Rewriting || if()-condition to two if()s [253] (bool~) processChars::$18 ← (bool~) processChars::$16 || (bool~) processChars::$17
Rewriting ! if()-condition to reversed if() [288] (bool~) processChars::$0 ← ! (const bool) DEBUG
Rewriting ! if()-condition to reversed if() [363] (bool~) irqTop::$0 ← ! (const bool) DEBUG
Rewriting ! if()-condition to reversed if() [383] (bool~) irqBottom::$0 ← ! (const bool) DEBUG
Rewriting ! if()-condition to reversed if() [386] (bool~) irqBottom::$2 ← ! (const bool) DEBUG
Successful SSA optimization Pass2ConditionalAndOrRewriting
Negating conditional jump and destination [74] if((byte) atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17
Negating conditional jump and destination [48] if((byte) atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17
Constant (const byte*) heap_head#0 = HEAP_TOP
Constant (const word) atan2_16::angle#0 = 0
Constant (const byte) atan2_16::i#0 = 0
@ -2789,79 +2789,79 @@ Constant (const byte) irqTop::i#0 = 0
Constant (const byte) irqTop::i1#0 = 0
Constant (const byte) irqBottom::i#0 = 0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [154] if(true) goto main::@9
if() condition always true - replacing block destination [157] if(true) goto main::@15
if() condition always false - eliminating [391] if((const bool) DEBUG) goto processChars::@16
if() condition always true - replacing block destination [469] if((const word) setupRasterIrq::raster#0<(word) $100) goto setupRasterIrq::@1
if() condition always false - eliminating [482] if((const bool) DEBUG) goto irqTop::@2
if() condition always false - eliminating [502] if((const bool) DEBUG) goto irqBottom::@3
if() condition always false - eliminating [505] if((const bool) DEBUG) goto irqBottom::@4
if() condition always true - replacing block destination [104] if(true) goto main::@9
if() condition always true - replacing block destination [107] if(true) goto main::@15
if() condition always false - eliminating [289] if((const bool) DEBUG) goto processChars::@16
if() condition always true - replacing block destination [354] if((const word) setupRasterIrq::raster#0<(word) $100) goto setupRasterIrq::@1
if() condition always false - eliminating [364] if((const bool) DEBUG) goto irqTop::@2
if() condition always false - eliminating [384] if((const bool) DEBUG) goto irqBottom::@3
if() condition always false - eliminating [387] if((const bool) DEBUG) goto irqBottom::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [72] atan2_16::i#1 ← ++ atan2_16::i#2 to ++
Resolved ranged comparison value [74] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17 to (const byte) CORDIC_ITERATIONS_16-(byte) 1+(number) 1
Resolved ranged next value [123] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [125] if(main::i#1!=rangelast(0,NUM_PROCESSING-1)) goto main::@7 to (const byte) NUM_PROCESSING-(byte) 1+(number) 1
Resolved ranged next value [173] getCharToProcess::x#1 ← ++ getCharToProcess::x#2 to ++
Resolved ranged comparison value [175] if(getCharToProcess::x#1!=rangelast(0,$27)) goto getCharToProcess::@4 to (number) $28
Resolved ranged next value [188] getCharToProcess::y#1 ← ++ getCharToProcess::y#7 to ++
Resolved ranged comparison value [190] if(getCharToProcess::y#1!=rangelast(0,$18)) goto getCharToProcess::@3 to (number) $19
Resolved ranged next value [222] startProcessing::i#1 ← ++ startProcessing::i#2 to ++
Resolved ranged comparison value [224] if(startProcessing::i#1!=rangelast(0,NUM_PROCESSING-1)) goto startProcessing::@2 to (const byte) NUM_PROCESSING-(byte) 1+(number) 1
Resolved ranged next value [257] startProcessing::i1#1 ← ++ startProcessing::i1#2 to ++
Resolved ranged comparison value [259] if(startProcessing::i1#1!=rangelast(0,7)) goto startProcessing::@9 to (number) 8
Resolved ranged next value [302] processChars::i#1 ← ++ processChars::i#10 to ++
Resolved ranged comparison value [304] if(processChars::i#1!=rangelast(0,NUM_PROCESSING-1)) goto processChars::@2 to (const byte) NUM_PROCESSING-(byte) 1+(number) 1
Resolved ranged next value [442] init_angle_screen::y#1 ← ++ init_angle_screen::y#5 to ++
Resolved ranged comparison value [444] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1 to (number) $d
Resolved ranged next value [456] initSprites::i#1 ← ++ initSprites::i#2 to ++
Resolved ranged comparison value [458] if(initSprites::i#1!=rangelast(0,7)) goto initSprites::@7 to (number) 8
Resolved ranged next value [488] irqTop::i#1 ← ++ irqTop::i#2 to ++
Resolved ranged comparison value [490] if(irqTop::i#1!=rangelast(0,4)) goto irqTop::@3 to (number) 5
Resolved ranged next value [495] irqTop::i1#1 ← ++ irqTop::i1#2 to ++
Resolved ranged comparison value [497] if(irqTop::i1#1!=rangelast(0,7)) goto irqTop::@5 to (number) 8
Resolved ranged next value [508] irqBottom::i#1 ← ++ irqBottom::i#2 to ++
Resolved ranged comparison value [510] if(irqBottom::i#1!=rangelast(0,4)) goto irqBottom::@5 to (number) 5
Rewriting conditional comparison [407] if((byte) init_angle_screen::x#2<=(byte) $13) goto init_angle_screen::@3
Converting *(pointer+n) to pointer[n] [205] *((byte*~) getCharToProcess::$11) ← (byte) ' ' -- *(getCharToProcess::$10 + getCharToProcess::return_x#1)
Converting *(pointer+n) to pointer[n] [295] (byte) processChars::bitmask#0 ← (byte) 1 << *((byte*~) processChars::$35) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_ID)
Converting *(pointer+n) to pointer[n] [300] if(*((byte*~) processChars::$36)==(const byte) STATUS_FREE) goto processChars::@3 -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)
Converting *(pointer+n) to pointer[n] [309] if(*((byte*~) processChars::$37)!=(const byte) STATUS_NEW) goto processChars::@4 -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)
Converting *(pointer+n) to pointer[n] [312] (word) processChars::xpos#0 ← *((word*~) processChars::$38) >> (byte) 4 -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [319] *(*((byte**~) processChars::$39)) ← (byte) ' ' -- *((byte**)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)
Converting *(pointer+n) to pointer[n] [323] *((const byte*) SPRITES_COLS + *((byte*~) processChars::$41)) ← *((byte*~) processChars::$40) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_COL)
Converting *(pointer+n) to pointer[n] [323] *((const byte*) SPRITES_COLS + *((byte*~) processChars::$41)) ← *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_COL) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_ID)
Converting *(pointer+n) to pointer[n] [325] (byte*~) processChars::$7 ← (const byte*) SCREEN+(const word) SPRITE_PTRS + *((byte*~) processChars::$42) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_ID)
Converting *(pointer+n) to pointer[n] [327] *((byte*~) processChars::$7) ← *((byte*~) processChars::$43) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_PTR)
Converting *(pointer+n) to pointer[n] [327] *((byte*~) processChars::$7) ← *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR) -- *(SCREEN+SPRITE_PTRS + *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_ID))
Converting *(pointer+n) to pointer[n] [329] *((byte*~) processChars::$44) ← (const byte) STATUS_PROCESSING -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)
Converting *(pointer+n) to pointer[n] [340] (word~) processChars::$13 ← *((word*~) processChars::$45) >> (byte) 4 -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Converting *(pointer+n) to pointer[n] [346] (bool~) processChars::$16 ← *((word*~) processChars::$46) < (const word) XPOS_LEFTMOST -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [348] (bool~) processChars::$17 ← *((word*~) processChars::$47) > (const word) XPOS_RIGHTMOST -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [351] (bool~) processChars::$19 ← *((word*~) processChars::$48) < (const word) YPOS_TOPMOST -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Converting *(pointer+n) to pointer[n] [354] (bool~) processChars::$21 ← *((word*~) processChars::$49) > (const word) YPOS_BOTTOMMOST -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Converting *(pointer+n) to pointer[n] [359] *((byte*~) processChars::$50) ← (const byte) STATUS_FREE -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)
Converting *(pointer+n) to pointer[n] [370] *((word*~) processChars::$52) ← *((word*~) processChars::$51) + *((const word*) VXSIN + (byte~) processChars::$33) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Converting *(pointer+n) to pointer[n] [370] *((word*~) processChars::$52) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) + *((const word*) VXSIN + (byte~) processChars::$33) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Converting *(pointer+n) to pointer[n] [374] *((word*~) processChars::$55) ← *((word*~) processChars::$53) + *((word*~) processChars::$54) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [374] *((word*~) processChars::$55) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) + *((word*~) processChars::$54) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Converting *(pointer+n) to pointer[n] [374] *((word*~) processChars::$55) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [382] *((word*~) processChars::$57) ← *((word*~) processChars::$56) + *((const word*) VYSIN + (byte~) processChars::$34) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VY)
Converting *(pointer+n) to pointer[n] [382] *((word*~) processChars::$57) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) + *((const word*) VYSIN + (byte~) processChars::$34) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VY)
Converting *(pointer+n) to pointer[n] [386] *((word*~) processChars::$60) ← *((word*~) processChars::$58) + *((word*~) processChars::$59) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Converting *(pointer+n) to pointer[n] [386] *((word*~) processChars::$60) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) + *((word*~) processChars::$59) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VY)
Converting *(pointer+n) to pointer[n] [386] *((word*~) processChars::$60) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Resolved ranged next value [46] atan2_16::i#1 ← ++ atan2_16::i#2 to ++
Resolved ranged comparison value [48] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17 to (const byte) CORDIC_ITERATIONS_16-(byte) 1+(number) 1
Resolved ranged next value [83] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [85] if(main::i#1!=rangelast(0,NUM_PROCESSING-1)) goto main::@7 to (const byte) NUM_PROCESSING-(byte) 1+(number) 1
Resolved ranged next value [122] getCharToProcess::x#1 ← ++ getCharToProcess::x#2 to ++
Resolved ranged comparison value [124] if(getCharToProcess::x#1!=rangelast(0,$27)) goto getCharToProcess::@4 to (number) $28
Resolved ranged next value [130] getCharToProcess::y#1 ← ++ getCharToProcess::y#7 to ++
Resolved ranged comparison value [132] if(getCharToProcess::y#1!=rangelast(0,$18)) goto getCharToProcess::@3 to (number) $19
Resolved ranged next value [151] startProcessing::i#1 ← ++ startProcessing::i#2 to ++
Resolved ranged comparison value [153] if(startProcessing::i#1!=rangelast(0,NUM_PROCESSING-1)) goto startProcessing::@2 to (const byte) NUM_PROCESSING-(byte) 1+(number) 1
Resolved ranged next value [177] startProcessing::i1#1 ← ++ startProcessing::i1#2 to ++
Resolved ranged comparison value [179] if(startProcessing::i1#1!=rangelast(0,7)) goto startProcessing::@9 to (number) 8
Resolved ranged next value [215] processChars::i#1 ← ++ processChars::i#10 to ++
Resolved ranged comparison value [217] if(processChars::i#1!=rangelast(0,NUM_PROCESSING-1)) goto processChars::@2 to (const byte) NUM_PROCESSING-(byte) 1+(number) 1
Resolved ranged next value [328] init_angle_screen::y#1 ← ++ init_angle_screen::y#5 to ++
Resolved ranged comparison value [330] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1 to (number) $d
Resolved ranged next value [341] initSprites::i#1 ← ++ initSprites::i#2 to ++
Resolved ranged comparison value [343] if(initSprites::i#1!=rangelast(0,7)) goto initSprites::@7 to (number) 8
Resolved ranged next value [370] irqTop::i#1 ← ++ irqTop::i#2 to ++
Resolved ranged comparison value [372] if(irqTop::i#1!=rangelast(0,4)) goto irqTop::@3 to (number) 5
Resolved ranged next value [377] irqTop::i1#1 ← ++ irqTop::i1#2 to ++
Resolved ranged comparison value [379] if(irqTop::i1#1!=rangelast(0,7)) goto irqTop::@5 to (number) 8
Resolved ranged next value [390] irqBottom::i#1 ← ++ irqBottom::i#2 to ++
Resolved ranged comparison value [392] if(irqBottom::i#1!=rangelast(0,4)) goto irqBottom::@5 to (number) 5
Rewriting conditional comparison [302] if((byte) init_angle_screen::x#2<=(byte) $13) goto init_angle_screen::@3
Converting *(pointer+n) to pointer[n] [140] *((byte*~) getCharToProcess::$11) ← (byte) ' ' -- *(getCharToProcess::$10 + getCharToProcess::return_x#1)
Converting *(pointer+n) to pointer[n] [210] (byte) processChars::bitmask#0 ← (byte) 1 << *((byte*~) processChars::$35) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_ID)
Converting *(pointer+n) to pointer[n] [213] if(*((byte*~) processChars::$36)==(const byte) STATUS_FREE) goto processChars::@3 -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)
Converting *(pointer+n) to pointer[n] [220] if(*((byte*~) processChars::$37)!=(const byte) STATUS_NEW) goto processChars::@4 -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)
Converting *(pointer+n) to pointer[n] [222] (word) processChars::xpos#0 ← *((word*~) processChars::$38) >> (byte) 4 -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [227] *(*((byte**~) processChars::$39)) ← (byte) ' ' -- *((byte**)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_SCREENPTR)
Converting *(pointer+n) to pointer[n] [231] *((const byte*) SPRITES_COLS + *((byte*~) processChars::$41)) ← *((byte*~) processChars::$40) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_COL)
Converting *(pointer+n) to pointer[n] [231] *((const byte*) SPRITES_COLS + *((byte*~) processChars::$41)) ← *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_COL) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_ID)
Converting *(pointer+n) to pointer[n] [233] (byte*~) processChars::$7 ← (const byte*) SCREEN+(const word) SPRITE_PTRS + *((byte*~) processChars::$42) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_ID)
Converting *(pointer+n) to pointer[n] [235] *((byte*~) processChars::$7) ← *((byte*~) processChars::$43) -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_PTR)
Converting *(pointer+n) to pointer[n] [235] *((byte*~) processChars::$7) ← *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_PTR) -- *(SCREEN+SPRITE_PTRS + *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_ID))
Converting *(pointer+n) to pointer[n] [237] *((byte*~) processChars::$44) ← (const byte) STATUS_PROCESSING -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)
Converting *(pointer+n) to pointer[n] [245] (word~) processChars::$13 ← *((word*~) processChars::$45) >> (byte) 4 -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Converting *(pointer+n) to pointer[n] [250] (bool~) processChars::$16 ← *((word*~) processChars::$46) < (const word) XPOS_LEFTMOST -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [252] (bool~) processChars::$17 ← *((word*~) processChars::$47) > (const word) XPOS_RIGHTMOST -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [255] (bool~) processChars::$19 ← *((word*~) processChars::$48) < (const word) YPOS_TOPMOST -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Converting *(pointer+n) to pointer[n] [258] (bool~) processChars::$21 ← *((word*~) processChars::$49) > (const word) YPOS_BOTTOMMOST -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Converting *(pointer+n) to pointer[n] [262] *((byte*~) processChars::$50) ← (const byte) STATUS_FREE -- *((byte*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_STATUS)
Converting *(pointer+n) to pointer[n] [271] *((word*~) processChars::$52) ← *((word*~) processChars::$51) + *((const word*) VXSIN + (byte~) processChars::$33) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Converting *(pointer+n) to pointer[n] [271] *((word*~) processChars::$52) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) + *((const word*) VXSIN + (byte~) processChars::$33) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Converting *(pointer+n) to pointer[n] [275] *((word*~) processChars::$55) ← *((word*~) processChars::$53) + *((word*~) processChars::$54) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [275] *((word*~) processChars::$55) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) + *((word*~) processChars::$54) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Converting *(pointer+n) to pointer[n] [275] *((word*~) processChars::$55) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_X)
Converting *(pointer+n) to pointer[n] [282] *((word*~) processChars::$57) ← *((word*~) processChars::$56) + *((const word*) VYSIN + (byte~) processChars::$34) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VY)
Converting *(pointer+n) to pointer[n] [282] *((word*~) processChars::$57) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) + *((const word*) VYSIN + (byte~) processChars::$34) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VY)
Converting *(pointer+n) to pointer[n] [286] *((word*~) processChars::$60) ← *((word*~) processChars::$58) + *((word*~) processChars::$59) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Converting *(pointer+n) to pointer[n] [286] *((word*~) processChars::$60) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) + *((word*~) processChars::$59) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_VY)
Converting *(pointer+n) to pointer[n] [286] *((word*~) processChars::$60) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VY) -- *((word*)processChars::processing#0 + OFFSET_STRUCT_PROCESSINGSPRITE_Y)
Successful SSA optimization Pass2InlineDerefIdx
Simplifying expression containing zero (word*)PROCESSING in [278] *((word*)(const struct ProcessingSprite*) PROCESSING+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X + (byte~) startProcessing::$28) ← (word) startProcessing::spriteX#0
Simplifying expression containing zero (word*)processChars::processing#0 in [311] (word*~) processChars::$38 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [312] (word) processChars::xpos#0 ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) >> (byte) 4
Simplifying expression containing zero (word*)processChars::processing#0 in [345] (word*~) processChars::$46 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [346] (bool~) processChars::$16 ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) < (const word) XPOS_LEFTMOST
Simplifying expression containing zero (word*)processChars::processing#0 in [347] (word*~) processChars::$47 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [348] (bool~) processChars::$17 ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) > (const word) XPOS_RIGHTMOST
Simplifying expression containing zero (word*)processChars::processing#0 in [371] (word*~) processChars::$53 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [373] (word*~) processChars::$55 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [374] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Simplifying expression containing zero (word*)processChars::processing#0 in [374] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) ← *((word*)(struct ProcessingSprite*) processChars::processing#0) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Simplifying expression containing zero (word*)PROCESSING in [194] *((word*)(const struct ProcessingSprite*) PROCESSING+(const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X + (byte~) startProcessing::$28) ← (word) startProcessing::spriteX#0
Simplifying expression containing zero (word*)processChars::processing#0 in [221] (word*~) processChars::$38 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [222] (word) processChars::xpos#0 ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) >> (byte) 4
Simplifying expression containing zero (word*)processChars::processing#0 in [249] (word*~) processChars::$46 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [250] (bool~) processChars::$16 ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) < (const word) XPOS_LEFTMOST
Simplifying expression containing zero (word*)processChars::processing#0 in [251] (word*~) processChars::$47 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [252] (bool~) processChars::$17 ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) > (const word) XPOS_RIGHTMOST
Simplifying expression containing zero (word*)processChars::processing#0 in [272] (word*~) processChars::$53 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [274] (word*~) processChars::$55 ← (word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X
Simplifying expression containing zero (word*)processChars::processing#0 in [275] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) ← *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Simplifying expression containing zero (word*)processChars::processing#0 in [275] *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_X) ← *((word*)(struct ProcessingSprite*) processChars::processing#0) + *((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_VX)
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte) startProcessing::center_dist#0 and assignment [76] (byte) startProcessing::center_dist#0 ← (byte) main::center_dist#0
Eliminating unused variable (struct ProcessingChar) getCharToProcess::return#0 and assignment [96] (struct ProcessingChar) getCharToProcess::return#0 ← struct-unwound {(byte) getCharToProcess::return_x#1, (byte) getCharToProcess::return_y#1, (byte) getCharToProcess::return_dist#1}
@ -2969,12 +2969,12 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte~) processChars::$15 = (byte~) processChars::$11
Alias (byte~) processChars::$27 = (byte~) processChars::$26
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) processChars::$16 [183] if(*((word*)(struct ProcessingSprite*) processChars::processing#0)<(const word) XPOS_LEFTMOST) goto processChars::@7
Simple Condition (bool~) processChars::$21 [267] if(*((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y)>(const word) YPOS_BOTTOMMOST) goto processChars::@7
Simple Condition (bool~) processChars::$19 [268] if(*((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y)<(const word) YPOS_TOPMOST) goto processChars::@7
Simple Condition (bool~) processChars::$17 [269] if(*((word*)(struct ProcessingSprite*) processChars::processing#0)>(const word) XPOS_RIGHTMOST) goto processChars::@7
Simple Condition (bool~) processChars::$16 [182] if(*((word*)(struct ProcessingSprite*) processChars::processing#0)<(const word) XPOS_LEFTMOST) goto processChars::@7
Simple Condition (bool~) processChars::$21 [265] if(*((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y)>(const word) YPOS_BOTTOMMOST) goto processChars::@7
Simple Condition (bool~) processChars::$19 [266] if(*((word*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_Y)<(const word) YPOS_TOPMOST) goto processChars::@7
Simple Condition (bool~) processChars::$17 [267] if(*((word*)(struct ProcessingSprite*) processChars::processing#0)>(const word) XPOS_RIGHTMOST) goto processChars::@7
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [251] (byte~) setupRasterIrq::$1 ← < (const word) setupRasterIrq::raster#0
Constant right-side identified [249] (byte~) setupRasterIrq::$1 ← < (const word) setupRasterIrq::raster#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) setupRasterIrq::$1 = <setupRasterIrq::raster#0
Successful SSA optimization Pass2ConstantIdentification

View File

@ -196,10 +196,10 @@ Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte*) memcpy::src_end#1 (byte*) memcpy::src_end#0
Identical Phi Values (void*) memcpy::destination#3 (void*) memcpy::destination#2
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memcpy::$2 [8] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2
Simple Condition (bool~) memcpy::$2 [7] if((byte*) memcpy::src#2!=(byte*) memcpy::src_end#0) goto memcpy::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [19] (void*) memcpy::destination#0 ← (void*)(const byte*) SCREEN
Constant right-side identified [30] (byte*~) main::$2 ← (const byte*) SCREEN + (word) $3e7
Constant right-side identified [13] (void*) memcpy::destination#0 ← (void*)(const byte*) SCREEN
Constant right-side identified [24] (byte*~) main::$2 ← (const byte*) SCREEN + (word) $3e7
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const void*) memcpy::destination#0 = (void*)SCREEN
Constant (const void*) memcpy::source#0 = (void*)MEDUSA_SCREEN
@ -209,7 +209,7 @@ Constant (const void*) memcpy::source#1 = (void*)MEDUSA_COLORS
Constant (const word) memcpy::num#1 = $3e8
Constant (const byte*) main::$2 = SCREEN+$3e7
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [29] if(true) goto main::@2
if() condition always true - replacing block destination [23] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Eliminating unused variable (void*) memcpy::return#2 and assignment [13] (void*) memcpy::return#2 ← (void*) memcpy::destination#2
Eliminating unused variable (void*) memcpy::return#3 and assignment [15] (void*) memcpy::return#3 ← (void*) memcpy::destination#2

View File

@ -3000,35 +3000,35 @@ Identical Phi Values (byte*) progress_cursor#1 (byte*) progress_cursor#50
Identical Phi Values (byte) progress_idx#1 (byte) progress_idx#50
Identical Phi Values (byte) bob_charset_next_id#1 (byte) bob_charset_next_id#58
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) mulf_init::$0 [50] if((byte*) mulf_init::sqr1_lo#2!=(const byte*) mulf_sqr1_lo+(word) $200) goto mulf_init::@2
Simple Condition (bool~) mulf_init::$3 [56] if((byte~) mulf_init::$1!=(byte) 0) goto mulf_init::@4
Simple Condition (bool~) mulf_init::$7 [75] if((byte*) mulf_init::sqr2_lo#2!=(const byte*) mulf_sqr2_lo+(word) $1ff) goto mulf_init::@10
Simple Condition (bool~) mulf_init::$10 [84] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@12
Simple Condition (bool~) main::$8 [148] if(*((const byte*) RASTER)<(byte) $f8) goto main::@4
Simple Condition (bool~) main::$13 [175] if((byte) main::row#1!=rangelast(0,4)) goto main::@7
Simple Condition (bool~) main::$14 [181] if((byte) main::col#1!=rangelast(0,4)) goto main::@6
Simple Condition (bool~) main::$16 [193] if((byte) 0==(byte~) main::$15) goto main::@1
Simple Condition (bool~) main::$18 [201] if((byte) 0!=(byte~) main::$17) goto main::@17
Simple Condition (bool~) renderBobInit::$2 [252] if((byte) renderBobInit::y#1!=rangelast(0,$1f)) goto renderBobInit::@1
Simple Condition (bool~) renderBobInit::$3 [259] if((byte) renderBobInit::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobInit::@3
Simple Condition (bool~) renderBobCleanup::$0 [305] if((byte) renderBobCleanup::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobCleanup::@1
Simple Condition (bool~) prepareBobs::$2 [327] if((byte) prepareBobs::shift_y#2<(const byte) BOB_SHIFTS_Y) goto prepareBobs::@2
Simple Condition (bool~) prepareBobs::$3 [332] if((byte) prepareBobs::shift_x#2<(const byte) BOB_SHIFTS_X) goto prepareBobs::@5
Simple Condition (bool~) prepareBobs::$5 [344] if((byte) prepareBobs::cell#2<(byte) 9) goto prepareBobs::@8
Simple Condition (bool~) protoBobShiftRight::$0 [378] if((byte) protoBobShiftRight::i#2<(byte)(number) 3*(number) 3*(number) 8) goto protoBobShiftRight::@2
Simple Condition (bool~) protoBobShiftRight::$8 [382] if((byte) 0!=(byte~) protoBobShiftRight::$1) goto protoBobShiftRight::@4
Simple Condition (bool~) protoBobShiftRight::$7 [394] if((byte) protoBobShiftRight::j#3>=(byte) $30) goto protoBobShiftRight::@7
Simple Condition (bool~) protoBobShiftDown::$0 [405] if((byte) protoBobShiftDown::i#2>(byte) 0) goto protoBobShiftDown::@2
Simple Condition (bool~) charsetFindOrAddGlyph::$0 [422] if((byte) charsetFindOrAddGlyph::glyph_id#11!=(byte) bob_charset_next_id#23) goto charsetFindOrAddGlyph::@2
Simple Condition (bool~) charsetFindOrAddGlyph::$1 [430] if((byte) charsetFindOrAddGlyph::i#2<(byte) 8) goto charsetFindOrAddGlyph::@5
Simple Condition (bool~) charsetFindOrAddGlyph::$3 [434] if(*((byte*) charsetFindOrAddGlyph::glyph_cursor#11 + (byte) charsetFindOrAddGlyph::i#2)==*((byte*) charsetFindOrAddGlyph::glyph#10 + (byte) charsetFindOrAddGlyph::i#2)) goto charsetFindOrAddGlyph::@7
Simple Condition (bool~) charsetFindOrAddGlyph::$4 [442] if((byte) 0==(byte) charsetFindOrAddGlyph::found#2) goto charsetFindOrAddGlyph::@16
Simple Condition (bool~) charsetFindOrAddGlyph::$5 [454] if((byte) charsetFindOrAddGlyph::i1#2<(byte) 8) goto charsetFindOrAddGlyph::@21
Simple Condition (bool~) progress_inc::$1 [475] if((byte) progress_idx#8!=(byte) 8) goto progress_inc::@1
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) mulf_init::$0 [33] if((byte*) mulf_init::sqr1_lo#2!=(const byte*) mulf_sqr1_lo+(word) $200) goto mulf_init::@2
Simple Condition (bool~) mulf_init::$3 [37] if((byte~) mulf_init::$1!=(byte) 0) goto mulf_init::@4
Simple Condition (bool~) mulf_init::$7 [54] if((byte*) mulf_init::sqr2_lo#2!=(const byte*) mulf_sqr2_lo+(word) $1ff) goto mulf_init::@10
Simple Condition (bool~) mulf_init::$10 [60] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@12
Simple Condition (bool~) main::$8 [102] if(*((const byte*) RASTER)<(byte) $f8) goto main::@4
Simple Condition (bool~) main::$13 [121] if((byte) main::row#1!=rangelast(0,4)) goto main::@7
Simple Condition (bool~) main::$14 [126] if((byte) main::col#1!=rangelast(0,4)) goto main::@6
Simple Condition (bool~) main::$16 [135] if((byte) 0==(byte~) main::$15) goto main::@1
Simple Condition (bool~) main::$18 [142] if((byte) 0!=(byte~) main::$17) goto main::@17
Simple Condition (bool~) renderBobInit::$2 [172] if((byte) renderBobInit::y#1!=rangelast(0,$1f)) goto renderBobInit::@1
Simple Condition (bool~) renderBobInit::$3 [179] if((byte) renderBobInit::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobInit::@3
Simple Condition (bool~) renderBobCleanup::$0 [219] if((byte) renderBobCleanup::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobCleanup::@1
Simple Condition (bool~) prepareBobs::$2 [236] if((byte) prepareBobs::shift_y#2<(const byte) BOB_SHIFTS_Y) goto prepareBobs::@2
Simple Condition (bool~) prepareBobs::$3 [240] if((byte) prepareBobs::shift_x#2<(const byte) BOB_SHIFTS_X) goto prepareBobs::@5
Simple Condition (bool~) prepareBobs::$5 [248] if((byte) prepareBobs::cell#2<(byte) 9) goto prepareBobs::@8
Simple Condition (bool~) protoBobShiftRight::$0 [271] if((byte) protoBobShiftRight::i#2<(byte)(number) 3*(number) 3*(number) 8) goto protoBobShiftRight::@2
Simple Condition (bool~) protoBobShiftRight::$8 [274] if((byte) 0!=(byte~) protoBobShiftRight::$1) goto protoBobShiftRight::@4
Simple Condition (bool~) protoBobShiftRight::$7 [282] if((byte) protoBobShiftRight::j#3>=(byte) $30) goto protoBobShiftRight::@7
Simple Condition (bool~) protoBobShiftDown::$0 [291] if((byte) protoBobShiftDown::i#2>(byte) 0) goto protoBobShiftDown::@2
Simple Condition (bool~) charsetFindOrAddGlyph::$0 [305] if((byte) charsetFindOrAddGlyph::glyph_id#11!=(byte) bob_charset_next_id#23) goto charsetFindOrAddGlyph::@2
Simple Condition (bool~) charsetFindOrAddGlyph::$1 [311] if((byte) charsetFindOrAddGlyph::i#2<(byte) 8) goto charsetFindOrAddGlyph::@5
Simple Condition (bool~) charsetFindOrAddGlyph::$3 [313] if(*((byte*) charsetFindOrAddGlyph::glyph_cursor#11 + (byte) charsetFindOrAddGlyph::i#2)==*((byte*) charsetFindOrAddGlyph::glyph#10 + (byte) charsetFindOrAddGlyph::i#2)) goto charsetFindOrAddGlyph::@7
Simple Condition (bool~) charsetFindOrAddGlyph::$4 [318] if((byte) 0==(byte) charsetFindOrAddGlyph::found#2) goto charsetFindOrAddGlyph::@16
Simple Condition (bool~) charsetFindOrAddGlyph::$5 [325] if((byte) charsetFindOrAddGlyph::i1#2<(byte) 8) goto charsetFindOrAddGlyph::@21
Simple Condition (bool~) progress_inc::$1 [338] if((byte) progress_idx#8!=(byte) 8) goto progress_inc::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [193] if((byte) 0!=(byte~) main::$15) goto main::@17
Negating conditional jump and destination [135] if((byte) 0!=(byte~) main::$15) goto main::@17
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant (const word) mulf_init::sqr#0 = 0
Constant (const byte) mulf_init::x_2#0 = 0
@ -3099,26 +3099,26 @@ Constant (const word) main::toD0182_$0 = (word)main::toD0182_screen#0
Constant (const word) main::toD0182_$4 = (word)main::toD0182_gfx#0
Constant (const byte*) progress_cursor#16 = progress_init::line#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Removing PHI-reference to removed block (main::@1) in block main::@17
if() condition always true - replacing block destination [145] if(true) goto main::@4
if() condition always true - replacing block destination [99] if(true) goto main::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [173] main::row#1 ← ++ main::row#2 to ++
Resolved ranged comparison value [175] if(main::row#1!=rangelast(0,4)) goto main::@7 to (number) 5
Resolved ranged next value [179] main::col#1 ← ++ main::col#5 to ++
Resolved ranged comparison value [181] if(main::col#1!=rangelast(0,4)) goto main::@6 to (number) 5
Resolved ranged next value [250] renderBobInit::y#1 ← ++ renderBobInit::y#2 to ++
Resolved ranged comparison value [252] if(renderBobInit::y#1!=rangelast(0,$1f)) goto renderBobInit::@1 to (number) $20
Resolved ranged next value [257] renderBobInit::i#1 ← ++ renderBobInit::i#2 to ++
Resolved ranged comparison value [259] if(renderBobInit::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobInit::@3 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Resolved ranged next value [303] renderBobCleanup::i#1 ← ++ renderBobCleanup::i#2 to ++
Resolved ranged comparison value [305] if(renderBobCleanup::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobCleanup::@1 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Simplifying constant evaluating to zero (byte) 0*(const byte) BOB_SUBTABLE_SIZE in [278] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES+(byte) 0*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
Resolved ranged next value [119] main::row#1 ← ++ main::row#2 to ++
Resolved ranged comparison value [121] if(main::row#1!=rangelast(0,4)) goto main::@7 to (number) 5
Resolved ranged next value [124] main::col#1 ← ++ main::col#5 to ++
Resolved ranged comparison value [126] if(main::col#1!=rangelast(0,4)) goto main::@6 to (number) 5
Resolved ranged next value [170] renderBobInit::y#1 ← ++ renderBobInit::y#2 to ++
Resolved ranged comparison value [172] if(renderBobInit::y#1!=rangelast(0,$1f)) goto renderBobInit::@1 to (number) $20
Resolved ranged next value [177] renderBobInit::i#1 ← ++ renderBobInit::i#2 to ++
Resolved ranged comparison value [179] if(renderBobInit::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobInit::@3 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Resolved ranged next value [217] renderBobCleanup::i#1 ← ++ renderBobCleanup::i#2 to ++
Resolved ranged comparison value [219] if(renderBobCleanup::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobCleanup::@1 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Simplifying constant evaluating to zero (byte) 0*(const byte) BOB_SUBTABLE_SIZE in [194] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES+(byte) 0*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero BOB_TABLES in [278] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES+(byte) 0 + (byte) renderBob::bob_table_idx#0)
Simplifying expression containing zero renderBob::screen#0 in [278] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES + (byte) renderBob::bob_table_idx#0)
Simplifying expression containing zero renderBobCleanup::screen#0 in [294] *((byte*) renderBobCleanup::screen#0 + (byte) 0) ← (byte) 0
Simplifying expression containing zero PROTO_BOB in [411] *((const byte*) PROTO_BOB + (byte) 0) ← (byte) 0
Simplifying expression containing zero BOB_TABLES in [194] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES+(byte) 0 + (byte) renderBob::bob_table_idx#0)
Simplifying expression containing zero renderBob::screen#0 in [194] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES + (byte) renderBob::bob_table_idx#0)
Simplifying expression containing zero renderBobCleanup::screen#0 in [208] *((byte*) renderBobCleanup::screen#0 + (byte) 0) ← (byte) 0
Simplifying expression containing zero PROTO_BOB in [296] *((const byte*) PROTO_BOB + (byte) 0) ← (byte) 0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable - keeping the phi block (byte**) renderBobCleanupNext#24
Eliminating unused variable - keeping the phi block (byte**) renderBobCleanupNext#11
@ -3156,9 +3156,9 @@ Constant right-side identified [0] (byte*) memset::end#0 ← (const byte*) memse
Constant right-side identified [49] (byte~) main::vicSelectGfxBank1_toDd001_$1 ← > (const word) main::vicSelectGfxBank1_toDd001_$0
Constant right-side identified [53] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [56] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Constant right-side identified [94] (byte~) main::vicSelectGfxBank2_toDd001_$1 ← > (const word) main::vicSelectGfxBank2_toDd001_$0
Constant right-side identified [98] (word~) main::toD0182_$1 ← (const word) main::toD0182_$0 & (word) $3fff
Constant right-side identified [101] (byte~) main::toD0182_$5 ← > (const word) main::toD0182_$4
Constant right-side identified [93] (byte~) main::vicSelectGfxBank2_toDd001_$1 ← > (const word) main::vicSelectGfxBank2_toDd001_$0
Constant right-side identified [97] (word~) main::toD0182_$1 ← (const word) main::toD0182_$0 & (word) $3fff
Constant right-side identified [100] (byte~) main::toD0182_$5 ← > (const word) main::toD0182_$4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) memset::end#0 = memset::$2+memset::num#0
Constant (const byte) main::vicSelectGfxBank1_toDd001_$1 = >main::vicSelectGfxBank1_toDd001_$0

View File

@ -3212,36 +3212,36 @@ Identical Phi Values (byte) bob_charset_next_id#15 (byte) bob_charset_next_id#23
Identical Phi Values (byte*) bobCharsetFindOrAddGlyph::bob_glyph#6 (byte*) bobCharsetFindOrAddGlyph::bob_glyph#10
Identical Phi Values (byte) bobCharsetFindOrAddGlyph::return#3 (byte) bobCharsetFindOrAddGlyph::glyph_id#11
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) mulf_init::$0 [50] if((byte*) mulf_init::sqr1_lo#2!=(const byte*) mulf_sqr1_lo+(word) $200) goto mulf_init::@2
Simple Condition (bool~) mulf_init::$3 [56] if((byte~) mulf_init::$1!=(byte) 0) goto mulf_init::@4
Simple Condition (bool~) mulf_init::$7 [75] if((byte*) mulf_init::sqr2_lo#2!=(const byte*) mulf_sqr2_lo+(word) $1ff) goto mulf_init::@10
Simple Condition (bool~) mulf_init::$10 [84] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@12
Simple Condition (bool~) mulf8s_prepared::$3 [114] if(*((const signed byte*) mulf8s_prepared::memA)>=(signed byte) 0) goto mulf8s_prepared::@1
Simple Condition (bool~) mulf8s_prepared::$5 [118] if((signed byte) mulf8s_prepared::b#0>=(signed byte) 0) goto mulf8s_prepared::@2
Simple Condition (bool~) main::$8 [209] if(*((const byte*) RASTER)<(byte) $f8) goto main::@4
Simple Condition (bool~) main::$18 [249] if((byte) main::i#1!=rangelast(0,NUM_BOBS-1)) goto main::@6
Simple Condition (bool~) main::$20 [260] if((byte) 0==(byte~) main::$19) goto main::@1
Simple Condition (bool~) main::$22 [268] if((byte) 0!=(byte~) main::$21) goto main::@15
Simple Condition (bool~) renderBobInit::$2 [319] if((byte) renderBobInit::y#1!=rangelast(0,$1f)) goto renderBobInit::@1
Simple Condition (bool~) renderBobInit::$3 [326] if((byte) renderBobInit::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobInit::@3
Simple Condition (bool~) renderBobCleanup::$0 [372] if((byte) renderBobCleanup::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobCleanup::@1
Simple Condition (bool~) prepareBobs::$2 [393] if((byte) prepareBobs::shift_y#2<(const byte) BOB_SHIFTS_Y) goto prepareBobs::@2
Simple Condition (bool~) prepareBobs::$3 [398] if((byte) prepareBobs::shift_x#2<(const byte) BOB_SHIFTS_X) goto prepareBobs::@5
Simple Condition (bool~) prepareBobs::$5 [410] if((byte) prepareBobs::cell#2<(byte) 9) goto prepareBobs::@8
Simple Condition (bool~) shiftProtoBobRight::$0 [443] if((byte) shiftProtoBobRight::i#2<(byte)(number) 3*(number) 3*(number) 8) goto shiftProtoBobRight::@2
Simple Condition (bool~) shiftProtoBobRight::$8 [447] if((byte) 0!=(byte~) shiftProtoBobRight::$1) goto shiftProtoBobRight::@4
Simple Condition (bool~) shiftProtoBobRight::$7 [459] if((byte) shiftProtoBobRight::j#3>=(byte) $30) goto shiftProtoBobRight::@7
Simple Condition (bool~) shiftProtoBobDown::$0 [470] if((byte) shiftProtoBobDown::i#2>(byte) 0) goto shiftProtoBobDown::@2
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$0 [487] if((byte) bobCharsetFindOrAddGlyph::glyph_id#11!=(byte) bob_charset_next_id#23) goto bobCharsetFindOrAddGlyph::@2
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$1 [495] if((byte) bobCharsetFindOrAddGlyph::i#2<(byte) 8) goto bobCharsetFindOrAddGlyph::@5
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$3 [499] if(*((byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 + (byte) bobCharsetFindOrAddGlyph::i#2)==*((byte*) bobCharsetFindOrAddGlyph::bob_glyph#10 + (byte) bobCharsetFindOrAddGlyph::i#2)) goto bobCharsetFindOrAddGlyph::@7
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$4 [507] if((byte) 0==(byte) bobCharsetFindOrAddGlyph::found#2) goto bobCharsetFindOrAddGlyph::@16
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$5 [519] if((byte) bobCharsetFindOrAddGlyph::i1#2<(byte) 8) goto bobCharsetFindOrAddGlyph::@21
Simple Condition (bool~) progress_inc::$1 [540] if((byte) progress_idx#8!=(byte) 8) goto progress_inc::@1
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) mulf_init::$0 [33] if((byte*) mulf_init::sqr1_lo#2!=(const byte*) mulf_sqr1_lo+(word) $200) goto mulf_init::@2
Simple Condition (bool~) mulf_init::$3 [37] if((byte~) mulf_init::$1!=(byte) 0) goto mulf_init::@4
Simple Condition (bool~) mulf_init::$7 [54] if((byte*) mulf_init::sqr2_lo#2!=(const byte*) mulf_sqr2_lo+(word) $1ff) goto mulf_init::@10
Simple Condition (bool~) mulf_init::$10 [60] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@12
Simple Condition (bool~) mulf8s_prepared::$3 [82] if(*((const signed byte*) mulf8s_prepared::memA)>=(signed byte) 0) goto mulf8s_prepared::@1
Simple Condition (bool~) mulf8s_prepared::$5 [85] if((signed byte) mulf8s_prepared::b#0>=(signed byte) 0) goto mulf8s_prepared::@2
Simple Condition (bool~) main::$8 [139] if(*((const byte*) RASTER)<(byte) $f8) goto main::@4
Simple Condition (bool~) main::$18 [169] if((byte) main::i#1!=rangelast(0,NUM_BOBS-1)) goto main::@6
Simple Condition (bool~) main::$20 [177] if((byte) 0==(byte~) main::$19) goto main::@1
Simple Condition (bool~) main::$22 [184] if((byte) 0!=(byte~) main::$21) goto main::@15
Simple Condition (bool~) renderBobInit::$2 [214] if((byte) renderBobInit::y#1!=rangelast(0,$1f)) goto renderBobInit::@1
Simple Condition (bool~) renderBobInit::$3 [221] if((byte) renderBobInit::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobInit::@3
Simple Condition (bool~) renderBobCleanup::$0 [261] if((byte) renderBobCleanup::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobCleanup::@1
Simple Condition (bool~) prepareBobs::$2 [277] if((byte) prepareBobs::shift_y#2<(const byte) BOB_SHIFTS_Y) goto prepareBobs::@2
Simple Condition (bool~) prepareBobs::$3 [281] if((byte) prepareBobs::shift_x#2<(const byte) BOB_SHIFTS_X) goto prepareBobs::@5
Simple Condition (bool~) prepareBobs::$5 [289] if((byte) prepareBobs::cell#2<(byte) 9) goto prepareBobs::@8
Simple Condition (bool~) shiftProtoBobRight::$0 [311] if((byte) shiftProtoBobRight::i#2<(byte)(number) 3*(number) 3*(number) 8) goto shiftProtoBobRight::@2
Simple Condition (bool~) shiftProtoBobRight::$8 [314] if((byte) 0!=(byte~) shiftProtoBobRight::$1) goto shiftProtoBobRight::@4
Simple Condition (bool~) shiftProtoBobRight::$7 [322] if((byte) shiftProtoBobRight::j#3>=(byte) $30) goto shiftProtoBobRight::@7
Simple Condition (bool~) shiftProtoBobDown::$0 [331] if((byte) shiftProtoBobDown::i#2>(byte) 0) goto shiftProtoBobDown::@2
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$0 [346] if((byte) bobCharsetFindOrAddGlyph::glyph_id#11!=(byte) bob_charset_next_id#23) goto bobCharsetFindOrAddGlyph::@2
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$1 [352] if((byte) bobCharsetFindOrAddGlyph::i#2<(byte) 8) goto bobCharsetFindOrAddGlyph::@5
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$3 [354] if(*((byte*) bobCharsetFindOrAddGlyph::glyph_cursor#11 + (byte) bobCharsetFindOrAddGlyph::i#2)==*((byte*) bobCharsetFindOrAddGlyph::bob_glyph#10 + (byte) bobCharsetFindOrAddGlyph::i#2)) goto bobCharsetFindOrAddGlyph::@7
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$4 [359] if((byte) 0==(byte) bobCharsetFindOrAddGlyph::found#2) goto bobCharsetFindOrAddGlyph::@16
Simple Condition (bool~) bobCharsetFindOrAddGlyph::$5 [366] if((byte) bobCharsetFindOrAddGlyph::i1#2<(byte) 8) goto bobCharsetFindOrAddGlyph::@21
Simple Condition (bool~) progress_inc::$1 [379] if((byte) progress_idx#8!=(byte) 8) goto progress_inc::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [260] if((byte) 0!=(byte~) main::$19) goto main::@15
Negating conditional jump and destination [177] if((byte) 0!=(byte~) main::$19) goto main::@15
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant (const word) mulf_init::sqr#0 = 0
Constant (const byte) mulf_init::x_2#0 = 0
@ -3309,24 +3309,24 @@ Constant (const word) main::toD0182_$0 = (word)main::toD0182_screen#0
Constant (const word) main::toD0182_$4 = (word)main::toD0182_gfx#0
Constant (const byte*) progress_cursor#16 = progress_init::line#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Removing PHI-reference to removed block (main::@1) in block main::@15
if() condition always true - replacing block destination [206] if(true) goto main::@4
if() condition always true - replacing block destination [136] if(true) goto main::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [247] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [249] if(main::i#1!=rangelast(0,NUM_BOBS-1)) goto main::@6 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Resolved ranged next value [317] renderBobInit::y#1 ← ++ renderBobInit::y#2 to ++
Resolved ranged comparison value [319] if(renderBobInit::y#1!=rangelast(0,$1f)) goto renderBobInit::@1 to (number) $20
Resolved ranged next value [324] renderBobInit::i#1 ← ++ renderBobInit::i#2 to ++
Resolved ranged comparison value [326] if(renderBobInit::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobInit::@3 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Resolved ranged next value [370] renderBobCleanup::i#1 ← ++ renderBobCleanup::i#2 to ++
Resolved ranged comparison value [372] if(renderBobCleanup::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobCleanup::@1 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Simplifying constant evaluating to zero (byte) 0*(const byte) BOB_SUBTABLE_SIZE in [345] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES+(byte) 0*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
Resolved ranged next value [167] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [169] if(main::i#1!=rangelast(0,NUM_BOBS-1)) goto main::@6 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Resolved ranged next value [212] renderBobInit::y#1 ← ++ renderBobInit::y#2 to ++
Resolved ranged comparison value [214] if(renderBobInit::y#1!=rangelast(0,$1f)) goto renderBobInit::@1 to (number) $20
Resolved ranged next value [219] renderBobInit::i#1 ← ++ renderBobInit::i#2 to ++
Resolved ranged comparison value [221] if(renderBobInit::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobInit::@3 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Resolved ranged next value [259] renderBobCleanup::i#1 ← ++ renderBobCleanup::i#2 to ++
Resolved ranged comparison value [261] if(renderBobCleanup::i#1!=rangelast(0,NUM_BOBS-1)) goto renderBobCleanup::@1 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Simplifying constant evaluating to zero (byte) 0*(const byte) BOB_SUBTABLE_SIZE in [236] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES+(byte) 0*(const byte) BOB_SUBTABLE_SIZE + (byte) renderBob::bob_table_idx#0)
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero BOB_TABLES in [345] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES+(byte) 0 + (byte) renderBob::bob_table_idx#0)
Simplifying expression containing zero renderBob::screen#0 in [345] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES + (byte) renderBob::bob_table_idx#0)
Simplifying expression containing zero renderBobCleanup::screen#0 in [361] *((byte*) renderBobCleanup::screen#0 + (byte) 0) ← (byte) 0
Simplifying expression containing zero PROTO_BOB in [476] *((const byte*) PROTO_BOB + (byte) 0) ← (byte) 0
Simplifying expression containing zero BOB_TABLES in [236] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES+(byte) 0 + (byte) renderBob::bob_table_idx#0)
Simplifying expression containing zero renderBob::screen#0 in [236] *((byte*) renderBob::screen#0 + (byte) 0) ← *((const byte*) BOB_TABLES + (byte) renderBob::bob_table_idx#0)
Simplifying expression containing zero renderBobCleanup::screen#0 in [250] *((byte*) renderBobCleanup::screen#0 + (byte) 0) ← (byte) 0
Simplifying expression containing zero PROTO_BOB in [336] *((const byte*) PROTO_BOB + (byte) 0) ← (byte) 0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable - keeping the phi block (byte**) renderBobCleanupNext#24
Eliminating unused variable - keeping the phi block (byte**) renderBobCleanupNext#11
@ -3363,9 +3363,9 @@ Constant right-side identified [0] (byte*) memset::end#0 ← (const byte*) memse
Constant right-side identified [82] (byte~) main::vicSelectGfxBank1_toDd001_$1 ← > (const word) main::vicSelectGfxBank1_toDd001_$0
Constant right-side identified [86] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [89] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Constant right-side identified [134] (byte~) main::vicSelectGfxBank2_toDd001_$1 ← > (const word) main::vicSelectGfxBank2_toDd001_$0
Constant right-side identified [138] (word~) main::toD0182_$1 ← (const word) main::toD0182_$0 & (word) $3fff
Constant right-side identified [141] (byte~) main::toD0182_$5 ← > (const word) main::toD0182_$4
Constant right-side identified [133] (byte~) main::vicSelectGfxBank2_toDd001_$1 ← > (const word) main::vicSelectGfxBank2_toDd001_$0
Constant right-side identified [137] (word~) main::toD0182_$1 ← (const word) main::toD0182_$0 & (word) $3fff
Constant right-side identified [140] (byte~) main::toD0182_$5 ← > (const word) main::toD0182_$4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) memset::end#0 = memset::$2+memset::num#0
Constant (const byte) main::vicSelectGfxBank1_toDd001_$1 = >main::vicSelectGfxBank1_toDd001_$0

View File

@ -2363,33 +2363,33 @@ Identical Phi Values (byte*) PLEX_SCREEN_PTR#47 (byte*) PLEX_SCREEN_PTR#1
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [80] (byte~) plexShowSprite::$11 ← (byte) plexShowSprite::xpos_idx#0 * (const byte) SIZEOF_WORD
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) plexInit::$1 [15] if((byte) plexInit::i#1!=rangelast(0,PLEX_COUNT-1)) goto plexInit::@1
Simple Condition (bool~) plexSort::$3 [26] if((byte) plexSort::nxt_y#0>=*((const byte*) PLEX_YPOS + *((const byte*) PLEX_SORTED_IDX + (byte) plexSort::m#2))) goto plexSort::@2
Simple Condition (bool~) plexSort::$8 [30] if((byte) plexSort::m#1!=rangelast(0,PLEX_COUNT-2)) goto plexSort::@1
Simple Condition (bool~) plexSort::plexFreePrepare1_$0 [53] if((byte) plexSort::plexFreePrepare1_s#1!=rangelast(0,7)) goto plexSort::plexFreePrepare1_@1
Simple Condition (bool~) plexShowSprite::$4 [83] if((byte~) plexShowSprite::$3!=(byte) 0) goto plexShowSprite::@1
Simple Condition (bool~) plexShowSprite::$8 [97] if((byte) plex_sprite_msb#3!=(byte) 0) goto plexShowSprite::@return
Simple Condition (bool~) mulf_init::$0 [115] if((byte*) mulf_init::sqr1_lo#2!=(const byte*) mulf_sqr1_lo+(word) $200) goto mulf_init::@2
Simple Condition (bool~) mulf_init::$3 [121] if((byte~) mulf_init::$1!=(byte) 0) goto mulf_init::@4
Simple Condition (bool~) mulf_init::$7 [140] if((byte*) mulf_init::sqr2_lo#2!=(const byte*) mulf_sqr2_lo+(word) $1ff) goto mulf_init::@10
Simple Condition (bool~) mulf_init::$10 [149] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@12
Simple Condition (bool~) mulf8s_prepared::$3 [179] if(*((const signed byte*) mulf8s_prepared::memA)>=(signed byte) 0) goto mulf8s_prepared::@1
Simple Condition (bool~) mulf8s_prepared::$5 [183] if((signed byte) mulf8s_prepared::b#0>=(signed byte) 0) goto mulf8s_prepared::@2
Simple Condition (bool~) memset::$1 [222] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [232] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) init::$7 [301] if((byte) init::i#1!=rangelast(0,PLEX_COUNT-1)) goto init::@1
Simple Condition (bool~) init::$8 [309] if((byte) init::i1#1!=rangelast(0,7)) goto init::@3
Simple Condition (bool~) exit::$1 [328] if((byte) 0!=(byte~) exit::$0) goto exit::@1
Simple Condition (bool~) loop::$0 [336] if(*((const byte*) RASTER)<(byte) $d8) goto loop::@4
Simple Condition (bool~) loop::$9 [371] if((byte) loop::i#1!=rangelast(0,NUM_BOBS-1)) goto loop::@6
Simple Condition (bool~) loop::$12 [385] if((byte~) loop::$11!=(byte) 0) goto loop::@8
Simple Condition (bool~) loop::$14 [399] if(*((const byte*) RASTER)<(byte) loop::plexFreeNextYpos1_return#0) goto loop::@15
Simple Condition (bool~) loop::$17 [410] if((byte) loop::i1#1!=rangelast(0,PLEX_COUNT-1)) goto loop::@14
Simple Condition (bool~) loop::$19 [420] if((byte) 0==(byte~) loop::$18) goto loop::@1
Simple Condition (bool~) plexInit::$1 [11] if((byte) plexInit::i#1!=rangelast(0,PLEX_COUNT-1)) goto plexInit::@1
Simple Condition (bool~) plexSort::$3 [19] if((byte) plexSort::nxt_y#0>=*((const byte*) PLEX_YPOS + *((const byte*) PLEX_SORTED_IDX + (byte) plexSort::m#2))) goto plexSort::@2
Simple Condition (bool~) plexSort::$8 [23] if((byte) plexSort::m#1!=rangelast(0,PLEX_COUNT-2)) goto plexSort::@1
Simple Condition (bool~) plexSort::plexFreePrepare1_$0 [42] if((byte) plexSort::plexFreePrepare1_s#1!=rangelast(0,7)) goto plexSort::plexFreePrepare1_@1
Simple Condition (bool~) plexShowSprite::$4 [61] if((byte~) plexShowSprite::$3!=(byte) 0) goto plexShowSprite::@1
Simple Condition (bool~) plexShowSprite::$8 [70] if((byte) plex_sprite_msb#3!=(byte) 0) goto plexShowSprite::@return
Simple Condition (bool~) mulf_init::$0 [82] if((byte*) mulf_init::sqr1_lo#2!=(const byte*) mulf_sqr1_lo+(word) $200) goto mulf_init::@2
Simple Condition (bool~) mulf_init::$3 [86] if((byte~) mulf_init::$1!=(byte) 0) goto mulf_init::@4
Simple Condition (bool~) mulf_init::$7 [103] if((byte*) mulf_init::sqr2_lo#2!=(const byte*) mulf_sqr2_lo+(word) $1ff) goto mulf_init::@10
Simple Condition (bool~) mulf_init::$10 [109] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@12
Simple Condition (bool~) mulf8s_prepared::$3 [131] if(*((const signed byte*) mulf8s_prepared::memA)>=(signed byte) 0) goto mulf8s_prepared::@1
Simple Condition (bool~) mulf8s_prepared::$5 [134] if((signed byte) mulf8s_prepared::b#0>=(signed byte) 0) goto mulf8s_prepared::@2
Simple Condition (bool~) memset::$1 [156] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [163] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) init::$7 [206] if((byte) init::i#1!=rangelast(0,PLEX_COUNT-1)) goto init::@1
Simple Condition (bool~) init::$8 [213] if((byte) init::i1#1!=rangelast(0,7)) goto init::@3
Simple Condition (bool~) exit::$1 [226] if((byte) 0!=(byte~) exit::$0) goto exit::@1
Simple Condition (bool~) loop::$0 [234] if(*((const byte*) RASTER)<(byte) $d8) goto loop::@4
Simple Condition (bool~) loop::$9 [263] if((byte) loop::i#1!=rangelast(0,NUM_BOBS-1)) goto loop::@6
Simple Condition (bool~) loop::$12 [272] if((byte~) loop::$11!=(byte) 0) goto loop::@8
Simple Condition (bool~) loop::$14 [279] if(*((const byte*) RASTER)<(byte) loop::plexFreeNextYpos1_return#0) goto loop::@15
Simple Condition (bool~) loop::$17 [285] if((byte) loop::i1#1!=rangelast(0,PLEX_COUNT-1)) goto loop::@14
Simple Condition (bool~) loop::$19 [292] if((byte) 0==(byte~) loop::$18) goto loop::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting && if()-condition to two if()s [39] (bool~) plexSort::$7 ← (bool~) plexSort::$5 && (bool~) plexSort::$6
Rewriting && if()-condition to two if()s [30] (bool~) plexSort::$7 ← (bool~) plexSort::$5 && (bool~) plexSort::$6
Successful SSA optimization Pass2ConditionalAndOrRewriting
Negating conditional jump and destination [420] if((byte) 0!=(byte~) loop::$18) goto loop::@return
Negating conditional jump and destination [292] if((byte) 0!=(byte~) loop::$18) goto loop::@return
Constant (const byte*) PLEX_SCREEN_PTR#0 = (byte*)$400+$3f8
Constant (const byte) plex_show_idx#0 = 0
Constant (const byte) plex_sprite_idx#0 = 0
@ -2430,27 +2430,27 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [222] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always false - eliminating [156] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Removing PHI-reference to removed block (loop::@1) in block loop::@return
Removing PHI-reference to removed block (loop::@1) in block loop::@return
Removing PHI-reference to removed block (loop::@1) in block loop::@return
Removing PHI-reference to removed block (loop::@1) in block loop::@return
if() condition always true - replacing block destination [333] if(true) goto loop::@4
if() condition always true - replacing block destination [231] if(true) goto loop::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [13] plexInit::i#1 ← ++ plexInit::i#2 to ++
Resolved ranged comparison value [15] if(plexInit::i#1!=rangelast(0,PLEX_COUNT-1)) goto plexInit::@1 to (const byte) PLEX_COUNT-(byte) 1+(number) 1
Resolved ranged next value [28] plexSort::m#1 ← ++ plexSort::m#2 to ++
Resolved ranged comparison value [30] if(plexSort::m#1!=rangelast(0,PLEX_COUNT-2)) goto plexSort::@1 to (const byte) PLEX_COUNT-(byte) 2+(number) 1
Resolved ranged next value [51] plexSort::plexFreePrepare1_s#1 ← ++ plexSort::plexFreePrepare1_s#2 to ++
Resolved ranged comparison value [53] if(plexSort::plexFreePrepare1_s#1!=rangelast(0,7)) goto plexSort::plexFreePrepare1_@1 to (number) 8
Resolved ranged next value [299] init::i#1 ← ++ init::i#2 to ++
Resolved ranged comparison value [301] if(init::i#1!=rangelast(0,PLEX_COUNT-1)) goto init::@1 to (const byte) PLEX_COUNT-(byte) 1+(number) 1
Resolved ranged next value [307] init::i1#1 ← ++ init::i1#2 to ++
Resolved ranged comparison value [309] if(init::i1#1!=rangelast(0,7)) goto init::@3 to (number) 8
Resolved ranged next value [369] loop::i#1 ← ++ loop::i#2 to ++
Resolved ranged comparison value [371] if(loop::i#1!=rangelast(0,NUM_BOBS-1)) goto loop::@6 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Resolved ranged next value [408] loop::i1#1 ← ++ loop::i1#5 to ++
Resolved ranged comparison value [410] if(loop::i1#1!=rangelast(0,PLEX_COUNT-1)) goto loop::@14 to (const byte) PLEX_COUNT-(byte) 1+(number) 1
Resolved ranged next value [9] plexInit::i#1 ← ++ plexInit::i#2 to ++
Resolved ranged comparison value [11] if(plexInit::i#1!=rangelast(0,PLEX_COUNT-1)) goto plexInit::@1 to (const byte) PLEX_COUNT-(byte) 1+(number) 1
Resolved ranged next value [21] plexSort::m#1 ← ++ plexSort::m#2 to ++
Resolved ranged comparison value [23] if(plexSort::m#1!=rangelast(0,PLEX_COUNT-2)) goto plexSort::@1 to (const byte) PLEX_COUNT-(byte) 2+(number) 1
Resolved ranged next value [40] plexSort::plexFreePrepare1_s#1 ← ++ plexSort::plexFreePrepare1_s#2 to ++
Resolved ranged comparison value [42] if(plexSort::plexFreePrepare1_s#1!=rangelast(0,7)) goto plexSort::plexFreePrepare1_@1 to (number) 8
Resolved ranged next value [204] init::i#1 ← ++ init::i#2 to ++
Resolved ranged comparison value [206] if(init::i#1!=rangelast(0,PLEX_COUNT-1)) goto init::@1 to (const byte) PLEX_COUNT-(byte) 1+(number) 1
Resolved ranged next value [211] init::i1#1 ← ++ init::i1#2 to ++
Resolved ranged comparison value [213] if(init::i1#1!=rangelast(0,7)) goto init::@3 to (number) 8
Resolved ranged next value [261] loop::i#1 ← ++ loop::i#2 to ++
Resolved ranged comparison value [263] if(loop::i#1!=rangelast(0,NUM_BOBS-1)) goto loop::@6 to (const byte) NUM_BOBS-(byte) 1+(number) 1
Resolved ranged next value [283] loop::i1#1 ← ++ loop::i1#5 to ++
Resolved ranged comparison value [285] if(loop::i1#1!=rangelast(0,PLEX_COUNT-1)) goto loop::@14 to (const byte) PLEX_COUNT-(byte) 1+(number) 1
Eliminating unused variable - keeping the phi block (byte) plex_show_idx#31
Eliminating unused variable - keeping the phi block (byte) plex_sprite_idx#31
Eliminating unused variable - keeping the phi block (byte) plex_sprite_msb#29
@ -2504,12 +2504,12 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte~) plexShowSprite::$11 = (byte~) plexShowSprite::$10
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) plexSort::$5 [19] if((byte) plexSort::s#1!=(byte) $ff) goto plexSort::@8
Simple Condition (bool~) plexSort::$6 [212] if((byte) plexSort::nxt_y#0<*((const byte*) PLEX_YPOS + *((const byte*) PLEX_SORTED_IDX + (byte) plexSort::s#1))) goto plexSort::@3
Simple Condition (bool~) plexSort::$6 [210] if((byte) plexSort::nxt_y#0<*((const byte*) PLEX_YPOS + *((const byte*) PLEX_SORTED_IDX + (byte) plexSort::s#1))) goto plexSort::@3
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [19] if((byte) plexSort::s#1==(byte) $ff) goto plexSort::@4
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [0] (byte*) PLEX_SCREEN_PTR#1 ← (const byte*) plexInit::screen#0 + (word) $3f8
Constant right-side identified [112] (byte*) memset::end#0 ← (const byte*) memset::$2 + (const word) memset::num#0
Constant right-side identified [111] (byte*) memset::end#0 ← (const byte*) memset::$2 + (const word) memset::num#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) PLEX_SCREEN_PTR#1 = plexInit::screen#0+$3f8
Constant (const byte*) memset::end#0 = memset::$2+memset::num#0
@ -2596,8 +2596,8 @@ Alias (byte~) init::$3 = (byte~) init::$11
Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) keyboard_key_pressed::key#2 (const byte) KEY_SPACE
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [113] (byte) keyboard_key_pressed::colidx#0 ← (const byte) KEY_SPACE & (byte) 7
Constant right-side identified [114] (byte) keyboard_key_pressed::rowidx#0 ← (const byte) KEY_SPACE >> (byte) 3
Constant right-side identified [111] (byte) keyboard_key_pressed::colidx#0 ← (const byte) KEY_SPACE & (byte) 7
Constant right-side identified [112] (byte) keyboard_key_pressed::rowidx#0 ← (const byte) KEY_SPACE >> (byte) 3
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) keyboard_key_pressed::colidx#0 = KEY_SPACE&7
Constant (const byte) keyboard_key_pressed::rowidx#0 = KEY_SPACE>>3

View File

@ -3541,39 +3541,39 @@ Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [107] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
Identified duplicate assignment right side [535] (byte~) bitmap_plot_spline_8seg::$8 ← (byte) bitmap_plot_spline_8seg::n#2 * (const byte) SIZEOF_STRUCT_SPLINEVECTOR16
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) spline_8segB::$30 [48] if((byte) spline_8segB::n#1!=rangelast(0,7)) goto spline_8segB::@1
Simple Condition (bool~) memset::$1 [61] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [71] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [90] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [94] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [110] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [114] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_line::$12 [185] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
Simple Condition (bool~) bitmap_line::$21 [208] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@8
Simple Condition (bool~) bitmap_line::$22 [211] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#11) goto bitmap_line::@7
Simple Condition (bool~) bitmap_line::$27 [230] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@13
Simple Condition (bool~) bitmap_line::$28 [233] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#10) goto bitmap_line::@12
Simple Condition (bool~) abs_u16::$3 [241] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
Simple Condition (bool~) sgn_u16::$2 [254] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
Simple Condition (bool~) mulf_init::$0 [267] if((byte*) mulf_init::sqr1_lo#2!=(const byte*) mulf_sqr1_lo+(word) $200) goto mulf_init::@2
Simple Condition (bool~) mulf_init::$3 [273] if((byte~) mulf_init::$1!=(byte) 0) goto mulf_init::@4
Simple Condition (bool~) mulf_init::$7 [292] if((byte*) mulf_init::sqr2_lo#2!=(const byte*) mulf_sqr2_lo+(word) $1ff) goto mulf_init::@10
Simple Condition (bool~) mulf_init::$10 [301] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@12
Simple Condition (bool~) mulf16s::$4 [329] if((signed word) mulf16s::a#4>=(signed byte) 0) goto mulf16s::@1
Simple Condition (bool~) mulf16s::$6 [333] if((signed word) mulf16s::b#4>=(signed byte) 0) goto mulf16s::@2
Simple Condition (bool~) main::$7 [414] if(*((const byte*) RASTER)!=(byte) $fe) goto main::@5
Simple Condition (bool~) main::$8 [417] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@7
Simple Condition (bool~) main::$9 [421] if((byte) main::w#1!=rangelast(0,$3c)) goto main::@5
Simple Condition (bool~) show_letter::$10 [488] if((byte) show_letter::segment_type#0==(const byte) MOVE_TO) goto show_letter::@2
Simple Condition (bool~) show_letter::$11 [494] if((byte) show_letter::segment_type#0==(const byte) SPLINE_TO) goto show_letter::@3
Simple Condition (bool~) show_letter::$19 [524] if((byte) show_letter::i#1!=rangelast(0,$15)) goto show_letter::@1
Simple Condition (bool~) bitmap_plot_spline_8seg::$5 [548] if((byte) bitmap_plot_spline_8seg::n#1!=rangelast(1,8)) goto bitmap_plot_spline_8seg::@1
Simple Condition (bool~) spline_8segB::$30 [34] if((byte) spline_8segB::n#1!=rangelast(0,7)) goto spline_8segB::@1
Simple Condition (bool~) memset::$1 [45] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [52] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) bitmap_init::$1 [67] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$2 [71] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$9 [83] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$11 [87] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_line::$12 [135] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
Simple Condition (bool~) bitmap_line::$21 [149] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@8
Simple Condition (bool~) bitmap_line::$22 [152] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#11) goto bitmap_line::@7
Simple Condition (bool~) bitmap_line::$27 [166] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@13
Simple Condition (bool~) bitmap_line::$28 [169] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#10) goto bitmap_line::@12
Simple Condition (bool~) abs_u16::$3 [176] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
Simple Condition (bool~) sgn_u16::$2 [184] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
Simple Condition (bool~) mulf_init::$0 [196] if((byte*) mulf_init::sqr1_lo#2!=(const byte*) mulf_sqr1_lo+(word) $200) goto mulf_init::@2
Simple Condition (bool~) mulf_init::$3 [200] if((byte~) mulf_init::$1!=(byte) 0) goto mulf_init::@4
Simple Condition (bool~) mulf_init::$7 [217] if((byte*) mulf_init::sqr2_lo#2!=(const byte*) mulf_sqr2_lo+(word) $1ff) goto mulf_init::@10
Simple Condition (bool~) mulf_init::$10 [223] if((byte) mulf_init::x_255#1!=(byte) 0) goto mulf_init::@12
Simple Condition (bool~) mulf16s::$4 [243] if((signed word) mulf16s::a#4>=(signed byte) 0) goto mulf16s::@1
Simple Condition (bool~) mulf16s::$6 [246] if((signed word) mulf16s::b#4>=(signed byte) 0) goto mulf16s::@2
Simple Condition (bool~) main::$7 [298] if(*((const byte*) RASTER)!=(byte) $fe) goto main::@5
Simple Condition (bool~) main::$8 [301] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@7
Simple Condition (bool~) main::$9 [304] if((byte) main::w#1!=rangelast(0,$3c)) goto main::@5
Simple Condition (bool~) show_letter::$10 [348] if((byte) show_letter::segment_type#0==(const byte) MOVE_TO) goto show_letter::@2
Simple Condition (bool~) show_letter::$11 [350] if((byte) show_letter::segment_type#0==(const byte) SPLINE_TO) goto show_letter::@3
Simple Condition (bool~) show_letter::$19 [366] if((byte) show_letter::i#1!=rangelast(0,$15)) goto show_letter::@1
Simple Condition (bool~) bitmap_plot_spline_8seg::$5 [385] if((byte) bitmap_plot_spline_8seg::n#1!=rangelast(1,8)) goto bitmap_plot_spline_8seg::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [167] (bool~) bitmap_line::$7 ← ! (bool~) bitmap_line::$6
Rewriting && if()-condition to two if()s [166] (bool~) bitmap_line::$6 ← (bool~) bitmap_line::$4 && (bool~) bitmap_line::$5
Rewriting ! if()-condition to reversed if() [124] (bool~) bitmap_line::$7 ← ! (bool~) bitmap_line::$6
Rewriting && if()-condition to two if()s [123] (bool~) bitmap_line::$6 ← (bool~) bitmap_line::$4 && (bool~) bitmap_line::$5
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant right-side identified [54] (byte~) spline_8segB::$32 ← (byte) 8 * (const byte) SIZEOF_STRUCT_SPLINEVECTOR16
Constant right-side identified [526] (byte~) bitmap_plot_spline_8seg::$6 ← (byte) 0 * (const byte) SIZEOF_STRUCT_SPLINEVECTOR16
Constant right-side identified [39] (byte~) spline_8segB::$32 ← (byte) 8 * (const byte) SIZEOF_STRUCT_SPLINEVECTOR16
Constant right-side identified [368] (byte~) bitmap_plot_spline_8seg::$6 ← (byte) 0 * (const byte) SIZEOF_STRUCT_SPLINEVECTOR16
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) spline_8segB::n#0 = 0
Constant (const byte) spline_8segB::$32 = 8*SIZEOF_STRUCT_SPLINEVECTOR16
@ -3624,33 +3624,33 @@ Successful SSA optimization Pass2ConstantIdentification
Constant (const void*) memset::str#0 = (void*)bitmap_screen#1
Constant (const void*) memset::str#1 = (void*)bitmap_gfx#1
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [402] if(true) goto main::@2
if() condition always true - replacing block destination [425] if(true) goto main::@14
if() condition always true - replacing block destination [289] if(true) goto main::@2
if() condition always true - replacing block destination [307] if(true) goto main::@14
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [46] spline_8segB::n#1 ← ++ spline_8segB::n#2 to ++
Resolved ranged comparison value [48] if(spline_8segB::n#1!=rangelast(0,7)) goto spline_8segB::@1 to (number) 8
Resolved ranged next value [92] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [94] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [112] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [114] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [419] main::w#1 ← ++ main::w#4 to ++
Resolved ranged comparison value [421] if(main::w#1!=rangelast(0,$3c)) goto main::@5 to (number) $3d
Resolved ranged next value [522] show_letter::i#1 ← ++ show_letter::i#10 to ++
Resolved ranged comparison value [524] if(show_letter::i#1!=rangelast(0,$15)) goto show_letter::@1 to (number) $16
Resolved ranged next value [546] bitmap_plot_spline_8seg::n#1 ← ++ bitmap_plot_spline_8seg::n#2 to ++
Resolved ranged comparison value [548] if(bitmap_plot_spline_8seg::n#1!=rangelast(1,8)) goto bitmap_plot_spline_8seg::@1 to (number) 9
Resolved ranged next value [32] spline_8segB::n#1 ← ++ spline_8segB::n#2 to ++
Resolved ranged comparison value [34] if(spline_8segB::n#1!=rangelast(0,7)) goto spline_8segB::@1 to (number) 8
Resolved ranged next value [69] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [71] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [85] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [87] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [302] main::w#1 ← ++ main::w#4 to ++
Resolved ranged comparison value [304] if(main::w#1!=rangelast(0,$3c)) goto main::@5 to (number) $3d
Resolved ranged next value [364] show_letter::i#1 ← ++ show_letter::i#10 to ++
Resolved ranged comparison value [366] if(show_letter::i#1!=rangelast(0,$15)) goto show_letter::@1 to (number) $16
Resolved ranged next value [383] bitmap_plot_spline_8seg::n#1 ← ++ bitmap_plot_spline_8seg::n#2 to ++
Resolved ranged comparison value [385] if(bitmap_plot_spline_8seg::n#1!=rangelast(1,8)) goto bitmap_plot_spline_8seg::@1 to (number) 9
Simplifying constant evaluating to zero (byte) 0*(const byte) SIZEOF_STRUCT_SPLINEVECTOR16 in
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [36] *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) spline_8segB::$31) ← (signed word~) spline_8segB::$23
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [55] *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (const byte) spline_8segB::$32) ← (signed word~) spline_8segB::$19
Simplifying expression containing zero (signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO in [438] (signed word) show_letter::to_x#0 ← *((signed word*)(struct SplineVector16*)(const struct Segment*) letter_c+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) show_letter::$20)
Simplifying expression containing zero (signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_VIA in [460] (signed word) show_letter::via_x#0 ← *((signed word*)(struct SplineVector16*)(const struct Segment*) letter_c+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) show_letter::$21)
Simplifying expression containing zero (byte*)letter_c in [482] (byte) show_letter::segment_type#0 ← *((byte*)(const struct Segment*) letter_c+(const byte) OFFSET_STRUCT_SEGMENT_TYPE + (byte~) show_letter::$22)
Simplifying expression containing zero (signed word*)SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_X in [527] (signed word) bitmap_plot_spline_8seg::current_x#0 ← *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (const byte) bitmap_plot_spline_8seg::$6)
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [527] (signed word) bitmap_plot_spline_8seg::current_x#0 ← *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X)
Simplifying expression containing zero (signed word*)SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_Y in [528] (signed word) bitmap_plot_spline_8seg::current_y#0 ← *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (const byte) bitmap_plot_spline_8seg::$6)
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [534] (word) bitmap_line::x2#1 ← (word)*((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) bitmap_plot_spline_8seg::$7)
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [544] (signed word) bitmap_plot_spline_8seg::current_x#1 ← *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) bitmap_plot_spline_8seg::$9)
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [26] *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) spline_8segB::$31) ← (signed word~) spline_8segB::$23
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [40] *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (const byte) spline_8segB::$32) ← (signed word~) spline_8segB::$19
Simplifying expression containing zero (signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_TO in [316] (signed word) show_letter::to_x#0 ← *((signed word*)(struct SplineVector16*)(const struct Segment*) letter_c+(const byte) OFFSET_STRUCT_SEGMENT_TO+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) show_letter::$20)
Simplifying expression containing zero (signed word*)(struct SplineVector16*)letter_c+OFFSET_STRUCT_SEGMENT_VIA in [331] (signed word) show_letter::via_x#0 ← *((signed word*)(struct SplineVector16*)(const struct Segment*) letter_c+(const byte) OFFSET_STRUCT_SEGMENT_VIA+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) show_letter::$21)
Simplifying expression containing zero (byte*)letter_c in [346] (byte) show_letter::segment_type#0 ← *((byte*)(const struct Segment*) letter_c+(const byte) OFFSET_STRUCT_SEGMENT_TYPE + (byte~) show_letter::$22)
Simplifying expression containing zero (signed word*)SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_X in [369] (signed word) bitmap_plot_spline_8seg::current_x#0 ← *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (const byte) bitmap_plot_spline_8seg::$6)
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [369] (signed word) bitmap_plot_spline_8seg::current_x#0 ← *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X)
Simplifying expression containing zero (signed word*)SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_Y in [370] (signed word) bitmap_plot_spline_8seg::current_y#0 ← *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (const byte) bitmap_plot_spline_8seg::$6)
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [376] (word) bitmap_line::x2#1 ← (word)*((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) bitmap_plot_spline_8seg::$7)
Simplifying expression containing zero (signed word*)SPLINE_8SEG in [381] (signed word) bitmap_plot_spline_8seg::current_x#1 ← *((signed word*)(const struct SplineVector16*) SPLINE_8SEG+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_X + (byte~) bitmap_plot_spline_8seg::$9)
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (void*) memset::return#2 and assignment [75] (void*) memset::return#2 ← (void*) memset::str#3
Eliminating unused variable (void*) memset::return#3 and assignment [77] (void*) memset::return#3 ← (void*) memset::str#3
@ -3692,14 +3692,14 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte~) bitmap_init::$7 = (byte~) bitmap_init::$3
Alias (byte~) bitmap_plot_spline_8seg::$8 = (byte~) bitmap_plot_spline_8seg::$7
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) bitmap_line::$4 [96] if((word) bitmap_line::dx#0==(byte) 0) goto bitmap_line::@24
Simple Condition (bool~) bitmap_line::$5 [338] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
Simple Condition (bool~) bitmap_line::$4 [95] if((word) bitmap_line::dx#0==(byte) 0) goto bitmap_line::@24
Simple Condition (bool~) bitmap_line::$5 [336] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [96] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
Negating conditional jump and destination [95] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [207] (byte~) main::vicSelectGfxBank1_toDd001_$1 ← > (const word) main::vicSelectGfxBank1_toDd001_$0
Constant right-side identified [211] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [214] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Constant right-side identified [206] (byte~) main::vicSelectGfxBank1_toDd001_$1 ← > (const word) main::vicSelectGfxBank1_toDd001_$0
Constant right-side identified [210] (word~) main::toD0181_$1 ← (const word) main::toD0181_$0 & (word) $3fff
Constant right-side identified [213] (byte~) main::toD0181_$5 ← > (const word) main::toD0181_$4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::vicSelectGfxBank1_toDd001_$1 = >main::vicSelectGfxBank1_toDd001_$0
Constant (const word) main::toD0181_$1 = main::toD0181_$0&$3fff

View File

@ -940,14 +940,14 @@ Identical Phi Values (byte) sin_idx#13 (byte) sin_idx#10
Identical Phi Values (byte) sin_idx#14 (byte) sin_idx#13
Identical Phi Values (byte) sin_idx#11 (byte) sin_idx#1
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) sprites_init::$2 [17] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1
Simple Condition (bool~) sprites_irq::$4 [55] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@11
Simple Condition (bool~) sprites_irq::$1 [58] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1
Simple Condition (bool~) sprites_irq::$2 [75] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3
Simple Condition (bool~) sprites_irq::$3 [90] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4
Simple Condition (bool~) main::$8 [166] if((byte) main::s#1!=rangelast(4,7)) goto main::@1
Simple Condition (bool~) loop::$0 [181] if(*((const byte*) RASTER)!=(byte) $ff) goto loop::@4
Simple Condition (bool~) loop::$2 [191] if((byte) loop::s#1!=rangelast(4,7)) goto loop::@6
Simple Condition (bool~) sprites_init::$2 [15] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1
Simple Condition (bool~) sprites_irq::$4 [47] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@11
Simple Condition (bool~) sprites_irq::$1 [50] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1
Simple Condition (bool~) sprites_irq::$2 [65] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3
Simple Condition (bool~) sprites_irq::$3 [79] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4
Simple Condition (bool~) main::$8 [132] if((byte) main::s#1!=rangelast(4,7)) goto main::@1
Simple Condition (bool~) loop::$0 [142] if(*((const byte*) RASTER)!=(byte) $ff) goto loop::@4
Simple Condition (bool~) loop::$2 [151] if((byte) loop::s#1!=rangelast(4,7)) goto loop::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) sprites_init::xpos#0 = (byte)$18+$f*8
Constant (const byte) sprites_init::s#0 = 0
@ -970,17 +970,17 @@ Constant (const word) main::toD0181_$0 = (word)main::toD0181_screen#0
Constant (const word) main::toD0181_$4 = (word)main::toD0181_gfx#0
Constant (const word) main::toSpritePtr2_$0 = (word)main::toSpritePtr2_sprite#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [178] if(true) goto loop::@4
if() condition always true - replacing block destination [139] if(true) goto loop::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [15] sprites_init::s#1 ← ++ sprites_init::s#2 to ++
Resolved ranged comparison value [17] if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (number) 4
Resolved ranged next value [164] main::s#1 ← ++ main::s#2 to ++
Resolved ranged comparison value [166] if(main::s#1!=rangelast(4,7)) goto main::@1 to (number) 8
Resolved ranged next value [189] loop::s#1 ← ++ loop::s#2 to ++
Resolved ranged comparison value [191] if(loop::s#1!=rangelast(4,7)) goto loop::@6 to (number) 8
Simplifying expression containing zero SPRITES_YPOS in [48] *((const byte*) SPRITES_YPOS + (byte) 0) ← (byte) sprites_irq::ypos#0
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_1 in [60] *((const byte*) PLAYFIELD_SPRITE_PTRS_1 + (byte) 0) ← (byte) sprites_irq::ptr#0
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_2 in [67] *((const byte*) PLAYFIELD_SPRITE_PTRS_2 + (byte) 0) ← (byte) sprites_irq::ptr#0
Resolved ranged next value [13] sprites_init::s#1 ← ++ sprites_init::s#2 to ++
Resolved ranged comparison value [15] if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (number) 4
Resolved ranged next value [130] main::s#1 ← ++ main::s#2 to ++
Resolved ranged comparison value [132] if(main::s#1!=rangelast(4,7)) goto main::@1 to (number) 8
Resolved ranged next value [149] loop::s#1 ← ++ loop::s#2 to ++
Resolved ranged comparison value [151] if(loop::s#1!=rangelast(4,7)) goto loop::@6 to (number) 8
Simplifying expression containing zero SPRITES_YPOS in [40] *((const byte*) SPRITES_YPOS + (byte) 0) ← (byte) sprites_irq::ypos#0
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_1 in [51] *((const byte*) PLAYFIELD_SPRITE_PTRS_1 + (byte) 0) ← (byte) sprites_irq::ptr#0
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_2 in [57] *((const byte*) PLAYFIELD_SPRITE_PTRS_2 + (byte) 0) ← (byte) sprites_irq::ptr#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Removing unused block loop::@return
Successful SSA optimization Pass2EliminateUnusedBlocks

View File

@ -7778,87 +7778,87 @@ Identical Phi Values (byte) current_piece_char#37 (byte) current_piece_char#68
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [184] (byte~) render_init::$5 ← (byte) render_init::i#2 * (const byte) SIZEOF_POINTER
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) keyboard_event_scan::$13 [21] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9
Simple Condition (bool~) keyboard_event_scan::$25 [30] if((byte) keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8
Simple Condition (bool~) keyboard_event_scan::$18 [36] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@12
Simple Condition (bool~) keyboard_event_scan::$24 [41] if((byte) keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@11
Simple Condition (bool~) keyboard_event_scan::$20 [45] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@12
Simple Condition (bool~) keyboard_event_scan::$22 [50] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@14
Simple Condition (bool~) keyboard_event_scan::$2 [69] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1
Simple Condition (bool~) keyboard_event_scan::$5 [78] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2
Simple Condition (bool~) keyboard_event_scan::$8 [90] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3
Simple Condition (bool~) keyboard_event_scan::$11 [102] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return
Simple Condition (bool~) keyboard_event_get::$0 [124] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@1
Simple Condition (bool~) render_init::$3 [190] if((byte) render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1
Simple Condition (bool~) render_show::$0 [200] if((byte) render_screen_show#16==(byte) 0) goto render_show::@1
Simple Condition (bool~) render_score::$0 [255] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1
Simple Condition (bool~) render_bcd::$2 [307] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1
Simple Condition (bool~) render_screen_original::$0 [333] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2
Simple Condition (bool~) render_screen_original::$1 [343] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@4
Simple Condition (bool~) render_screen_original::$2 [351] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@6
Simple Condition (bool~) render_screen_original::$3 [355] if((byte) render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1
Simple Condition (bool~) render_playfield::$1 [371] if((byte) render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2
Simple Condition (bool~) render_playfield::$2 [375] if((byte) render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1
Simple Condition (bool~) render_moving::$0 [383] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2
Simple Condition (bool~) render_moving::$5 [396] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1
Simple Condition (bool~) render_moving::$3 [402] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5
Simple Condition (bool~) render_moving::$4 [407] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4
Simple Condition (bool~) render_next::$0 [414] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1
Simple Condition (bool~) render_next::$3 [432] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@7
Simple Condition (bool~) render_next::$4 [441] if((byte) render_next::c#1!=rangelast(0,3)) goto render_next::@6
Simple Condition (bool~) render_next::$5 [446] if((byte) render_next::l#1!=rangelast(0,3)) goto render_next::@5
Simple Condition (bool~) sprites_init::$2 [465] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1
Simple Condition (bool~) sprites_irq::$4 [504] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@11
Simple Condition (bool~) sprites_irq::$1 [507] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1
Simple Condition (bool~) sprites_irq::$2 [524] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3
Simple Condition (bool~) sprites_irq::$3 [539] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4
Simple Condition (bool~) play_init::$0 [568] if((byte) play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1
Simple Condition (bool~) play_init::$1 [578] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@3
Simple Condition (bool~) play_movement::$2 [605] if((byte) game_over#15==(byte) 0) goto play_movement::@1
Simple Condition (bool~) play_move_down::$1 [646] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1
Simple Condition (bool~) play_move_down::$4 [655] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2
Simple Condition (bool~) play_move_down::$6 [661] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3
Simple Condition (bool~) play_move_down::$10 [665] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2
Simple Condition (bool~) play_move_down::$8 [671] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@4
Simple Condition (bool~) play_move_down::$13 [686] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@14
Simple Condition (bool~) play_move_leftright::$0 [735] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1
Simple Condition (bool~) play_move_leftright::$10 [747] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@3
Simple Condition (bool~) play_move_leftright::$2 [751] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@3
Simple Condition (bool~) play_move_leftright::$6 [763] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@3
Simple Condition (bool~) play_move_rotate::$0 [779] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1
Simple Condition (bool~) play_move_rotate::$1 [786] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2
Simple Condition (bool~) play_move_rotate::$4 [808] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@5
Simple Condition (bool~) play_collision::$2 [831] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3
Simple Condition (bool~) play_collision::$12 [836] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2
Simple Condition (bool~) play_collision::$4 [840] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4
Simple Condition (bool~) play_collision::$7 [845] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5
Simple Condition (bool~) play_collision::$9 [853] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6
Simple Condition (bool~) play_collision::$11 [858] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3
Simple Condition (bool~) play_collision::$13 [865] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1
Simple Condition (bool~) play_lock_current::$1 [880] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3
Simple Condition (bool~) play_lock_current::$2 [885] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2
Simple Condition (bool~) play_lock_current::$3 [892] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1
Simple Condition (bool~) play_spawn_current::$3 [913] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@1
Simple Condition (bool~) play_spawn_current::$4 [920] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1
Simple Condition (bool~) play_remove_lines::$1 [953] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@3
Simple Condition (bool~) play_remove_lines::$2 [959] if((byte) play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2
Simple Condition (bool~) play_remove_lines::$4 [965] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@7
Simple Condition (bool~) play_remove_lines::$6 [969] if((byte) play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1
Simple Condition (bool~) play_remove_lines::$7 [976] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@10
Simple Condition (bool~) play_update_score::$1 [988] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return
Simple Condition (bool~) play_update_score::$7 [1004] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return
Simple Condition (bool~) play_increase_level::$0 [1020] if((byte) level#21>(byte) $1d) goto play_increase_level::@1
Simple Condition (bool~) play_increase_level::$3 [1030] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@3
Simple Condition (bool~) play_increase_level::$4 [1041] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7
Simple Condition (bool~) main::$10 [1094] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@4
Simple Condition (bool~) main::$14 [1110] if((byte) game_over#10==(byte) 0) goto main::@11
Simple Condition (bool~) main::$18 [1138] if((byte) main::render#2==(byte) 0) goto main::@1
Simple Condition (bool~) keyboard_event_scan::$13 [15] if((byte) keyboard_event_scan::row_scan#0!=*((const byte*) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9
Simple Condition (bool~) keyboard_event_scan::$25 [21] if((byte) keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8
Simple Condition (bool~) keyboard_event_scan::$18 [26] if((byte~) keyboard_event_scan::$16==(byte) 0) goto keyboard_event_scan::@12
Simple Condition (bool~) keyboard_event_scan::$24 [31] if((byte) keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@11
Simple Condition (bool~) keyboard_event_scan::$20 [33] if((byte) keyboard_events_size#10==(byte) 8) goto keyboard_event_scan::@12
Simple Condition (bool~) keyboard_event_scan::$22 [36] if((byte) keyboard_event_scan::event_type#0==(byte) 0) goto keyboard_event_scan::@14
Simple Condition (bool~) keyboard_event_scan::$2 [49] if((byte~) keyboard_event_scan::$0==(byte) 0) goto keyboard_event_scan::@1
Simple Condition (bool~) keyboard_event_scan::$5 [56] if((byte~) keyboard_event_scan::$3==(byte) 0) goto keyboard_event_scan::@2
Simple Condition (bool~) keyboard_event_scan::$8 [64] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3
Simple Condition (bool~) keyboard_event_scan::$11 [72] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return
Simple Condition (bool~) keyboard_event_get::$0 [85] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@1
Simple Condition (bool~) render_init::$3 [138] if((byte) render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1
Simple Condition (bool~) render_show::$0 [145] if((byte) render_screen_show#16==(byte) 0) goto render_show::@1
Simple Condition (bool~) render_score::$0 [181] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1
Simple Condition (bool~) render_bcd::$2 [219] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1
Simple Condition (bool~) render_screen_original::$0 [244] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2
Simple Condition (bool~) render_screen_original::$1 [254] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@4
Simple Condition (bool~) render_screen_original::$2 [262] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@6
Simple Condition (bool~) render_screen_original::$3 [265] if((byte) render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1
Simple Condition (bool~) render_playfield::$1 [281] if((byte) render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2
Simple Condition (bool~) render_playfield::$2 [284] if((byte) render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1
Simple Condition (bool~) render_moving::$0 [292] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2
Simple Condition (bool~) render_moving::$5 [303] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1
Simple Condition (bool~) render_moving::$3 [308] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5
Simple Condition (bool~) render_moving::$4 [312] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4
Simple Condition (bool~) render_next::$0 [318] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1
Simple Condition (bool~) render_next::$3 [332] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@7
Simple Condition (bool~) render_next::$4 [338] if((byte) render_next::c#1!=rangelast(0,3)) goto render_next::@6
Simple Condition (bool~) render_next::$5 [342] if((byte) render_next::l#1!=rangelast(0,3)) goto render_next::@5
Simple Condition (bool~) sprites_init::$2 [358] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1
Simple Condition (bool~) sprites_irq::$4 [390] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify) goto sprites_irq::@11
Simple Condition (bool~) sprites_irq::$1 [393] if((byte) render_screen_showing==(byte) 0) goto sprites_irq::@1
Simple Condition (bool~) sprites_irq::$2 [408] if((byte) irq_cnt==(byte) 9) goto sprites_irq::@3
Simple Condition (bool~) sprites_irq::$3 [422] if((byte) irq_cnt==(byte) $a) goto sprites_irq::@4
Simple Condition (bool~) play_init::$0 [450] if((byte) play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1
Simple Condition (bool~) play_init::$1 [459] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@3
Simple Condition (bool~) play_movement::$2 [470] if((byte) game_over#15==(byte) 0) goto play_movement::@1
Simple Condition (bool~) play_move_down::$1 [489] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1
Simple Condition (bool~) play_move_down::$4 [496] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2
Simple Condition (bool~) play_move_down::$6 [500] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3
Simple Condition (bool~) play_move_down::$10 [502] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2
Simple Condition (bool~) play_move_down::$8 [506] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@4
Simple Condition (bool~) play_move_down::$13 [516] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@14
Simple Condition (bool~) play_move_leftright::$0 [534] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1
Simple Condition (bool~) play_move_leftright::$10 [542] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@3
Simple Condition (bool~) play_move_leftright::$2 [544] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@3
Simple Condition (bool~) play_move_leftright::$6 [552] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@3
Simple Condition (bool~) play_move_rotate::$0 [563] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1
Simple Condition (bool~) play_move_rotate::$1 [567] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2
Simple Condition (bool~) play_move_rotate::$4 [581] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@5
Simple Condition (bool~) play_collision::$2 [597] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3
Simple Condition (bool~) play_collision::$12 [601] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2
Simple Condition (bool~) play_collision::$4 [603] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4
Simple Condition (bool~) play_collision::$7 [606] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5
Simple Condition (bool~) play_collision::$9 [611] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6
Simple Condition (bool~) play_collision::$11 [614] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3
Simple Condition (bool~) play_collision::$13 [620] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1
Simple Condition (bool~) play_lock_current::$1 [634] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3
Simple Condition (bool~) play_lock_current::$2 [638] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2
Simple Condition (bool~) play_lock_current::$3 [643] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1
Simple Condition (bool~) play_spawn_current::$3 [661] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@1
Simple Condition (bool~) play_spawn_current::$4 [667] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1
Simple Condition (bool~) play_remove_lines::$1 [683] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@3
Simple Condition (bool~) play_remove_lines::$2 [689] if((byte) play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2
Simple Condition (bool~) play_remove_lines::$4 [692] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@7
Simple Condition (bool~) play_remove_lines::$6 [696] if((byte) play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1
Simple Condition (bool~) play_remove_lines::$7 [701] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@10
Simple Condition (bool~) play_update_score::$1 [707] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return
Simple Condition (bool~) play_update_score::$7 [719] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return
Simple Condition (bool~) play_increase_level::$0 [727] if((byte) level#21>(byte) $1d) goto play_increase_level::@1
Simple Condition (bool~) play_increase_level::$3 [734] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@3
Simple Condition (bool~) play_increase_level::$4 [744] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7
Simple Condition (bool~) main::$10 [767] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@4
Simple Condition (bool~) main::$14 [777] if((byte) game_over#10==(byte) 0) goto main::@11
Simple Condition (bool~) main::$18 [788] if((byte) main::render#2==(byte) 0) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [267] (word) render_bcd::offset#1 ← (const word) render_score::score_offset + (byte) 2
Constant right-side identified [274] (word) render_bcd::offset#2 ← (const word) render_score::score_offset + (byte) 4
Constant right-side identified [288] (word) render_bcd::offset#4 ← (const word) render_score::lines_offset + (byte) 1
Constant right-side identified [416] (byte*) render_next::screen_next_area#1 ← (const byte*) PLAYFIELD_SCREEN_1 + (const word) render_next::next_area_offset
Constant right-side identified [419] (byte*) render_next::screen_next_area#2 ← (const byte*) PLAYFIELD_SCREEN_2 + (const word) render_next::next_area_offset
Constant right-side identified [190] (word) render_bcd::offset#1 ← (const word) render_score::score_offset + (byte) 2
Constant right-side identified [195] (word) render_bcd::offset#2 ← (const word) render_score::score_offset + (byte) 4
Constant right-side identified [205] (word) render_bcd::offset#4 ← (const word) render_score::lines_offset + (byte) 1
Constant right-side identified [319] (byte*) render_next::screen_next_area#1 ← (const byte*) PLAYFIELD_SCREEN_1 + (const word) render_next::next_area_offset
Constant right-side identified [320] (byte*) render_next::screen_next_area#2 ← (const byte*) PLAYFIELD_SCREEN_2 + (const word) render_next::next_area_offset
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) keyboard_events_size#0 = 0
Constant (const byte) keyboard_modifiers#0 = 0
@ -7985,7 +7985,7 @@ Constant (const word) toSpritePtr1_$0 = (word)toSpritePtr1_sprite#0
Constant (const word) sprites_irq::toSpritePtr2_$0 = (word)sprites_irq::toSpritePtr2_sprite#0
Constant (const byte) play_collision::orientation#4 = current_orientation#68
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [1091] if(true) goto main::@4
if() condition always true - replacing block destination [764] if(true) goto main::@4
Removing PHI-reference to removed block (main::@12) in block main::@19
Removing PHI-reference to removed block (main::@12) in block main::@19
Removing PHI-reference to removed block (main::@12) in block main::@19
@ -8000,60 +8000,60 @@ Removing PHI-reference to removed block (main::@12) in block main::@19
Removing PHI-reference to removed block (main::@12) in block main::@19
Removing PHI-reference to removed block (main::@12) in block main::@19
Removing PHI-reference to removed block (main::@12) in block main::@19
if() condition always true - replacing block destination [1132] if(true) goto main::@13
if() condition always true - replacing block destination [784] if(true) goto main::@13
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [28] keyboard_event_scan::row#1 ← ++ keyboard_event_scan::row#2 to ++
Resolved ranged comparison value [30] if(keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8 to (number) 8
Resolved ranged next value [39] keyboard_event_scan::col#1 ← ++ keyboard_event_scan::col#2 to ++
Resolved ranged comparison value [41] if(keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@11 to (number) 8
Resolved ranged next value [188] render_init::i#1 ← ++ render_init::i#2 to ++
Resolved ranged comparison value [190] if(render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
Resolved ranged next value [353] render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++
Resolved ranged comparison value [355] if(render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 to (number) $19
Resolved ranged next value [369] render_playfield::c#1 ← ++ render_playfield::c#2 to ++
Resolved ranged comparison value [371] if(render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1
Resolved ranged next value [373] render_playfield::l#1 ← ++ render_playfield::l#2 to ++
Resolved ranged comparison value [375] if(render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
Resolved ranged next value [394] render_moving::l#1 ← ++ render_moving::l#4 to ++
Resolved ranged comparison value [396] if(render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 to (number) 4
Resolved ranged next value [405] render_moving::c#1 ← ++ render_moving::c#2 to ++
Resolved ranged comparison value [407] if(render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 to (number) 4
Resolved ranged next value [439] render_next::c#1 ← ++ render_next::c#2 to ++
Resolved ranged comparison value [441] if(render_next::c#1!=rangelast(0,3)) goto render_next::@6 to (number) 4
Resolved ranged next value [444] render_next::l#1 ← ++ render_next::l#7 to ++
Resolved ranged comparison value [446] if(render_next::l#1!=rangelast(0,3)) goto render_next::@5 to (number) 4
Resolved ranged next value [463] sprites_init::s#1 ← ++ sprites_init::s#2 to ++
Resolved ranged comparison value [465] if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (number) 4
Resolved ranged next value [566] play_init::j#1 ← ++ play_init::j#2 to ++
Resolved ranged comparison value [568] if(play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
Resolved ranged next value [576] play_init::b#1 ← ++ play_init::b#2 to ++
Resolved ranged comparison value [578] if(play_init::b#1!=rangelast(0,4)) goto play_init::@3 to (number) 5
Resolved ranged next value [834] play_collision::c#1 ← ++ play_collision::c#2 to ++
Resolved ranged comparison value [836] if(play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 to (number) 4
Resolved ranged next value [863] play_collision::l#1 ← ++ play_collision::l#6 to ++
Resolved ranged comparison value [865] if(play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 to (number) 4
Resolved ranged next value [883] play_lock_current::c#1 ← ++ play_lock_current::c#2 to ++
Resolved ranged comparison value [885] if(play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 to (number) 4
Resolved ranged next value [890] play_lock_current::l#1 ← ++ play_lock_current::l#6 to ++
Resolved ranged comparison value [892] if(play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 to (number) 4
Resolved ranged next value [957] play_remove_lines::x#1 ← ++ play_remove_lines::x#2 to ++
Resolved ranged comparison value [959] if(play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1
Resolved ranged next value [967] play_remove_lines::y#1 ← ++ play_remove_lines::y#8 to ++
Resolved ranged comparison value [969] if(play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
Resolved ranged next value [1039] play_increase_level::b#1 ← ++ play_increase_level::b#2 to ++
Resolved ranged comparison value [1041] if(play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7 to (number) 5
Rewriting conditional comparison [383] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2
Rewriting conditional comparison [1020] if((byte) level#21>(byte) $1d) goto play_increase_level::@1
Simplifying expression containing zero KEY_MODIFIER_LSHIFT in [80] (byte) keyboard_modifiers#2 ← (const byte) keyboard_modifiers#1 | (const byte) KEY_MODIFIER_LSHIFT
Simplifying expression containing zero PIECES_COLORS_1 in [171] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) 0)
Simplifying expression containing zero PIECES_COLORS_2 in [172] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) 0)
Simplifying expression containing zero render_score::score_bytes in [277] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes + (byte) 0)
Simplifying expression containing zero SPRITES_YPOS in [497] *((const byte*) SPRITES_YPOS + (byte) 0) ← (byte) sprites_irq::ypos#0
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_1 in [509] *((const byte*) PLAYFIELD_SPRITE_PTRS_1 + (byte) 0) ← (byte) sprites_irq::ptr#0
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_2 in [516] *((const byte*) PLAYFIELD_SPRITE_PTRS_2 + (byte) 0) ← (byte) sprites_irq::ptr#0
Simplifying expression containing zero MOVEDOWN_SLOW_SPEEDS in [571] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (const byte) level#0)
Simplifying expression containing zero play_movement::$0 in [602] (byte) play_movement::render#1 ← (const byte) play_movement::render#0 + (byte~) play_movement::$0
Simplifying expression containing zero current_piece#5 in [900] (byte*) current_piece_gfx#74 ← (byte*) current_piece#5 + (const byte) current_orientation#68
Resolved ranged next value [19] keyboard_event_scan::row#1 ← ++ keyboard_event_scan::row#2 to ++
Resolved ranged comparison value [21] if(keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8 to (number) 8
Resolved ranged next value [29] keyboard_event_scan::col#1 ← ++ keyboard_event_scan::col#2 to ++
Resolved ranged comparison value [31] if(keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@11 to (number) 8
Resolved ranged next value [136] render_init::i#1 ← ++ render_init::i#2 to ++
Resolved ranged comparison value [138] if(render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
Resolved ranged next value [263] render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++
Resolved ranged comparison value [265] if(render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 to (number) $19
Resolved ranged next value [279] render_playfield::c#1 ← ++ render_playfield::c#2 to ++
Resolved ranged comparison value [281] if(render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1
Resolved ranged next value [282] render_playfield::l#1 ← ++ render_playfield::l#2 to ++
Resolved ranged comparison value [284] if(render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
Resolved ranged next value [301] render_moving::l#1 ← ++ render_moving::l#4 to ++
Resolved ranged comparison value [303] if(render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 to (number) 4
Resolved ranged next value [310] render_moving::c#1 ← ++ render_moving::c#2 to ++
Resolved ranged comparison value [312] if(render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 to (number) 4
Resolved ranged next value [336] render_next::c#1 ← ++ render_next::c#2 to ++
Resolved ranged comparison value [338] if(render_next::c#1!=rangelast(0,3)) goto render_next::@6 to (number) 4
Resolved ranged next value [340] render_next::l#1 ← ++ render_next::l#7 to ++
Resolved ranged comparison value [342] if(render_next::l#1!=rangelast(0,3)) goto render_next::@5 to (number) 4
Resolved ranged next value [356] sprites_init::s#1 ← ++ sprites_init::s#2 to ++
Resolved ranged comparison value [358] if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (number) 4
Resolved ranged next value [448] play_init::j#1 ← ++ play_init::j#2 to ++
Resolved ranged comparison value [450] if(play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
Resolved ranged next value [457] play_init::b#1 ← ++ play_init::b#2 to ++
Resolved ranged comparison value [459] if(play_init::b#1!=rangelast(0,4)) goto play_init::@3 to (number) 5
Resolved ranged next value [599] play_collision::c#1 ← ++ play_collision::c#2 to ++
Resolved ranged comparison value [601] if(play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 to (number) 4
Resolved ranged next value [618] play_collision::l#1 ← ++ play_collision::l#6 to ++
Resolved ranged comparison value [620] if(play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 to (number) 4
Resolved ranged next value [636] play_lock_current::c#1 ← ++ play_lock_current::c#2 to ++
Resolved ranged comparison value [638] if(play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 to (number) 4
Resolved ranged next value [641] play_lock_current::l#1 ← ++ play_lock_current::l#6 to ++
Resolved ranged comparison value [643] if(play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 to (number) 4
Resolved ranged next value [687] play_remove_lines::x#1 ← ++ play_remove_lines::x#2 to ++
Resolved ranged comparison value [689] if(play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1
Resolved ranged next value [694] play_remove_lines::y#1 ← ++ play_remove_lines::y#8 to ++
Resolved ranged comparison value [696] if(play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
Resolved ranged next value [742] play_increase_level::b#1 ← ++ play_increase_level::b#2 to ++
Resolved ranged comparison value [744] if(play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7 to (number) 5
Rewriting conditional comparison [292] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2
Rewriting conditional comparison [727] if((byte) level#21>(byte) $1d) goto play_increase_level::@1
Simplifying expression containing zero KEY_MODIFIER_LSHIFT in [57] (byte) keyboard_modifiers#2 ← (const byte) keyboard_modifiers#1 | (const byte) KEY_MODIFIER_LSHIFT
Simplifying expression containing zero PIECES_COLORS_1 in [119] *((const byte*) BGCOL2) ← *((const byte*) PIECES_COLORS_1 + (byte) 0)
Simplifying expression containing zero PIECES_COLORS_2 in [120] *((const byte*) BGCOL3) ← *((const byte*) PIECES_COLORS_2 + (byte) 0)
Simplifying expression containing zero render_score::score_bytes in [197] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes + (byte) 0)
Simplifying expression containing zero SPRITES_YPOS in [383] *((const byte*) SPRITES_YPOS + (byte) 0) ← (byte) sprites_irq::ypos#0
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_1 in [394] *((const byte*) PLAYFIELD_SPRITE_PTRS_1 + (byte) 0) ← (byte) sprites_irq::ptr#0
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_2 in [400] *((const byte*) PLAYFIELD_SPRITE_PTRS_2 + (byte) 0) ← (byte) sprites_irq::ptr#0
Simplifying expression containing zero MOVEDOWN_SLOW_SPEEDS in [452] (byte) current_movedown_slow#1 ← *((const byte*) MOVEDOWN_SLOW_SPEEDS + (const byte) level#0)
Simplifying expression containing zero play_movement::$0 in [468] (byte) play_movement::render#1 ← (const byte) play_movement::render#0 + (byte~) play_movement::$0
Simplifying expression containing zero current_piece#5 in [651] (byte*) current_piece_gfx#74 ← (byte*) current_piece#5 + (const byte) current_orientation#68
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte*) render_bcd::screen_pos#1 and assignment [149] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3
Eliminating unused variable - keeping the phi block (byte) keyboard_modifiers#16
@ -8211,14 +8211,14 @@ Identical Phi Values (word) lines_bcd#40 (word) lines_bcd#15
Identical Phi Values (byte) level#102 (byte) level#17
Identical Phi Values (byte) level_bcd#50 (byte) level_bcd#17
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [71] (byte~) render_init::vicSelectGfxBank1_toDd001_$1 ← > (const word) render_init::vicSelectGfxBank1_toDd001_$0
Constant right-side identified [94] (word~) render_show::toD0181_$1 ← (const word) render_show::toD0181_$0 & (word) $3fff
Constant right-side identified [97] (byte~) render_show::toD0181_$5 ← > (const word) render_show::toD0181_$4
Constant right-side identified [101] (word~) render_show::toD0182_$1 ← (const word) render_show::toD0182_$0 & (word) $3fff
Constant right-side identified [104] (byte~) render_show::toD0182_$5 ← > (const word) render_show::toD0182_$4
Constant right-side identified [249] (word~) toSpritePtr1_$1 ← (const word) toSpritePtr1_$0 / (byte) $40
Constant right-side identified [293] (word~) sprites_irq::toSpritePtr2_$1 ← (const word) sprites_irq::toSpritePtr2_$0 / (byte) $40
Constant right-side identified [351] (byte) play_move_down::movedown#1 ← ++ (const byte) play_move_down::movedown#0
Constant right-side identified [67] (byte~) render_init::vicSelectGfxBank1_toDd001_$1 ← > (const word) render_init::vicSelectGfxBank1_toDd001_$0
Constant right-side identified [89] (word~) render_show::toD0181_$1 ← (const word) render_show::toD0181_$0 & (word) $3fff
Constant right-side identified [92] (byte~) render_show::toD0181_$5 ← > (const word) render_show::toD0181_$4
Constant right-side identified [96] (word~) render_show::toD0182_$1 ← (const word) render_show::toD0182_$0 & (word) $3fff
Constant right-side identified [99] (byte~) render_show::toD0182_$5 ← > (const word) render_show::toD0182_$4
Constant right-side identified [244] (word~) toSpritePtr1_$1 ← (const word) toSpritePtr1_$0 / (byte) $40
Constant right-side identified [288] (word~) sprites_irq::toSpritePtr2_$1 ← (const word) sprites_irq::toSpritePtr2_$0 / (byte) $40
Constant right-side identified [345] (byte) play_move_down::movedown#1 ← ++ (const byte) play_move_down::movedown#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) render_init::vicSelectGfxBank1_toDd001_$1 = >render_init::vicSelectGfxBank1_toDd001_$0
Constant (const word) render_show::toD0181_$1 = render_show::toD0181_$0&$3fff

View File

@ -302,14 +302,14 @@ Identical Phi Values (byte) memset::c#2 (byte) memset::c#4
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (void*) memset::return#0 (void*) memset::str#3
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) main::$5 [35] if((byte) 0!=*((byte*) main::msg#2)) goto main::@2
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#2<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) main::$5 [28] if((byte) 0!=*((byte*) main::msg#2)) goto main::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting || if()-condition to two if()s [43] (bool~) main::$4 ← (bool~) main::$2 || (bool~) main::$3
Rewriting || if()-condition to two if()s [35] (bool~) main::$4 ← (bool~) main::$2 || (bool~) main::$3
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant right-side identified [23] (word) memset::num#0 ← (unumber)(number) $28*(number) $19
Constant right-side identified [28] (word) memset::num#1 ← (unumber)(number) $28*(number) $19
Constant right-side identified [16] (word) memset::num#0 ← (unumber)(number) $28*(number) $19
Constant right-side identified [21] (word) memset::num#1 ← (unumber)(number) $28*(number) $19
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const void*) memset::str#0 = (void*)SCREEN
Constant (const byte) memset::c#0 = ' '
@ -320,7 +320,7 @@ Constant (const word) memset::num#1 = (unumber)$28*$19
Constant (const byte*) main::sc#0 = SCREEN+$28
Constant (const byte*) main::msg#0 = MESSAGE
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [40] if(true) goto main::@8
if() condition always true - replacing block destination [32] if(true) goto main::@8
Successful SSA optimization Pass2ConstantIfs
Eliminating unused variable (void*) memset::return#2 and assignment [12] (void*) memset::return#2 ← (void*) memset::str#3
Eliminating unused variable (void*) memset::return#3 and assignment [14] (void*) memset::return#3 ← (void*) memset::str#3

View File

@ -174,10 +174,10 @@ Successful SSA optimization Pass2AliasElimination
Alias (byte) main::i#2 = (byte) main::i#3
Alias (word) main::i1#2 = (word) main::i1#3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$2 [19] if((byte) 0==(byte) main::i#2) goto main::@6
Simple Condition (bool~) main::$3 [23] if((byte) main::i#1!=rangelast(0,2)) goto main::@5
Simple Condition (bool~) main::$4 [34] if((byte) 0==(word) main::i1#2) goto main::@10
Simple Condition (bool~) main::$5 [38] if((word) main::i1#1!=rangelast(0,2)) goto main::@9
Simple Condition (bool~) main::$2 [16] if((byte) 0==(byte) main::i#2) goto main::@6
Simple Condition (bool~) main::$3 [20] if((byte) main::i#1!=rangelast(0,2)) goto main::@5
Simple Condition (bool~) main::$4 [28] if((byte) 0==(word) main::i1#2) goto main::@10
Simple Condition (bool~) main::$5 [32] if((word) main::i1#1!=rangelast(0,2)) goto main::@9
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [1] (bool~) main::$0 ← ! (number) 0!=(number) 0
Rewriting ! if()-condition to reversed if() [4] (bool~) main::$1 ← ! (number) 0!=(number) $3e7
@ -190,11 +190,11 @@ if() condition always false - eliminating [2] if((number) 0!=(number) 0) goto ma
Removing PHI-reference to removed block (main::@1) in block main::@2
if() condition always true - replacing block destination [5] if((number) 0!=(number) $3e7) goto main::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [21] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [23] if(main::i#1!=rangelast(0,2)) goto main::@5 to (number) 3
Resolved ranged next value [36] main::i1#1 ← ++ main::i1#2 to ++
Resolved ranged comparison value [38] if(main::i1#1!=rangelast(0,2)) goto main::@9 to (number) 3
Simplifying expression containing zero SCREEN in [7] *((const byte*) SCREEN + (const byte) main::idx#0) ← (byte) '0'
Resolved ranged next value [18] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [20] if(main::i#1!=rangelast(0,2)) goto main::@5 to (number) 3
Resolved ranged next value [30] main::i1#1 ← ++ main::i1#2 to ++
Resolved ranged comparison value [32] if(main::i1#1!=rangelast(0,2)) goto main::@9 to (number) 3
Simplifying expression containing zero SCREEN in [6] *((const byte*) SCREEN + (const byte) main::idx#0) ← (byte) '0'
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating variable (byte) main::idx#1 from unused block main::@3
Removing PHI-reference to removed block (main::@3) in block main::@1
@ -213,11 +213,11 @@ Alias (byte) main::idx#3 = (byte) main::idx#8
Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) main::idx#13 (const byte) main::idx#0
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [5] (byte) main::idx#3 ← ++ (const byte) main::idx#0
Constant right-side identified [4] (byte) main::idx#3 ← ++ (const byte) main::idx#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::idx#3 = ++main::idx#0
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero SCREEN in [4] *((const byte*) SCREEN + (const byte) main::idx#0) ← (byte) '+'
Simplifying expression containing zero SCREEN in [3] *((const byte*) SCREEN + (const byte) main::idx#0) ← (byte) '+'
Successful SSA optimization PassNSimplifyExpressionWithZero
Constant right-side identified [1] (byte) main::idx#2 ← ++ (const byte) main::idx#3
Successful SSA optimization Pass2ConstantRValueConsolidation

View File

@ -180,10 +180,10 @@ Successful SSA optimization Pass2AliasElimination
Alias (byte) main::i#2 = (byte) main::i#3
Alias (word) main::i1#2 = (word) main::i1#3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$3 [20] if((byte) 0!=(byte) main::i#2) goto main::@6
Simple Condition (bool~) main::$4 [24] if((byte) main::i#1!=rangelast(0,2)) goto main::@5
Simple Condition (bool~) main::$6 [36] if((byte) 0!=(word) main::i1#2) goto main::@10
Simple Condition (bool~) main::$7 [40] if((word) main::i1#1!=rangelast(0,2)) goto main::@9
Simple Condition (bool~) main::$3 [16] if((byte) 0!=(byte) main::i#2) goto main::@6
Simple Condition (bool~) main::$4 [20] if((byte) main::i#1!=rangelast(0,2)) goto main::@5
Simple Condition (bool~) main::$6 [28] if((byte) 0!=(word) main::i1#2) goto main::@10
Simple Condition (bool~) main::$7 [32] if((word) main::i1#1!=rangelast(0,2)) goto main::@9
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [1] (bool~) main::$0 ← ! !(number) 0!=(number) 0
Rewriting ! if()-condition to reversed if() [4] (bool~) main::$1 ← ! !(number) 0!=(number) $3e7
@ -196,11 +196,11 @@ Removing PHI-reference to removed block (main) in block main::@1
if() condition always true - replacing block destination [2] if(!(number) 0!=(number) 0) goto main::@3
if() condition always false - eliminating [5] if(!(number) 0!=(number) $3e7) goto main::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [22] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [24] if(main::i#1!=rangelast(0,2)) goto main::@5 to (number) 3
Resolved ranged next value [38] main::i1#1 ← ++ main::i1#2 to ++
Resolved ranged comparison value [40] if(main::i1#1!=rangelast(0,2)) goto main::@9 to (number) 3
Simplifying expression containing zero SCREEN in [7] *((const byte*) SCREEN + (const byte) main::idx#0) ← (byte) '0'
Resolved ranged next value [18] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [20] if(main::i#1!=rangelast(0,2)) goto main::@5 to (number) 3
Resolved ranged next value [30] main::i1#1 ← ++ main::i1#2 to ++
Resolved ranged comparison value [32] if(main::i1#1!=rangelast(0,2)) goto main::@9 to (number) 3
Simplifying expression containing zero SCREEN in [6] *((const byte*) SCREEN + (const byte) main::idx#0) ← (byte) '0'
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating variable (byte) main::idx#3 from unused block main::@4
Removing PHI-reference to removed block (main::@4) in block main::@2
@ -217,7 +217,7 @@ Finalized unsigned number type (byte) 3
Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias (byte) main::idx#1 = (byte) main::idx#13 (byte) main::idx#8
Successful SSA optimization Pass2AliasElimination
Constant right-side identified [2] (byte) main::idx#1 ← ++ (const byte) main::idx#0
Constant right-side identified [1] (byte) main::idx#1 ← ++ (const byte) main::idx#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte) main::idx#1 = ++main::idx#0
Successful SSA optimization Pass2ConstantIdentification

View File

@ -159,8 +159,8 @@ Identical Phi Values (byte) idx#18 (byte) idx#0
Identical Phi Values (byte) idx#14 (byte) idx#13
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$0 [5] if((byte) 0!=(byte) main::i#2) goto main::@2
Simple Condition (bool~) main::$1 [17] if((byte) 0!=(byte) main::j#1) goto main::@8
Simple Condition (bool~) main::$2 [30] if((byte) 0!=(byte) main::k#1) goto main::@13
Simple Condition (bool~) main::$1 [15] if((byte) 0!=(byte) main::j#1) goto main::@8
Simple Condition (bool~) main::$2 [26] if((byte) 0!=(byte) main::k#1) goto main::@13
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) idx#0 = 0
Constant (const byte) main::i#0 = 2

View File

@ -98,15 +98,15 @@ Alias (byte) main::idx#2 = (byte) main::idx#3
Alias (signed byte) main::i#2 = (signed byte) main::i#3
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$4 [4] if((signed byte) 0!=(signed byte) main::i#2) goto main::@2
Simple Condition (bool~) main::$3 [15] if((signed byte) main::i#1!=rangelast(-2,2)) goto main::@1
Simple Condition (bool~) main::$3 [12] if((signed byte) main::i#1!=rangelast(-2,2)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::idx#0 = 0
Constant (const signed byte) main::i#0 = -2
Constant (const byte) main::$1 = '+'
Constant (const byte) main::$0 = '0'
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [13] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [15] if(main::i#1!=rangelast(-2,2)) goto main::@1 to (number) 3
Resolved ranged next value [10] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [12] if(main::i#1!=rangelast(-2,2)) goto main::@1 to (number) 3
Adding number conversion cast (snumber) 3 in if((signed byte) main::i#1!=(number) 3) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 3

View File

@ -199,14 +199,14 @@ Successful SSA optimization Pass2AliasElimination
Alias (byte) main::i#10 = (byte) main::i#3 (byte) main::i#2 (byte) main::i#4 (byte) main::i#6
Alias (byte) main::idx#10 = (byte) main::idx#3 (byte) main::idx#2 (byte) main::idx#4 (byte) main::idx#5
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$1 [6] if((byte) 0==(byte~) main::$0) goto main::@2
Simple Condition (bool~) main::$3 [11] if((byte) 0==(byte~) main::$2) goto main::@3
Simple Condition (bool~) main::$12 [34] if((byte) main::i#1!=rangelast(0,7)) goto main::@1
Simple Condition (bool~) main::$1 [5] if((byte) 0==(byte~) main::$0) goto main::@2
Simple Condition (bool~) main::$3 [8] if((byte) 0==(byte~) main::$2) goto main::@3
Simple Condition (bool~) main::$12 [25] if((byte) main::i#1!=rangelast(0,7)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting ! if()-condition to reversed if() [18] (bool~) main::$7 ← ! (bool~) main::$6
Rewriting && if()-condition to two if()s [17] (bool~) main::$6 ← (byte~) main::$4 && (byte~) main::$5
Rewriting ! if()-condition to reversed if() [26] (bool~) main::$11 ← ! (bool~) main::$10
Rewriting || if()-condition to two if()s [25] (bool~) main::$10 ← (byte~) main::$8 || (byte~) main::$9
Rewriting ! if()-condition to reversed if() [13] (bool~) main::$7 ← ! (bool~) main::$6
Rewriting && if()-condition to two if()s [12] (bool~) main::$6 ← (byte~) main::$4 && (byte~) main::$5
Rewriting ! if()-condition to reversed if() [19] (bool~) main::$11 ← ! (bool~) main::$10
Rewriting || if()-condition to two if()s [18] (bool~) main::$10 ← (byte~) main::$8 || (byte~) main::$9
Successful SSA optimization Pass2ConditionalAndOrRewriting
Warning! Adding boolean cast to non-boolean condition (byte~) main::$4
Warning! Adding boolean cast to non-boolean condition (byte~) main::$8
@ -215,11 +215,11 @@ Warning! Adding boolean cast to non-boolean condition (byte~) main::$9
Constant (const byte) main::idx#0 = 0
Constant (const byte) main::i#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [32] main::i#1 ← ++ main::i#10 to ++
Resolved ranged comparison value [34] if(main::i#1!=rangelast(0,7)) goto main::@1 to (number) 8
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [13] *((const byte*) SCREEN+(byte)(number) $28*(number) 0 + (byte) main::idx#10) ← (byte) '+'
Resolved ranged next value [23] main::i#1 ← ++ main::i#10 to ++
Resolved ranged comparison value [25] if(main::i#1!=rangelast(0,7)) goto main::@1 to (number) 8
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [9] *((const byte*) SCREEN+(byte)(number) $28*(number) 0 + (byte) main::idx#10) ← (byte) '+'
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero SCREEN in [13] *((const byte*) SCREEN+(byte) 0 + (byte) main::idx#10) ← (byte) '+'
Simplifying expression containing zero SCREEN in [9] *((const byte*) SCREEN+(byte) 0 + (byte) main::idx#10) ← (byte) '+'
Successful SSA optimization PassNSimplifyExpressionWithZero
Adding number conversion cast (unumber) 0 in (bool~) main::$15 ← (number) 0 != (byte~) main::$4
Adding number conversion cast (unumber) 0 in (bool~) main::$16 ← (number) 0 != (byte~) main::$8

View File

@ -48,9 +48,9 @@ Finalized unsigned number type (byte) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inversing boolean not [1] (bool~) main::$0 ← (byte) 0 == (const byte) main::b from [0] (bool~) main::$1 ← (byte) 0 != (const byte) main::b
Successful SSA optimization Pass2UnaryNotSimplification
Simple Condition (bool~) main::$0 [2] if((byte) 0==(const byte) main::b) goto main::@return
Simple Condition (bool~) main::$0 [1] if((byte) 0==(const byte) main::b) goto main::@return
Successful SSA optimization Pass2ConditionalJumpSimplification
if() condition always false - eliminating [2] if((byte) 0==(const byte) main::b) goto main::@return
if() condition always false - eliminating [1] if((byte) 0==(const byte) main::b) goto main::@return
Successful SSA optimization Pass2ConstantIfs
Eliminating unused constant (const byte) main::b
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -63,12 +63,12 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to byte in (unumber~) main::$0 ← (byte) main::x#2 + (byte) $c
Alias (byte) main::y#0 = (byte~) main::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$1 [8] if((byte) main::x#1!=rangelast(0,$a)) goto main::@1
Simple Condition (bool~) main::$1 [7] if((byte) main::x#1!=rangelast(0,$a)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::x#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [6] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [8] if(main::x#1!=rangelast(0,$a)) goto main::@1 to (number) $b
Resolved ranged next value [5] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [7] if(main::x#1!=rangelast(0,$a)) goto main::@1 to (number) $b
Adding number conversion cast (unumber) $b in if((byte) main::x#1!=(number) $b) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast $b

View File

@ -183,7 +183,7 @@ Identical Phi Values (byte) line::x1#2 (byte) line::x1#1
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$0 [6] if((byte) main::i#1!=rangelast(0,$27)) goto main::@1
Simple Condition (bool~) line::$0 [14] if((byte) line::x0#0<(byte) line::x1#0) goto line::@1
Simple Condition (bool~) line::$2 [22] if((byte) line::x#2<=(byte) line::x1#0) goto line::@6
Simple Condition (bool~) line::$2 [19] if((byte) line::x#2<=(byte) line::x1#0) goto line::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::i#0 = 0
Constant (const byte) line::x0#0 = 0
@ -196,7 +196,7 @@ if() condition always true - replacing block destination [14] if((const byte) li
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [4] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [6] if(main::i#1!=rangelast(0,$27)) goto main::@1 to (number) $28
Rewriting conditional comparison [22] if((byte) line::x#2<=(const byte) line::x1#0) goto line::@6
Rewriting conditional comparison [19] if((byte) line::x#2<=(const byte) line::x1#0) goto line::@6
Removing unused block main::@return
Removing PHI-reference to removed block (line::@3) in block plot
Removing unused block line::@3

View File

@ -123,7 +123,7 @@ Constant (const byte) sum::b#1 = 'm'
Constant (const byte) sum::a#2 = main::reverse
Constant (const byte) sum::b#2 = 'l'
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::screen in [6] *((const byte*) main::screen + (byte) 0) ← (byte~) main::$0
Simplifying expression containing zero main::screen in [5] *((const byte*) main::screen + (byte) 0) ← (byte~) main::$0
Successful SSA optimization PassNSimplifyExpressionWithZero
Inlining constant with var siblings (const byte) sum::a#0
Inlining constant with var siblings (const byte) sum::b#0

View File

@ -78,16 +78,16 @@ Alias (byte*) BGCOL#0 = (byte*~) $1 (byte*) BGCOL#2
Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte*) BGCOL#1 (byte*) BGCOL#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$0 [11] if((byte) main::i#1!=rangelast($28,$4f)) goto main::@1
Simple Condition (bool~) main::$0 [10] if((byte) main::i#1!=rangelast($28,$4f)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [0] (byte*~) $0 ← (const byte*) VIC + (byte)(number) $10*(number) 2
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) $0 = VIC+(byte)$10*2
Constant (const byte) main::i#0 = $28
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [9] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [11] if(main::i#1!=rangelast($28,$4f)) goto main::@1 to (number) $50
Converting *(pointer+n) to pointer[n] [5] *((byte*) BGCOL#0) ← (const byte) RED -- *($0 + 1)
Resolved ranged next value [8] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [10] if(main::i#1!=rangelast($28,$4f)) goto main::@1 to (number) $50
Converting *(pointer+n) to pointer[n] [4] *((byte*) BGCOL#0) ← (const byte) RED -- *($0 + 1)
Successful SSA optimization Pass2InlineDerefIdx
Eliminating unused variable (byte*) BGCOL#0 and assignment [0] (byte*) BGCOL#0 ← (const byte*) $0 + (byte) 1
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -1062,15 +1062,15 @@ Identical Phi Values (byte*) print_char_cursor#78 (byte*) print_char_cursor#2
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (byte*) print_char_cursor#67 (byte*) print_char_cursor#2
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str::$0 [26] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
Simple Condition (bool~) assert_byte::$2 [119] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1
Simple Condition (bool~) assert_sbyte::$2 [196] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str::$0 [17] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
Simple Condition (bool~) print_ln::$1 [26] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
Simple Condition (bool~) assert_byte::$2 [73] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1
Simple Condition (bool~) assert_sbyte::$2 [123] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [85] (byte) test_bytes::bc#0 ← (const byte) test_bytes::bb + (byte) 2
Constant right-side identified [148] (signed byte) test_sbytes::bc#0 ← (const signed byte) test_sbytes::bb + (signed byte) 2
Constant right-side identified [50] (byte) test_bytes::bc#0 ← (const byte) test_bytes::bb + (byte) 2
Constant right-side identified [91] (signed byte) test_sbytes::bc#0 ← (const signed byte) test_sbytes::bb + (signed byte) 2
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) print_line_cursor#0 = (byte*) 1024
Constant (const byte) memset::c#0 = ' '
@ -1112,7 +1112,7 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) msg
Consolidated constant strings into (const byte*) msg1

View File

@ -1373,22 +1373,22 @@ Identical Phi Values (signed word) atan2_16::y#4 (signed word) atan2_16::y#19
Identical Phi Values (byte*) print_char_cursor#33 (byte*) print_char_cursor#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) init_font_hex::$3 [19] if((byte) init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3
Simple Condition (bool~) init_font_hex::$4 [29] if((byte) init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2
Simple Condition (bool~) init_font_hex::$5 [34] if((byte) init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1
Simple Condition (bool~) atan2_16::$0 [38] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
Simple Condition (bool~) atan2_16::$5 [47] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
Simple Condition (bool~) atan2_16::$17 [60] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@16
Simple Condition (bool~) atan2_16::$11 [69] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
Simple Condition (bool~) atan2_16::$18 [72] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@19
Simple Condition (bool~) atan2_16::$19 [80] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@25
Simple Condition (bool~) atan2_16::$20 [83] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@26
Simple Condition (bool~) atan2_16::$21 [100] if((byte) atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@15
Simple Condition (bool~) atan2_16::$14 [104] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
Simple Condition (bool~) main::$14 [215] if((signed byte) main::x#1!=rangelast(-$13,$14)) goto main::@2
Simple Condition (bool~) main::$15 [219] if((signed byte) main::y#1!=rangelast(-$c,$c)) goto main::@1
Simple Condition (bool~) diff::$0 [234] if((byte) diff::bb1#0<(byte) diff::bb2#0) goto diff::@1
Simple Condition (bool~) init_font_hex::$4 [28] if((byte) init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2
Simple Condition (bool~) init_font_hex::$5 [32] if((byte) init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1
Simple Condition (bool~) atan2_16::$0 [36] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
Simple Condition (bool~) atan2_16::$5 [40] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
Simple Condition (bool~) atan2_16::$17 [47] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@16
Simple Condition (bool~) atan2_16::$11 [51] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
Simple Condition (bool~) atan2_16::$18 [54] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@19
Simple Condition (bool~) atan2_16::$19 [59] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@25
Simple Condition (bool~) atan2_16::$20 [62] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@26
Simple Condition (bool~) atan2_16::$21 [76] if((byte) atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@15
Simple Condition (bool~) atan2_16::$14 [79] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
Simple Condition (bool~) main::$14 [154] if((signed byte) main::x#1!=rangelast(-$13,$14)) goto main::@2
Simple Condition (bool~) main::$15 [157] if((signed byte) main::y#1!=rangelast(-$c,$c)) goto main::@1
Simple Condition (bool~) diff::$0 [167] if((byte) diff::bb1#0<(byte) diff::bb2#0) goto diff::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [100] if((byte) atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17
Negating conditional jump and destination [76] if((byte) atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant (const byte*) init_font_hex::proto_hi#0 = FONT_HEX_PROTO
Constant (const byte) init_font_hex::c#0 = 0
@ -1411,20 +1411,20 @@ Successful SSA optimization Pass2ConstantIdentification
Constant (const word) main::toD0181_$0 = (word)main::toD0181_screen#0
Constant (const word) main::toD0181_$4 = (word)main::toD0181_gfx#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [226] if(true) goto main::@6
if() condition always true - replacing block destination [162] if(true) goto main::@6
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [17] init_font_hex::i#1 ← ++ init_font_hex::i#2 to ++
Resolved ranged comparison value [19] if(init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3 to (number) 5
Resolved ranged next value [27] init_font_hex::c1#1 ← ++ init_font_hex::c1#4 to ++
Resolved ranged comparison value [29] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 to (number) $10
Resolved ranged next value [32] init_font_hex::c#1 ← ++ init_font_hex::c#6 to ++
Resolved ranged comparison value [34] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to (number) $10
Resolved ranged next value [98] atan2_16::i#1 ← ++ atan2_16::i#2 to ++
Resolved ranged comparison value [100] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17 to (const byte) CORDIC_ITERATIONS_16-(byte) 1+(number) 1
Resolved ranged next value [213] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [215] if(main::x#1!=rangelast(-$13,$14)) goto main::@2 to (number) $15
Resolved ranged next value [217] main::y#1 ← ++ main::y#4 to ++
Resolved ranged comparison value [219] if(main::y#1!=rangelast(-$c,$c)) goto main::@1 to (number) $d
Resolved ranged next value [26] init_font_hex::c1#1 ← ++ init_font_hex::c1#4 to ++
Resolved ranged comparison value [28] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 to (number) $10
Resolved ranged next value [30] init_font_hex::c#1 ← ++ init_font_hex::c#6 to ++
Resolved ranged comparison value [32] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to (number) $10
Resolved ranged next value [74] atan2_16::i#1 ← ++ atan2_16::i#2 to ++
Resolved ranged comparison value [76] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17 to (const byte) CORDIC_ITERATIONS_16-(byte) 1+(number) 1
Resolved ranged next value [152] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [154] if(main::x#1!=rangelast(-$13,$14)) goto main::@2 to (number) $15
Resolved ranged next value [155] main::y#1 ← ++ main::y#4 to ++
Resolved ranged comparison value [157] if(main::y#1!=rangelast(-$c,$c)) goto main::@1 to (number) $d
Simplifying expression containing zero init_font_hex::charset#2 in [8] *((byte*) init_font_hex::charset#2 + (const byte) init_font_hex::idx#0) ← (byte) 0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte) init_font_hex::idx#4 and assignment [15] (byte) init_font_hex::idx#4 ← ++ (byte) init_font_hex::idx#3

View File

@ -986,21 +986,21 @@ Identical Phi Values (signed word) atan2_16::x#4 (signed word) atan2_16::x#17
Identical Phi Values (signed word) atan2_16::y#4 (signed word) atan2_16::y#19
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) init_font_hex::$3 [19] if((byte) init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3
Simple Condition (bool~) init_font_hex::$4 [29] if((byte) init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2
Simple Condition (bool~) init_font_hex::$5 [34] if((byte) init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1
Simple Condition (bool~) atan2_16::$0 [38] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
Simple Condition (bool~) atan2_16::$5 [47] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
Simple Condition (bool~) atan2_16::$17 [60] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@16
Simple Condition (bool~) atan2_16::$11 [69] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
Simple Condition (bool~) atan2_16::$18 [72] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@19
Simple Condition (bool~) atan2_16::$19 [80] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@25
Simple Condition (bool~) atan2_16::$20 [83] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@26
Simple Condition (bool~) atan2_16::$21 [100] if((byte) atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@15
Simple Condition (bool~) atan2_16::$14 [104] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
Simple Condition (bool~) main::$11 [165] if((signed byte) main::x#1!=rangelast(-$13,$14)) goto main::@2
Simple Condition (bool~) main::$12 [169] if((signed byte) main::y#1!=rangelast(-$c,$c)) goto main::@1
Simple Condition (bool~) init_font_hex::$4 [28] if((byte) init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2
Simple Condition (bool~) init_font_hex::$5 [32] if((byte) init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1
Simple Condition (bool~) atan2_16::$0 [36] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
Simple Condition (bool~) atan2_16::$5 [40] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
Simple Condition (bool~) atan2_16::$17 [47] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@16
Simple Condition (bool~) atan2_16::$11 [51] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
Simple Condition (bool~) atan2_16::$18 [54] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@19
Simple Condition (bool~) atan2_16::$19 [59] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@25
Simple Condition (bool~) atan2_16::$20 [62] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@26
Simple Condition (bool~) atan2_16::$21 [76] if((byte) atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@15
Simple Condition (bool~) atan2_16::$14 [79] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
Simple Condition (bool~) main::$11 [120] if((signed byte) main::x#1!=rangelast(-$13,$14)) goto main::@2
Simple Condition (bool~) main::$12 [123] if((signed byte) main::y#1!=rangelast(-$c,$c)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [100] if((byte) atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17
Negating conditional jump and destination [76] if((byte) atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant (const byte*) init_font_hex::proto_hi#0 = FONT_HEX_PROTO
Constant (const byte) init_font_hex::c#0 = 0
@ -1020,20 +1020,20 @@ Successful SSA optimization Pass2ConstantIdentification
Constant (const word) main::toD0181_$0 = (word)main::toD0181_screen#0
Constant (const word) main::toD0181_$4 = (word)main::toD0181_gfx#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [170] if(true) goto main::@6
if() condition always true - replacing block destination [124] if(true) goto main::@6
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [17] init_font_hex::i#1 ← ++ init_font_hex::i#2 to ++
Resolved ranged comparison value [19] if(init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3 to (number) 5
Resolved ranged next value [27] init_font_hex::c1#1 ← ++ init_font_hex::c1#4 to ++
Resolved ranged comparison value [29] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 to (number) $10
Resolved ranged next value [32] init_font_hex::c#1 ← ++ init_font_hex::c#6 to ++
Resolved ranged comparison value [34] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to (number) $10
Resolved ranged next value [98] atan2_16::i#1 ← ++ atan2_16::i#2 to ++
Resolved ranged comparison value [100] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17 to (const byte) CORDIC_ITERATIONS_16-(byte) 1+(number) 1
Resolved ranged next value [163] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [165] if(main::x#1!=rangelast(-$13,$14)) goto main::@2 to (number) $15
Resolved ranged next value [167] main::y#1 ← ++ main::y#4 to ++
Resolved ranged comparison value [169] if(main::y#1!=rangelast(-$c,$c)) goto main::@1 to (number) $d
Resolved ranged next value [26] init_font_hex::c1#1 ← ++ init_font_hex::c1#4 to ++
Resolved ranged comparison value [28] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 to (number) $10
Resolved ranged next value [30] init_font_hex::c#1 ← ++ init_font_hex::c#6 to ++
Resolved ranged comparison value [32] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to (number) $10
Resolved ranged next value [74] atan2_16::i#1 ← ++ atan2_16::i#2 to ++
Resolved ranged comparison value [76] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17 to (const byte) CORDIC_ITERATIONS_16-(byte) 1+(number) 1
Resolved ranged next value [118] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [120] if(main::x#1!=rangelast(-$13,$14)) goto main::@2 to (number) $15
Resolved ranged next value [121] main::y#1 ← ++ main::y#4 to ++
Resolved ranged comparison value [123] if(main::y#1!=rangelast(-$c,$c)) goto main::@1 to (number) $d
Simplifying expression containing zero init_font_hex::charset#2 in [8] *((byte*) init_font_hex::charset#2 + (const byte) init_font_hex::idx#0) ← (byte) 0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte) init_font_hex::idx#4 and assignment [15] (byte) init_font_hex::idx#4 ← ++ (byte) init_font_hex::idx#3

View File

@ -1132,23 +1132,23 @@ Identical Phi Values (signed word) atan2_16::x#4 (signed word) atan2_16::x#17
Identical Phi Values (signed word) atan2_16::y#4 (signed word) atan2_16::y#19
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) init_font_hex::$3 [19] if((byte) init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3
Simple Condition (bool~) init_font_hex::$4 [29] if((byte) init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2
Simple Condition (bool~) init_font_hex::$5 [34] if((byte) init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1
Simple Condition (bool~) atan2_16::$0 [38] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
Simple Condition (bool~) atan2_16::$5 [47] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
Simple Condition (bool~) atan2_16::$17 [60] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@16
Simple Condition (bool~) atan2_16::$11 [69] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
Simple Condition (bool~) atan2_16::$18 [72] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@19
Simple Condition (bool~) atan2_16::$19 [80] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@25
Simple Condition (bool~) atan2_16::$20 [83] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@26
Simple Condition (bool~) atan2_16::$21 [100] if((byte) atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@15
Simple Condition (bool~) atan2_16::$14 [104] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
Simple Condition (bool~) main::$3 [143] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@4
Simple Condition (bool~) main::$5 [147] if((byte*) main::clear_char#5>=(const byte*) CHARSET+(word) $800) goto main::@1
Simple Condition (bool~) init_angle_screen::$2 [163] if((byte) init_angle_screen::x#2<=(byte) $13) goto init_angle_screen::@3
Simple Condition (bool~) init_angle_screen::$16 [200] if((byte) init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
Simple Condition (bool~) init_font_hex::$4 [28] if((byte) init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2
Simple Condition (bool~) init_font_hex::$5 [32] if((byte) init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1
Simple Condition (bool~) atan2_16::$0 [36] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@1
Simple Condition (bool~) atan2_16::$5 [40] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@4
Simple Condition (bool~) atan2_16::$17 [47] if((signed word) atan2_16::yi#3!=(signed byte) 0) goto atan2_16::@16
Simple Condition (bool~) atan2_16::$11 [51] if((signed word) atan2_16::x#0>=(signed byte) 0) goto atan2_16::@7
Simple Condition (bool~) atan2_16::$18 [54] if((byte) atan2_16::shift#2>=(byte) 2) goto atan2_16::@19
Simple Condition (bool~) atan2_16::$19 [59] if((byte) 0==(byte) atan2_16::shift#2) goto atan2_16::@25
Simple Condition (bool~) atan2_16::$20 [62] if((signed word) atan2_16::yi#3>=(signed byte) 0) goto atan2_16::@26
Simple Condition (bool~) atan2_16::$21 [76] if((byte) atan2_16::i#1!=rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@15
Simple Condition (bool~) atan2_16::$14 [79] if((signed word) atan2_16::y#0>=(signed byte) 0) goto atan2_16::@8
Simple Condition (bool~) main::$3 [105] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@4
Simple Condition (bool~) main::$5 [107] if((byte*) main::clear_char#5>=(const byte*) CHARSET+(word) $800) goto main::@1
Simple Condition (bool~) init_angle_screen::$2 [120] if((byte) init_angle_screen::x#2<=(byte) $13) goto init_angle_screen::@3
Simple Condition (bool~) init_angle_screen::$16 [148] if((byte) init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [100] if((byte) atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17
Negating conditional jump and destination [76] if((byte) atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant (const byte*) init_font_hex::proto_hi#0 = FONT_HEX_PROTO
Constant (const byte) init_font_hex::c#0 = 0
@ -1170,19 +1170,19 @@ Successful SSA optimization Pass2ConstantIdentification
Constant (const word) main::toD0181_$0 = (word)main::toD0181_screen#0
Constant (const word) main::toD0181_$4 = (word)main::toD0181_gfx#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [140] if(true) goto main::@4
if() condition always true - replacing block destination [102] if(true) goto main::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [17] init_font_hex::i#1 ← ++ init_font_hex::i#2 to ++
Resolved ranged comparison value [19] if(init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3 to (number) 5
Resolved ranged next value [27] init_font_hex::c1#1 ← ++ init_font_hex::c1#4 to ++
Resolved ranged comparison value [29] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 to (number) $10
Resolved ranged next value [32] init_font_hex::c#1 ← ++ init_font_hex::c#6 to ++
Resolved ranged comparison value [34] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to (number) $10
Resolved ranged next value [98] atan2_16::i#1 ← ++ atan2_16::i#2 to ++
Resolved ranged comparison value [100] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17 to (const byte) CORDIC_ITERATIONS_16-(byte) 1+(number) 1
Resolved ranged next value [198] init_angle_screen::y#1 ← ++ init_angle_screen::y#5 to ++
Resolved ranged comparison value [200] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1 to (number) $d
Rewriting conditional comparison [163] if((byte) init_angle_screen::x#2<=(byte) $13) goto init_angle_screen::@3
Resolved ranged next value [26] init_font_hex::c1#1 ← ++ init_font_hex::c1#4 to ++
Resolved ranged comparison value [28] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 to (number) $10
Resolved ranged next value [30] init_font_hex::c#1 ← ++ init_font_hex::c#6 to ++
Resolved ranged comparison value [32] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to (number) $10
Resolved ranged next value [74] atan2_16::i#1 ← ++ atan2_16::i#2 to ++
Resolved ranged comparison value [76] if(atan2_16::i#1==rangelast(0,CORDIC_ITERATIONS_16-1)) goto atan2_16::@17 to (const byte) CORDIC_ITERATIONS_16-(byte) 1+(number) 1
Resolved ranged next value [146] init_angle_screen::y#1 ← ++ init_angle_screen::y#5 to ++
Resolved ranged comparison value [148] if(init_angle_screen::y#1!=rangelast(0,$c)) goto init_angle_screen::@1 to (number) $d
Rewriting conditional comparison [120] if((byte) init_angle_screen::x#2<=(byte) $13) goto init_angle_screen::@3
Simplifying expression containing zero init_font_hex::charset#2 in [8] *((byte*) init_font_hex::charset#2 + (const byte) init_font_hex::idx#0) ← (byte) 0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte) init_font_hex::idx#4 and assignment [15] (byte) init_font_hex::idx#4 ← ++ (byte) init_font_hex::idx#3

View File

@ -770,19 +770,19 @@ Identical Phi Values (byte*) init_font_hex::proto_hi#4 (byte*) init_font_hex::pr
Identical Phi Values (byte) init_font_hex::c#5 (byte) init_font_hex::c#6
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) init_font_hex::$3 [19] if((byte) init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3
Simple Condition (bool~) init_font_hex::$4 [29] if((byte) init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2
Simple Condition (bool~) init_font_hex::$5 [34] if((byte) init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1
Simple Condition (bool~) atan2_8::$0 [38] if((signed byte) atan2_8::y#0>(signed byte) 0) goto atan2_8::@1
Simple Condition (bool~) atan2_8::$5 [47] if((signed byte) atan2_8::x#0>(signed byte) 0) goto atan2_8::@4
Simple Condition (bool~) atan2_8::$18 [60] if((signed byte) atan2_8::yi#3!=(signed byte) 0) goto atan2_8::@16
Simple Condition (bool~) atan2_8::$21 [67] if((signed byte) atan2_8::yi#3>(signed byte) 0) goto atan2_8::@18
Simple Condition (bool~) atan2_8::$12 [73] if((signed byte) atan2_8::x#0>=(signed byte) 0) goto atan2_8::@7
Simple Condition (bool~) atan2_8::$22 [85] if((byte) atan2_8::i#1!=rangelast(0,CORDIC_ITERATIONS_8-1)) goto atan2_8::@15
Simple Condition (bool~) atan2_8::$15 [89] if((signed byte) atan2_8::y#0>=(signed byte) 0) goto atan2_8::@8
Simple Condition (bool~) main::$3 [137] if((signed byte) main::x#1!=rangelast(-$13,$14)) goto main::@2
Simple Condition (bool~) main::$4 [141] if((signed byte) main::y#1!=rangelast(-$c,$c)) goto main::@1
Simple Condition (bool~) init_font_hex::$4 [28] if((byte) init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2
Simple Condition (bool~) init_font_hex::$5 [32] if((byte) init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1
Simple Condition (bool~) atan2_8::$0 [36] if((signed byte) atan2_8::y#0>(signed byte) 0) goto atan2_8::@1
Simple Condition (bool~) atan2_8::$5 [40] if((signed byte) atan2_8::x#0>(signed byte) 0) goto atan2_8::@4
Simple Condition (bool~) atan2_8::$18 [47] if((signed byte) atan2_8::yi#3!=(signed byte) 0) goto atan2_8::@16
Simple Condition (bool~) atan2_8::$21 [51] if((signed byte) atan2_8::yi#3>(signed byte) 0) goto atan2_8::@18
Simple Condition (bool~) atan2_8::$12 [55] if((signed byte) atan2_8::x#0>=(signed byte) 0) goto atan2_8::@7
Simple Condition (bool~) atan2_8::$22 [65] if((byte) atan2_8::i#1!=rangelast(0,CORDIC_ITERATIONS_8-1)) goto atan2_8::@15
Simple Condition (bool~) atan2_8::$15 [68] if((signed byte) atan2_8::y#0>=(signed byte) 0) goto atan2_8::@8
Simple Condition (bool~) main::$3 [101] if((signed byte) main::x#1!=rangelast(-$13,$14)) goto main::@2
Simple Condition (bool~) main::$4 [104] if((signed byte) main::y#1!=rangelast(-$c,$c)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [85] if((byte) atan2_8::i#1==rangelast(0,CORDIC_ITERATIONS_8-1)) goto atan2_8::@17
Negating conditional jump and destination [65] if((byte) atan2_8::i#1==rangelast(0,CORDIC_ITERATIONS_8-1)) goto atan2_8::@17
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant (const byte*) init_font_hex::proto_hi#0 = FONT_HEX_PROTO
Constant (const byte) init_font_hex::c#0 = 0
@ -802,20 +802,20 @@ Successful SSA optimization Pass2ConstantIdentification
Constant (const word) main::toD0181_$0 = (word)main::toD0181_screen#0
Constant (const word) main::toD0181_$4 = (word)main::toD0181_gfx#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [142] if(true) goto main::@6
if() condition always true - replacing block destination [105] if(true) goto main::@6
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [17] init_font_hex::i#1 ← ++ init_font_hex::i#2 to ++
Resolved ranged comparison value [19] if(init_font_hex::i#1!=rangelast(0,4)) goto init_font_hex::@3 to (number) 5
Resolved ranged next value [27] init_font_hex::c1#1 ← ++ init_font_hex::c1#4 to ++
Resolved ranged comparison value [29] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 to (number) $10
Resolved ranged next value [32] init_font_hex::c#1 ← ++ init_font_hex::c#6 to ++
Resolved ranged comparison value [34] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to (number) $10
Resolved ranged next value [83] atan2_8::i#1 ← ++ atan2_8::i#2 to ++
Resolved ranged comparison value [85] if(atan2_8::i#1==rangelast(0,CORDIC_ITERATIONS_8-1)) goto atan2_8::@17 to (const byte) CORDIC_ITERATIONS_8-(byte) 1+(number) 1
Resolved ranged next value [135] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [137] if(main::x#1!=rangelast(-$13,$14)) goto main::@2 to (number) $15
Resolved ranged next value [139] main::y#1 ← ++ main::y#4 to ++
Resolved ranged comparison value [141] if(main::y#1!=rangelast(-$c,$c)) goto main::@1 to (number) $d
Resolved ranged next value [26] init_font_hex::c1#1 ← ++ init_font_hex::c1#4 to ++
Resolved ranged comparison value [28] if(init_font_hex::c1#1!=rangelast(0,$f)) goto init_font_hex::@2 to (number) $10
Resolved ranged next value [30] init_font_hex::c#1 ← ++ init_font_hex::c#6 to ++
Resolved ranged comparison value [32] if(init_font_hex::c#1!=rangelast(0,$f)) goto init_font_hex::@1 to (number) $10
Resolved ranged next value [63] atan2_8::i#1 ← ++ atan2_8::i#2 to ++
Resolved ranged comparison value [65] if(atan2_8::i#1==rangelast(0,CORDIC_ITERATIONS_8-1)) goto atan2_8::@17 to (const byte) CORDIC_ITERATIONS_8-(byte) 1+(number) 1
Resolved ranged next value [99] main::x#1 ← ++ main::x#2 to ++
Resolved ranged comparison value [101] if(main::x#1!=rangelast(-$13,$14)) goto main::@2 to (number) $15
Resolved ranged next value [102] main::y#1 ← ++ main::y#4 to ++
Resolved ranged comparison value [104] if(main::y#1!=rangelast(-$c,$c)) goto main::@1 to (number) $d
Simplifying expression containing zero init_font_hex::charset#2 in [8] *((byte*) init_font_hex::charset#2 + (const byte) init_font_hex::idx#0) ← (byte) 0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte) init_font_hex::idx#4 and assignment [15] (byte) init_font_hex::idx#4 ← ++ (byte) init_font_hex::idx#3

View File

@ -90,7 +90,7 @@ Successful SSA optimization Pass2UnaryNotSimplification
Alias (byte) main::c#3 = (byte) main::c#4 (byte) main::c#6
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$0 [3] if((byte) main::c#3<(byte) $64) goto main::@2
Simple Condition (bool~) main::$3 [9] if((byte~) main::$1!=(byte) 0) goto main::@4
Simple Condition (bool~) main::$3 [7] if((byte~) main::$1!=(byte) 0) goto main::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::c#0 = 0
Successful SSA optimization Pass2ConstantIdentification

View File

@ -193,9 +193,9 @@ Identical Phi Values (byte) idx_ssa_g#12 (byte) idx_ssa_g#14
Identical Phi Values (byte) idx_ssa_g#10 (byte) idx_ssa_g#12
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) main::$0 [13] if((byte) main::i#1!=rangelast('M','L')) goto main::@1
Simple Condition (bool~) main::$1 [25] if((byte) main::i1#1!=rangelast('M','L')) goto main::@3
Simple Condition (bool~) main::$2 [37] if((byte) main::i2#1!=rangelast('M','L')) goto main::@5
Simple Condition (bool~) main::$3 [49] if((byte) main::i3#1!=rangelast('M','L')) goto main::@7
Simple Condition (bool~) main::$1 [24] if((byte) main::i1#1!=rangelast('M','L')) goto main::@3
Simple Condition (bool~) main::$2 [35] if((byte) main::i2#1!=rangelast('M','L')) goto main::@5
Simple Condition (bool~) main::$3 [46] if((byte) main::i3#1!=rangelast('M','L')) goto main::@7
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) idx_ssa_g#0 = 0
Constant (const byte) main::idx_ssa_l#0 = 0
@ -206,14 +206,14 @@ Constant (const byte) main::i3#0 = 'M'
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [11] main::i#1 ← -- main::i#2 to --
Resolved ranged comparison value [13] if(main::i#1!=rangelast('M','L')) goto main::@1 to (byte) 'L'-(number) 1
Resolved ranged next value [23] main::i1#1 ← -- main::i1#2 to --
Resolved ranged comparison value [25] if(main::i1#1!=rangelast('M','L')) goto main::@3 to (byte) 'L'-(number) 1
Resolved ranged next value [35] main::i2#1 ← -- main::i2#2 to --
Resolved ranged comparison value [37] if(main::i2#1!=rangelast('M','L')) goto main::@5 to (byte) 'L'-(number) 1
Resolved ranged next value [47] main::i3#1 ← -- main::i3#2 to --
Resolved ranged comparison value [49] if(main::i3#1!=rangelast('M','L')) goto main::@7 to (byte) 'L'-(number) 1
Resolved ranged next value [22] main::i1#1 ← -- main::i1#2 to --
Resolved ranged comparison value [24] if(main::i1#1!=rangelast('M','L')) goto main::@3 to (byte) 'L'-(number) 1
Resolved ranged next value [33] main::i2#1 ← -- main::i2#2 to --
Resolved ranged comparison value [35] if(main::i2#1!=rangelast('M','L')) goto main::@5 to (byte) 'L'-(number) 1
Resolved ranged next value [44] main::i3#1 ← -- main::i3#2 to --
Resolved ranged comparison value [46] if(main::i3#1!=rangelast('M','L')) goto main::@7 to (byte) 'L'-(number) 1
Simplifying expression containing zero SCREEN1 in [5] *((const byte*) SCREEN1 + (const byte) idx_ssa_g#0) ← (byte) 'C'
Simplifying expression containing zero SCREEN3 in [29] *((const byte*) SCREEN3 + (const byte) main::idx_ssa_l#0) ← (byte) 'C'
Simplifying expression containing zero SCREEN3 in [27] *((const byte*) SCREEN3 + (const byte) main::idx_ssa_l#0) ← (byte) 'C'
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte) idx_ssa_g#3 and assignment [10] (byte) idx_ssa_g#3 ← ++ (byte) idx_ssa_g#2
Eliminating unused variable (byte) main::idx_ssa_l#3 and assignment [28] (byte) main::idx_ssa_l#3 ← ++ (byte) main::idx_ssa_l#2

View File

@ -4538,8 +4538,8 @@ Constant (const byte) f100::return#0 = f100::x#0
Successful SSA optimization Pass2ConstantIdentification
Constant (const byte) f99::$0 = f100::return#0
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::screen in [5] *((const byte*) main::screen + (byte) 0) ← (byte~) main::$0
Simplifying expression containing zero 1 in [1091] (byte) f99::return#1 ← (const byte) f99::$0 + (byte) 1
Simplifying expression containing zero main::screen in [4] *((const byte*) main::screen + (byte) 0) ← (byte~) main::$0
Simplifying expression containing zero 1 in [697] (byte) f99::return#1 ← (const byte) f99::$0 + (byte) 1
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused constant (const byte) f99::$0
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -242,13 +242,13 @@ Identical Phi Values (byte) main::x#2 (byte) main::x#4
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (void*) memset::return#0 (void*) memset::str#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) main::$3 [38] if((byte) main::y#1!=rangelast(0,$f)) goto main::@2
Simple Condition (bool~) main::$4 [43] if((byte) main::x#1!=rangelast(0,$f)) goto main::@1
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) main::$3 [30] if((byte) main::y#1!=rangelast(0,$f)) goto main::@2
Simple Condition (bool~) main::$4 [34] if((byte) main::x#1!=rangelast(0,$f)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [20] (void*) memset::str#0 ← (void*)(const byte*) SCREEN
Constant right-side identified [25] (byte*~) main::$1 ← (const byte*) SCREEN + (byte) $28
Constant right-side identified [13] (void*) memset::str#0 ← (void*)(const byte*) SCREEN
Constant right-side identified [18] (byte*~) main::$1 ← (const byte*) SCREEN + (byte) $28
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const void*) memset::str#0 = (void*)SCREEN
Constant (const byte) memset::c#0 = ' '
@ -262,12 +262,12 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [36] main::y#1 ← ++ main::y#2 to ++
Resolved ranged comparison value [38] if(main::y#1!=rangelast(0,$f)) goto main::@2 to (number) $10
Resolved ranged next value [41] main::x#1 ← ++ main::x#4 to ++
Resolved ranged comparison value [43] if(main::x#1!=rangelast(0,$f)) goto main::@1 to (number) $10
Resolved ranged next value [28] main::y#1 ← ++ main::y#2 to ++
Resolved ranged comparison value [30] if(main::y#1!=rangelast(0,$f)) goto main::@2 to (number) $10
Resolved ranged next value [32] main::x#1 ← ++ main::x#4 to ++
Resolved ranged comparison value [34] if(main::x#1!=rangelast(0,$f)) goto main::@1 to (number) $10
Eliminating unused constant (const void*) memset::return#2
Successful SSA optimization PassNEliminateUnusedVars
Adding number conversion cast (unumber) $10 in if((byte) main::y#1!=(number) $10) goto main::@2

View File

@ -118,7 +118,7 @@ Constant (const byte*) print::m#0 = msg1
Constant (const byte*) print::m#1 = msg2
Constant (const byte) screen_idx#14 = 0
Successful SSA optimization Pass2ConstantIdentification
Converting *(pointer+n) to pointer[n] [17] *((const word*) SCREEN + (byte~) print::$2) ← *((word*~) print::$1) -- *((word*)print::m#2 + 2)
Converting *(pointer+n) to pointer[n] [13] *((const word*) SCREEN + (byte~) print::$2) ← *((word*~) print::$1) -- *((word*)print::m#2 + 2)
Successful SSA optimization Pass2InlineDerefIdx
Eliminating unused variable (word*~) print::$1 and assignment [5] (word*~) print::$1 ← (word*)(byte*~) print::$0
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -110,7 +110,7 @@ Constant (const byte*) print::m#0 = msg1
Constant (const byte*) print::m#1 = msg2
Constant (const byte) idx#14 = 0
Successful SSA optimization Pass2ConstantIdentification
Converting *(pointer+n) to pointer[n] [15] *((const byte*) SCREEN + (byte) idx#10) ← *((byte*~) print::$0) -- *(print::m#2 + 2)
Converting *(pointer+n) to pointer[n] [11] *((const byte*) SCREEN + (byte) idx#10) ← *((byte*~) print::$0) -- *(print::m#2 + 2)
Successful SSA optimization Pass2InlineDerefIdx
Eliminating unused variable (byte*~) print::$0 and assignment [4] (byte*~) print::$0 ← (byte*) print::m#2 + (byte) 2
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -64,7 +64,7 @@ Simple Condition (bool~) main::$0 [3] if((word) main::i#2<(word) $3e8) goto main
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const word) main::i#0 = 0
Successful SSA optimization Pass2ConstantIdentification
De-inlining pointer[w] to *(pointer+w) [5] *((const byte*) main::screen + (word) main::i#2) ← (byte) 'a'
De-inlining pointer[w] to *(pointer+w) [4] *((const byte*) main::screen + (word) main::i#2) ← (byte) 'a'
Successful SSA optimization Pass2DeInlineWordDerefIdx
Inlining constant with var siblings (const word) main::i#0
Constant inlined main::i#0 = (word) 0

View File

@ -69,7 +69,7 @@ Consolidated constant in assignment main::$2
Successful SSA optimization Pass2ConstantAdditionElimination
Alias (byte) main::i#2 = (word~) main::$0
Successful SSA optimization Pass2AliasElimination
Converting *(pointer+n) to pointer[n] [3] *((byte*~) main::$2) ← (byte) 'a' -- *(main::screen+(word)$28*$a + main::i#2)
Converting *(pointer+n) to pointer[n] [2] *((byte*~) main::$2) ← (byte) 'a' -- *(main::screen+(word)$28*$a + main::i#2)
Successful SSA optimization Pass2InlineDerefIdx
Eliminating unused variable (byte*~) main::$2 and assignment [1] (byte*~) main::$2 ← (const byte*) main::screen+(word)(number) $28*(number) $a + (byte) main::i#2
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -102,12 +102,12 @@ Inferred type updated to byte in (unumber~) main::$3 ← (byte) main::i#2 / (byt
Inferred type updated to signed byte in (snumber~) main::$6 ← (signed byte) main::sb#0 / (signed byte) 2
Alias (signed byte) main::sb#0 = (signed byte~) main::$5
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$8 [18] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1
Simple Condition (bool~) main::$8 [17] if((byte) main::i#1!=rangelast(0,$a)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::i#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [16] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [18] if(main::i#1!=rangelast(0,$a)) goto main::@1 to (number) $b
Resolved ranged next value [15] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [17] if(main::i#1!=rangelast(0,$a)) goto main::@1 to (number) $b
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [3] *((const byte*) main::SCREEN+(byte)(number) $28*(number) 0 + (byte) main::i#2) ← (byte~) main::$0
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero main::SCREEN in [3] *((const byte*) main::SCREEN+(byte) 0 + (byte) main::i#2) ← (byte~) main::$0

View File

@ -59,7 +59,7 @@ Constant (const byte) main::a#0 = 0
Constant (const byte) main::b#0 = 0
Constant (const byte) main::a#1 = $c
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero main::screen in [4] *((const byte*) main::screen + (byte) 0) ← (const byte) main::a#1
Simplifying expression containing zero main::screen in [3] *((const byte*) main::screen + (byte) 0) ← (const byte) main::a#1
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused constant (const byte) main::a#0
Eliminating unused constant (const byte) main::b#0

View File

@ -219,18 +219,18 @@ Consolidated constant in assignment main::$28
Successful SSA optimization Pass2ConstantAdditionElimination
Alias (byte) main::x#2 = (byte~) main::$0 (byte~) main::$1 (byte~) main::$2 (byte~) main::$3 (word~) main::$4 (word~) main::$5 (word~) main::$6 (word~) main::$7 (word~) main::$8 (word~) main::$9 (word~) main::$10 (word~) main::$11 (word~) main::$12 (word~) main::$13 (word~) main::$14 (word~) main::$15
Successful SSA optimization Pass2AliasElimination
Converting *(pointer+n) to pointer[n] [13] *((byte*~) main::$18) ← *((byte*~) main::$17) -- *(MAPDATA+$190 + main::x#2)
Converting *(pointer+n) to pointer[n] [13] *((byte*~) main::$18) ← *((const byte*) MAPDATA+(word) $190 + (byte) main::x#2) -- *(SCREEN+$190 + main::x#2)
Converting *(pointer+n) to pointer[n] [18] *((byte*~) main::$20) ← *((const byte*) COLORMAP1 + *((byte*~) main::$19)) -- *(MAPDATA+$190 + main::x#2)
Converting *(pointer+n) to pointer[n] [18] *((byte*~) main::$20) ← *((const byte*) COLORMAP1 + *((const byte*) MAPDATA+(word) $190 + (byte) main::x#2)) -- *(COLS+$190 + main::x#2)
Converting *(pointer+n) to pointer[n] [23] *((byte*~) main::$22) ← *((byte*~) main::$21) -- *(MAPDATA+$258 + main::x#2)
Converting *(pointer+n) to pointer[n] [23] *((byte*~) main::$22) ← *((const byte*) MAPDATA+(word) $258 + (byte) main::x#2) -- *(SCREEN+$258 + main::x#2)
Converting *(pointer+n) to pointer[n] [28] *((byte*~) main::$24) ← *((const byte*) COLORMAP2 + *((byte*~) main::$23)) -- *(MAPDATA+$258 + main::x#2)
Converting *(pointer+n) to pointer[n] [28] *((byte*~) main::$24) ← *((const byte*) COLORMAP2 + *((const byte*) MAPDATA+(word) $258 + (byte) main::x#2)) -- *(COLS+$258 + main::x#2)
Converting *(pointer+n) to pointer[n] [33] *((byte*~) main::$26) ← *((byte*~) main::$25) -- *(MAPDATA+$320 + main::x#2)
Converting *(pointer+n) to pointer[n] [33] *((byte*~) main::$26) ← *((const byte*) MAPDATA+(word) $320 + (byte) main::x#2) -- *(SCREEN+$320 + main::x#2)
Converting *(pointer+n) to pointer[n] [38] *((byte*~) main::$28) ← *((const byte*) COLORMAP2 + *((byte*~) main::$27)) -- *(MAPDATA+$320 + main::x#2)
Converting *(pointer+n) to pointer[n] [38] *((byte*~) main::$28) ← *((const byte*) COLORMAP2 + *((const byte*) MAPDATA+(word) $320 + (byte) main::x#2)) -- *(COLS+$320 + main::x#2)
Converting *(pointer+n) to pointer[n] [7] *((byte*~) main::$18) ← *((byte*~) main::$17) -- *(MAPDATA+$190 + main::x#2)
Converting *(pointer+n) to pointer[n] [7] *((byte*~) main::$18) ← *((const byte*) MAPDATA+(word) $190 + (byte) main::x#2) -- *(SCREEN+$190 + main::x#2)
Converting *(pointer+n) to pointer[n] [10] *((byte*~) main::$20) ← *((const byte*) COLORMAP1 + *((byte*~) main::$19)) -- *(MAPDATA+$190 + main::x#2)
Converting *(pointer+n) to pointer[n] [10] *((byte*~) main::$20) ← *((const byte*) COLORMAP1 + *((const byte*) MAPDATA+(word) $190 + (byte) main::x#2)) -- *(COLS+$190 + main::x#2)
Converting *(pointer+n) to pointer[n] [13] *((byte*~) main::$22) ← *((byte*~) main::$21) -- *(MAPDATA+$258 + main::x#2)
Converting *(pointer+n) to pointer[n] [13] *((byte*~) main::$22) ← *((const byte*) MAPDATA+(word) $258 + (byte) main::x#2) -- *(SCREEN+$258 + main::x#2)
Converting *(pointer+n) to pointer[n] [16] *((byte*~) main::$24) ← *((const byte*) COLORMAP2 + *((byte*~) main::$23)) -- *(MAPDATA+$258 + main::x#2)
Converting *(pointer+n) to pointer[n] [16] *((byte*~) main::$24) ← *((const byte*) COLORMAP2 + *((const byte*) MAPDATA+(word) $258 + (byte) main::x#2)) -- *(COLS+$258 + main::x#2)
Converting *(pointer+n) to pointer[n] [19] *((byte*~) main::$26) ← *((byte*~) main::$25) -- *(MAPDATA+$320 + main::x#2)
Converting *(pointer+n) to pointer[n] [19] *((byte*~) main::$26) ← *((const byte*) MAPDATA+(word) $320 + (byte) main::x#2) -- *(SCREEN+$320 + main::x#2)
Converting *(pointer+n) to pointer[n] [22] *((byte*~) main::$28) ← *((const byte*) COLORMAP2 + *((byte*~) main::$27)) -- *(MAPDATA+$320 + main::x#2)
Converting *(pointer+n) to pointer[n] [22] *((byte*~) main::$28) ← *((const byte*) COLORMAP2 + *((const byte*) MAPDATA+(word) $320 + (byte) main::x#2)) -- *(COLS+$320 + main::x#2)
Successful SSA optimization Pass2InlineDerefIdx
Eliminating unused variable (byte*~) main::$17 and assignment [5] (byte*~) main::$17 ← (const byte*) MAPDATA+(word) $190 + (byte) main::x#2
Eliminating unused variable (byte*~) main::$18 and assignment [6] (byte*~) main::$18 ← (const byte*) SCREEN+(word) $190 + (byte) main::x#2

View File

@ -85,7 +85,7 @@ Rewriting && if()-condition to two if()s [5] (bool~) main::$3 ← (bool~) main::
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant (const byte) key#0 = 0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [8] if(true) goto main::@2
if() condition always true - replacing block destination [7] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Eliminating unused constant (const byte) key#0
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -59,12 +59,12 @@ Successful SSA optimization PassNCastSimplification
Alias (dword) main::b#0 = (dword~) main::$0
Alias (byte) main::c#0 = (byte~) main::$1
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$2 [9] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1
Simple Condition (bool~) main::$2 [7] if((byte) main::i#1!=rangelast(0,$64)) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::i#0 = 0
Successful SSA optimization Pass2ConstantIdentification
Resolved ranged next value [7] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [9] if(main::i#1!=rangelast(0,$64)) goto main::@1 to (number) $65
Resolved ranged next value [5] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [7] if(main::i#1!=rangelast(0,$64)) goto main::@1 to (number) $65
Adding number conversion cast (unumber) $65 in if((byte) main::i#1!=(number) $65) goto main::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast $65

View File

@ -106,7 +106,7 @@ Finalized unsigned number type (byte) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inversing boolean not [8] (bool~) mode::$1 ← *((const byte*) B) != (byte) 0 from [7] (bool~) mode::$0 ← *((const byte*) B) == (byte) 0
Successful SSA optimization Pass2UnaryNotSimplification
Simple Condition (bool~) mode::$1 [9] if(*((const byte*) B)!=(byte) 0) goto mode::@1
Simple Condition (bool~) mode::$1 [8] if(*((const byte*) B)!=(byte) 0) goto mode::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
if() condition always true - replacing block destination [0] if(true) goto main::@2
if() condition always true - replacing block destination [3] if(true) goto menu::@2

View File

@ -834,11 +834,11 @@ Identical Phi Values (byte*) print_char_cursor#25 (byte*) print_char_cursor#16
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (void*) memset::return#0 (void*) memset::str#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_ln::$1 [28] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#32) goto print_ln::@1
Simple Condition (bool~) euclid::$0 [151] if((byte) euclid::a#2!=(byte) euclid::b#2) goto euclid::@2
Simple Condition (bool~) euclid::$1 [154] if((byte) euclid::a#2>(byte) euclid::b#2) goto euclid::@4
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_ln::$1 [18] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#32) goto print_ln::@1
Simple Condition (bool~) euclid::$0 [95] if((byte) euclid::a#2!=(byte) euclid::b#2) goto euclid::@2
Simple Condition (bool~) euclid::$1 [97] if((byte) euclid::a#2>(byte) euclid::b#2) goto euclid::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) print_line_cursor#0 = (byte*) 1024
Constant (const byte) memset::c#0 = ' '
@ -864,7 +864,7 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Eliminating unused constant (const void*) memset::return#2
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -248,8 +248,8 @@ Successful SSA optimization Pass2AliasElimination
Identical Phi Values (byte) idx#13 (byte) idx#0
Identical Phi Values (byte) idx#12 (byte) idx#11
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) euclid::$0 [40] if((byte) euclid::a#5!=(byte) euclid::b#5) goto euclid::@2
Simple Condition (bool~) euclid::$1 [43] if((byte) euclid::a#5>(byte) euclid::b#5) goto euclid::@4
Simple Condition (bool~) euclid::$0 [34] if((byte) euclid::a#5!=(byte) euclid::b#5) goto euclid::@2
Simple Condition (bool~) euclid::$1 [36] if((byte) euclid::a#5>(byte) euclid::b#5) goto euclid::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) idx#0 = 0
Constant (const byte) euclid::a#0 = $80
@ -261,7 +261,7 @@ Constant (const byte) euclid::b#2 = $9b
Constant (const byte) euclid::a#3 = $63
Constant (const byte) euclid::b#3 = 3
Successful SSA optimization Pass2ConstantIdentification
Simplifying expression containing zero SCREEN in [8] *((const byte*) SCREEN + (const byte) idx#0) ← (byte~) main::$0
Simplifying expression containing zero SCREEN in [7] *((const byte*) SCREEN + (const byte) idx#0) ← (byte~) main::$0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte) idx#11 and assignment [19] (byte) idx#11 ← ++ (byte) idx#10
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -93,7 +93,7 @@ Alias (byte) main::a#1 = (byte~) main::$3
Alias (byte) main::b#1 = (byte~) main::$2
Successful SSA optimization Pass2AliasElimination
Simple Condition (bool~) main::$0 [4] if((byte) main::a#2!=(byte) main::b#2) goto main::@2
Simple Condition (bool~) main::$1 [7] if((byte) main::a#2>(byte) main::b#2) goto main::@4
Simple Condition (bool~) main::$1 [6] if((byte) main::a#2>(byte) main::b#2) goto main::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::a#0 = $80
Constant (const byte) main::b#0 = 2

View File

@ -2639,38 +2639,38 @@ Identical Phi Values (byte*) print_screen#51 (byte*) print_screen#0
Identical Phi Values (byte*) debug_print_init::at_line#1 (byte*) debug_print_init::at_line#0
Identical Phi Values (byte*) debug_print_init::at_cols#2 (byte*) debug_print_init::at_cols#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str_at::$0 [24] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2
Simple Condition (bool~) print_sbyte_at::$0 [32] if((signed byte) print_sbyte_at::b#22<(signed byte) 0) goto print_sbyte_at::@1
Simple Condition (bool~) anim::$0 [100] if(*((const byte*) RASTER)!=(byte) $ff) goto anim::@4
Simple Condition (bool~) anim::$1 [103] if(*((const byte*) RASTER)!=(byte) $fe) goto anim::@10
Simple Condition (bool~) anim::$2 [106] if(*((const byte*) RASTER)!=(byte) $fd) goto anim::@16
Simple Condition (bool~) anim::$13 [140] if((byte) anim::i#1!=rangelast(0,7)) goto anim::@22
Simple Condition (bool~) debug_print_init::$67 [272] if((byte) debug_print_init::j#1!=rangelast(0,3)) goto debug_print_init::@2
Simple Condition (bool~) debug_print_init::$68 [277] if((byte) debug_print_init::i#1!=rangelast(0,7)) goto debug_print_init::@1
Simple Condition (bool~) debug_print::$31 [466] if((byte) debug_print::i#1!=rangelast(0,7)) goto debug_print::@1
Simple Condition (bool~) sprites_init::$3 [479] if((byte) sprites_init::i#1!=rangelast(0,7)) goto sprites_init::@1
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str_at::$0 [17] if((byte) 0!=*((byte*) print_str_at::str#13)) goto print_str_at::@2
Simple Condition (bool~) print_sbyte_at::$0 [24] if((signed byte) print_sbyte_at::b#22<(signed byte) 0) goto print_sbyte_at::@1
Simple Condition (bool~) anim::$0 [75] if(*((const byte*) RASTER)!=(byte) $ff) goto anim::@4
Simple Condition (bool~) anim::$1 [78] if(*((const byte*) RASTER)!=(byte) $fe) goto anim::@10
Simple Condition (bool~) anim::$2 [81] if(*((const byte*) RASTER)!=(byte) $fd) goto anim::@16
Simple Condition (bool~) anim::$13 [110] if((byte) anim::i#1!=rangelast(0,7)) goto anim::@22
Simple Condition (bool~) debug_print_init::$67 [216] if((byte) debug_print_init::j#1!=rangelast(0,3)) goto debug_print_init::@2
Simple Condition (bool~) debug_print_init::$68 [220] if((byte) debug_print_init::i#1!=rangelast(0,7)) goto debug_print_init::@1
Simple Condition (bool~) debug_print::$31 [350] if((byte) debug_print::i#1!=rangelast(0,7)) goto debug_print::@1
Simple Condition (bool~) sprites_init::$3 [362] if((byte) sprites_init::i#1!=rangelast(0,7)) goto sprites_init::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [78] (word~) main::$1 ← (word)(const byte*) mulf_sqr1
Constant right-side identified [80] (word~) main::$2 ← (word)(const byte*) mulf_sqr2
Constant right-side identified [154] (byte*~) debug_print_init::$1 ← (const byte*) SCREEN + (byte)(number) $28*(number) 0
Constant right-side identified [159] (byte*~) debug_print_init::$4 ← (const byte*) SCREEN + (byte)(number) $28*(number) 1
Constant right-side identified [164] (byte*~) debug_print_init::$7 ← (const byte*) SCREEN + (byte)(number) $28*(number) 2
Constant right-side identified [169] (byte*) print_str_at::at#4 ← (const byte*) SCREEN + (word)(number) $28*(number) $10
Constant right-side identified [173] (byte*) print_str_at::at#5 ← (const byte*) SCREEN + (word)(number) $28*(number) $11
Constant right-side identified [177] (byte*) print_str_at::at#6 ← (const byte*) SCREEN + (word)(number) $28*(number) $12
Constant right-side identified [181] (byte*) print_str_at::at#7 ← (const byte*) SCREEN + (word)(number) $28*(number) $13
Constant right-side identified [185] (byte*) print_str_at::at#8 ← (const byte*) SCREEN + (word)(number) $28*(number) $14
Constant right-side identified [189] (byte*) print_str_at::at#9 ← (const byte*) SCREEN + (word)(number) $28*(number) $15
Constant right-side identified [193] (byte*) print_str_at::at#10 ← (const byte*) SCREEN + (word)(number) $28*(number) $16
Constant right-side identified [197] (byte*) print_str_at::at#11 ← (const byte*) SCREEN + (word)(number) $28*(number) $17
Constant right-side identified [201] (byte*) print_str_at::at#12 ← (const byte*) SCREEN + (word)(number) $28*(number) $18
Constant right-side identified [205] (byte*) debug_print_init::at_line#0 ← (const byte*) SCREEN + (word)(number) $10*(number) $28
Constant right-side identified [208] (byte*) debug_print_init::at_cols#0 ← (const byte*) debug_print_init::COLS + (word)(number) $10*(number) $28
Constant right-side identified [422] (byte*) debug_print::at_line#0 ← (const byte*) SCREEN + (word)(number) $13*(number) $28
Constant right-side identified [469] (byte*) sprites_init::sprites_ptr#0 ← (const byte*) sprites_init::SCREEN + (word) $3f8
Constant right-side identified [473] (byte*~) sprites_init::$1 ← (const byte*) SPRITE / (byte) $40
Constant right-side identified [60] (word~) main::$1 ← (word)(const byte*) mulf_sqr1
Constant right-side identified [62] (word~) main::$2 ← (word)(const byte*) mulf_sqr2
Constant right-side identified [119] (byte*~) debug_print_init::$1 ← (const byte*) SCREEN + (byte)(number) $28*(number) 0
Constant right-side identified [123] (byte*~) debug_print_init::$4 ← (const byte*) SCREEN + (byte)(number) $28*(number) 1
Constant right-side identified [127] (byte*~) debug_print_init::$7 ← (const byte*) SCREEN + (byte)(number) $28*(number) 2
Constant right-side identified [131] (byte*) print_str_at::at#4 ← (const byte*) SCREEN + (word)(number) $28*(number) $10
Constant right-side identified [134] (byte*) print_str_at::at#5 ← (const byte*) SCREEN + (word)(number) $28*(number) $11
Constant right-side identified [137] (byte*) print_str_at::at#6 ← (const byte*) SCREEN + (word)(number) $28*(number) $12
Constant right-side identified [140] (byte*) print_str_at::at#7 ← (const byte*) SCREEN + (word)(number) $28*(number) $13
Constant right-side identified [143] (byte*) print_str_at::at#8 ← (const byte*) SCREEN + (word)(number) $28*(number) $14
Constant right-side identified [146] (byte*) print_str_at::at#9 ← (const byte*) SCREEN + (word)(number) $28*(number) $15
Constant right-side identified [149] (byte*) print_str_at::at#10 ← (const byte*) SCREEN + (word)(number) $28*(number) $16
Constant right-side identified [152] (byte*) print_str_at::at#11 ← (const byte*) SCREEN + (word)(number) $28*(number) $17
Constant right-side identified [155] (byte*) print_str_at::at#12 ← (const byte*) SCREEN + (word)(number) $28*(number) $18
Constant right-side identified [158] (byte*) debug_print_init::at_line#0 ← (const byte*) SCREEN + (word)(number) $10*(number) $28
Constant right-side identified [160] (byte*) debug_print_init::at_cols#0 ← (const byte*) debug_print_init::COLS + (word)(number) $10*(number) $28
Constant right-side identified [319] (byte*) debug_print::at_line#0 ← (const byte*) SCREEN + (word)(number) $13*(number) $28
Constant right-side identified [353] (byte*) sprites_init::sprites_ptr#0 ← (const byte*) sprites_init::SCREEN + (word) $3f8
Constant right-side identified [356] (byte*~) sprites_init::$1 ← (const byte*) SPRITE / (byte) $40
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) print_screen#0 = (byte*) 1024
Constant (const byte) print_char_at::ch#0 = '-'
@ -2752,44 +2752,44 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always true - replacing block destination [97] if(true) goto anim::@4
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always true - replacing block destination [72] if(true) goto anim::@4
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [138] anim::i#1 ← ++ anim::i#2 to ++
Resolved ranged comparison value [140] if(anim::i#1!=rangelast(0,7)) goto anim::@22 to (number) 8
Resolved ranged next value [270] debug_print_init::j#1 ← ++ debug_print_init::j#2 to ++
Resolved ranged comparison value [272] if(debug_print_init::j#1!=rangelast(0,3)) goto debug_print_init::@2 to (number) 4
Resolved ranged next value [275] debug_print_init::i#1 ← ++ debug_print_init::i#2 to ++
Resolved ranged comparison value [277] if(debug_print_init::i#1!=rangelast(0,7)) goto debug_print_init::@1 to (number) 8
Resolved ranged next value [464] debug_print::i#1 ← ++ debug_print::i#2 to ++
Resolved ranged comparison value [466] if(debug_print::i#1!=rangelast(0,7)) goto debug_print::@1 to (number) 8
Resolved ranged next value [477] sprites_init::i#1 ← ++ sprites_init::i#2 to ++
Resolved ranged comparison value [479] if(sprites_init::i#1!=rangelast(0,7)) goto sprites_init::@1 to (number) 8
Converting *(pointer+n) to pointer[n] [237] *((byte*~) debug_print_init::$42) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$41 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [241] *((byte*~) debug_print_init::$45) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$44 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [245] *((byte*~) debug_print_init::$48) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$47 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [249] *((byte*~) debug_print_init::$51) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$50 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [253] *((byte*~) debug_print_init::$54) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$53 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [257] *((byte*~) debug_print_init::$57) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$56 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [261] *((byte*~) debug_print_init::$60) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$59 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [265] *((byte*~) debug_print_init::$63) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$62 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [269] *((byte*~) debug_print_init::$66) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$65 + debug_print_init::j#2)
Resolved ranged next value [108] anim::i#1 ← ++ anim::i#2 to ++
Resolved ranged comparison value [110] if(anim::i#1!=rangelast(0,7)) goto anim::@22 to (number) 8
Resolved ranged next value [214] debug_print_init::j#1 ← ++ debug_print_init::j#2 to ++
Resolved ranged comparison value [216] if(debug_print_init::j#1!=rangelast(0,3)) goto debug_print_init::@2 to (number) 4
Resolved ranged next value [218] debug_print_init::i#1 ← ++ debug_print_init::i#2 to ++
Resolved ranged comparison value [220] if(debug_print_init::i#1!=rangelast(0,7)) goto debug_print_init::@1 to (number) 8
Resolved ranged next value [348] debug_print::i#1 ← ++ debug_print::i#2 to ++
Resolved ranged comparison value [350] if(debug_print::i#1!=rangelast(0,7)) goto debug_print::@1 to (number) 8
Resolved ranged next value [360] sprites_init::i#1 ← ++ sprites_init::i#2 to ++
Resolved ranged comparison value [362] if(sprites_init::i#1!=rangelast(0,7)) goto sprites_init::@1 to (number) 8
Converting *(pointer+n) to pointer[n] [181] *((byte*~) debug_print_init::$42) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$41 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [185] *((byte*~) debug_print_init::$45) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$44 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [189] *((byte*~) debug_print_init::$48) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$47 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [193] *((byte*~) debug_print_init::$51) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$50 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [197] *((byte*~) debug_print_init::$54) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$53 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [201] *((byte*~) debug_print_init::$57) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$56 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [205] *((byte*~) debug_print_init::$60) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$59 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [209] *((byte*~) debug_print_init::$63) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$62 + debug_print_init::j#2)
Converting *(pointer+n) to pointer[n] [213] *((byte*~) debug_print_init::$66) ← (byte) debug_print_init::col#0 -- *(debug_print_init::$65 + debug_print_init::j#2)
Successful SSA optimization Pass2InlineDerefIdx
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [212] (byte*~) debug_print_init::$30 ← (const byte*) debug_print_init::at_line#0 + (byte)(number) $28*(number) 0
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [234] (byte*~) debug_print_init::$40 ← (const byte*) debug_print_init::at_cols#0 + (byte)(number) $28*(number) 0
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [427] (byte*~) debug_print::$13 ← (const byte*) debug_print::at_line#0 + (byte)(number) $28*(number) 0
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [163] (byte*~) debug_print_init::$30 ← (const byte*) debug_print_init::at_line#0 + (byte)(number) $28*(number) 0
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [178] (byte*~) debug_print_init::$40 ← (const byte*) debug_print_init::at_cols#0 + (byte)(number) $28*(number) 0
Simplifying constant evaluating to zero (byte)(number) $28*(number) 0 in [323] (byte*~) debug_print::$13 ← (const byte*) debug_print::at_line#0 + (byte)(number) $28*(number) 0
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero SCREEN in
Simplifying expression containing zero debug_print_init::at_line#0 in [212] (byte*~) debug_print_init::$30 ← (const byte*) debug_print_init::at_line#0 + (byte) 0
Simplifying expression containing zero debug_print_init::at_cols#0 in [234] (byte*~) debug_print_init::$40 ← (const byte*) debug_print_init::at_cols#0 + (byte) 0
Simplifying expression containing zero rotation_matrix in [316] (signed byte) debug_print::print_sbyte_pos4_sb#0 ← *((const signed byte*) rotation_matrix + (byte) 0)
Simplifying expression containing zero debug_print::at_line#0 in [427] (byte*~) debug_print::$13 ← (const byte*) debug_print::at_line#0 + (byte) 0
Simplifying expression containing zero calculate_matrix::sy#0 in [482] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (const signed byte) calculate_matrix::sz#0
Simplifying expression containing zero calculate_matrix::sy#0 in [484] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (const signed byte) calculate_matrix::sz#0
Simplifying expression containing zero calculate_matrix::sx#0 in [486] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (const signed byte) calculate_matrix::sz#0
Simplifying expression containing zero calculate_matrix::sx#0 in [488] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (const signed byte) calculate_matrix::sz#0
Simplifying expression containing zero rotation_matrix in [503] *((const signed byte*) rotation_matrix + (byte) 0) ← (signed byte~) calculate_matrix::$10
Simplifying expression containing zero debug_print_init::at_line#0 in [163] (byte*~) debug_print_init::$30 ← (const byte*) debug_print_init::at_line#0 + (byte) 0
Simplifying expression containing zero debug_print_init::at_cols#0 in [178] (byte*~) debug_print_init::$40 ← (const byte*) debug_print_init::at_cols#0 + (byte) 0
Simplifying expression containing zero rotation_matrix in [247] (signed byte) debug_print::print_sbyte_pos4_sb#0 ← *((const signed byte*) rotation_matrix + (byte) 0)
Simplifying expression containing zero debug_print::at_line#0 in [323] (byte*~) debug_print::$13 ← (const byte*) debug_print::at_line#0 + (byte) 0
Simplifying expression containing zero calculate_matrix::sy#0 in [365] (signed byte) calculate_matrix::t1#0 ← (signed byte) calculate_matrix::sy#0 - (const signed byte) calculate_matrix::sz#0
Simplifying expression containing zero calculate_matrix::sy#0 in [366] (signed byte) calculate_matrix::t2#0 ← (signed byte) calculate_matrix::sy#0 + (const signed byte) calculate_matrix::sz#0
Simplifying expression containing zero calculate_matrix::sx#0 in [367] (signed byte) calculate_matrix::t3#0 ← (signed byte) calculate_matrix::sx#0 + (const signed byte) calculate_matrix::sz#0
Simplifying expression containing zero calculate_matrix::sx#0 in [368] (signed byte) calculate_matrix::t4#0 ← (signed byte) calculate_matrix::sx#0 - (const signed byte) calculate_matrix::sz#0
Simplifying expression containing zero rotation_matrix in [376] *((const signed byte*) rotation_matrix + (byte) 0) ← (signed byte~) calculate_matrix::$10
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused variable (byte*~) debug_print_init::$42 and assignment [115] (byte*~) debug_print_init::$42 ← (byte*~) debug_print_init::$41 + (byte) debug_print_init::j#2
Eliminating unused variable (byte*~) debug_print_init::$45 and assignment [119] (byte*~) debug_print_init::$45 ← (byte*~) debug_print_init::$44 + (byte) debug_print_init::j#2

View File

@ -1079,15 +1079,15 @@ Identical Phi Values (byte*) print_char_cursor#68 (byte*) print_char_cursor#12
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [202] (byte~) mulf_init::$2 ← - (byte) mulf_init::i#2
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str::$0 [26] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2
Simple Condition (bool~) print_ln::$1 [39] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
Simple Condition (bool~) print_sbyte::$0 [48] if((signed byte) print_sbyte::b#4<(signed byte) 0) goto print_sbyte::@1
Simple Condition (bool~) mulf_init::$7 [216] if((byte) mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_str::$0 [17] if((byte) 0!=*((byte*) print_str::str#7)) goto print_str::@2
Simple Condition (bool~) print_ln::$1 [26] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
Simple Condition (bool~) print_sbyte::$0 [30] if((signed byte) print_sbyte::b#4<(signed byte) 0) goto print_sbyte::@1
Simple Condition (bool~) mulf_init::$7 [149] if((byte) mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [107] (word~) main::$1 ← (word)(const byte*) mulf_sqr1
Constant right-side identified [109] (word~) main::$2 ← (word)(const byte*) mulf_sqr2
Constant right-side identified [67] (word~) main::$1 ← (word)(const byte*) mulf_sqr1
Constant right-side identified [69] (word~) main::$2 ← (word)(const byte*) mulf_sqr2
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) print_line_cursor#0 = (byte*) 1024
Constant (const byte) print_char::ch#0 = '-'
@ -1121,12 +1121,12 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) do_perspective::str1
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [214] mulf_init::i#1 ← ++ mulf_init::i#2 to ++
Resolved ranged comparison value [216] if(mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1 to (number) $81
Resolved ranged next value [147] mulf_init::i#1 ← ++ mulf_init::i#2 to ++
Resolved ranged comparison value [149] if(mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1 to (number) $81
Eliminating unused constant (const void*) memset::return#2
Successful SSA optimization PassNEliminateUnusedVars
Adding number conversion cast (unumber) $81 in if((byte) mulf_init::i#1!=(number) $81) goto mulf_init::@1

View File

@ -1474,29 +1474,29 @@ Identical Phi Values (byte) bitmap_line_ydxd::y1#2 (byte) bitmap_line_ydxd::y1#6
Successful SSA optimization Pass2IdenticalPhiElimination
Identified duplicate assignment right side [29] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7
Successful SSA optimization Pass2DuplicateRValueIdentification
Simple Condition (bool~) bitmap_init::$4 [13] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$5 [17] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$12 [32] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$14 [36] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_clear::$1 [52] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
Simple Condition (bool~) bitmap_clear::$2 [56] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
Simple Condition (bool~) bitmap_line::$0 [72] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
Simple Condition (bool~) bitmap_line::$12 [77] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@20
Simple Condition (bool~) bitmap_line::$2 [82] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@10
Simple Condition (bool~) bitmap_line::$8 [87] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#2) goto bitmap_line::@15
Simple Condition (bool~) bitmap_line::$4 [92] if((byte) bitmap_line::yd#2<(byte) bitmap_line::xd#2) goto bitmap_line::@11
Simple Condition (bool~) bitmap_line::$18 [125] if((byte) bitmap_line::yd#11<(byte) bitmap_line::xd#1) goto bitmap_line::@25
Simple Condition (bool~) bitmap_line::$14 [130] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#1) goto bitmap_line::@21
Simple Condition (bool~) bitmap_line_xdyi::$4 [173] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2
Simple Condition (bool~) bitmap_line_xdyi::$7 [177] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1
Simple Condition (bool~) bitmap_line_xdyd::$4 [196] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2
Simple Condition (bool~) bitmap_line_xdyd::$7 [200] if((byte) bitmap_line_xdyd::x#2!=(byte~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1
Simple Condition (bool~) bitmap_line_ydxi::$4 [219] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2
Simple Condition (bool~) bitmap_line_ydxi::$7 [223] if((byte) bitmap_line_ydxi::y#2!=(byte~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1
Simple Condition (bool~) bitmap_line_ydxd::$4 [243] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2
Simple Condition (bool~) bitmap_line_ydxd::$7 [247] if((byte) bitmap_line_ydxd::y#3!=(byte~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1
Simple Condition (bool~) lines::$0 [267] if((byte) lines::l#2<(const byte) lines_cnt) goto lines::@2
Simple Condition (bool~) init_screen::$0 [282] if((byte*) init_screen::c#2!=(const byte*) SCREEN+(word) $400) goto init_screen::@2
Simple Condition (bool~) bitmap_init::$4 [11] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
Simple Condition (bool~) bitmap_init::$5 [15] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
Simple Condition (bool~) bitmap_init::$12 [28] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@6
Simple Condition (bool~) bitmap_init::$14 [32] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
Simple Condition (bool~) bitmap_clear::$1 [45] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
Simple Condition (bool~) bitmap_clear::$2 [48] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
Simple Condition (bool~) bitmap_line::$0 [62] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
Simple Condition (bool~) bitmap_line::$12 [65] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@20
Simple Condition (bool~) bitmap_line::$2 [68] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@10
Simple Condition (bool~) bitmap_line::$8 [71] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#2) goto bitmap_line::@15
Simple Condition (bool~) bitmap_line::$4 [74] if((byte) bitmap_line::yd#2<(byte) bitmap_line::xd#2) goto bitmap_line::@11
Simple Condition (bool~) bitmap_line::$18 [101] if((byte) bitmap_line::yd#11<(byte) bitmap_line::xd#1) goto bitmap_line::@25
Simple Condition (bool~) bitmap_line::$14 [104] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#1) goto bitmap_line::@21
Simple Condition (bool~) bitmap_line_xdyi::$4 [139] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2
Simple Condition (bool~) bitmap_line_xdyi::$7 [143] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1
Simple Condition (bool~) bitmap_line_xdyd::$4 [156] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2
Simple Condition (bool~) bitmap_line_xdyd::$7 [160] if((byte) bitmap_line_xdyd::x#2!=(byte~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1
Simple Condition (bool~) bitmap_line_ydxi::$4 [173] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2
Simple Condition (bool~) bitmap_line_ydxi::$7 [177] if((byte) bitmap_line_ydxi::y#2!=(byte~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1
Simple Condition (bool~) bitmap_line_ydxd::$4 [190] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2
Simple Condition (bool~) bitmap_line_ydxd::$7 [194] if((byte) bitmap_line_ydxd::y#3!=(byte~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1
Simple Condition (bool~) lines::$0 [212] if((byte) lines::l#2<(const byte) lines_cnt) goto lines::@2
Simple Condition (bool~) init_screen::$0 [225] if((byte*) init_screen::c#2!=(const byte*) SCREEN+(word) $400) goto init_screen::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) bitmap_init::bits#0 = $80
Constant (const byte) bitmap_init::x#0 = 0
@ -1511,18 +1511,18 @@ Constant (const byte*) bitmap_init::bitmap#0 = BITMAP
Constant (const byte) lines::l#0 = 0
Constant (const byte*) init_screen::c#0 = SCREEN
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [262] if(true) goto main::@1
if() condition always true - replacing block destination [207] if(true) goto main::@1
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [15] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [17] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [34] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [36] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [50] bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++
Resolved ranged comparison value [52] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (number) $c8
Resolved ranged next value [54] bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++
Resolved ranged comparison value [56] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (number) $28
Simplifying expression containing zero bitmap_plot_xhi in [41] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi + (byte) 0) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_plot_xlo in [41] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Resolved ranged next value [13] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
Resolved ranged comparison value [15] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
Resolved ranged next value [30] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
Resolved ranged comparison value [32] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
Resolved ranged next value [43] bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++
Resolved ranged comparison value [45] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (number) $c8
Resolved ranged next value [46] bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++
Resolved ranged comparison value [48] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (number) $28
Simplifying expression containing zero bitmap_plot_xhi in [35] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi + (byte) 0) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_plot_xlo in [35] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused constant (const byte) bitmap_line::xd#0
Eliminating unused constant (const byte) bitmap_line::yd#0

View File

@ -1180,29 +1180,29 @@ Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (byte*) plot_chargen::chargen#3 (byte*) plot_chargen::chargen#5
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) mul8u::$0 [5] if((byte) mul8u::a#2!=(byte) 0) goto mul8u::@2
Simple Condition (bool~) mul8u::$3 [10] if((byte~) mul8u::$1==(byte) 0) goto mul8u::@4
Simple Condition (bool~) main::$12 [56] if((byte*) main::sc#2<(byte*~) main::$11) goto main::@2
Simple Condition (bool~) main::$14 [88] if((byte) main::i#1!=rangelast(0,3)) goto main::@7
Simple Condition (bool~) main::$17 [99] if((byte~) main::$15==(byte) 0) goto main::@10
Simple Condition (bool~) main::$20 [108] if((byte~) main::$18==(byte) 0) goto main::@11
Simple Condition (bool~) main::$23 [118] if((byte~) main::$21==(byte) 0) goto main::@12
Simple Condition (bool~) main::$26 [128] if((byte~) main::$24==(byte) 0) goto main::@13
Simple Condition (bool~) main::$28 [137] if((byte~) main::$27!=(byte) 0) goto main::@14
Simple Condition (bool~) main::$31 [155] if((byte) main::key#0==(byte) $3f) goto main::@17
Simple Condition (bool~) main::$34 [159] if((byte) main::pressed#2==(byte) 0) goto main::@18
Simple Condition (bool~) main::$36 [170] if((byte) main::ch#1!=rangelast(0,$3f)) goto main::@16
Simple Condition (bool~) print_str_at::$0 [183] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2
Simple Condition (bool~) plot_chargen::$4 [197] if((byte) plot_chargen::shift#2==(byte) 0) goto plot_chargen::@1
Simple Condition (bool~) plot_chargen::$12 [222] if((byte~) plot_chargen::$10==(byte) 0) goto plot_chargen::@5
Simple Condition (bool~) plot_chargen::$14 [230] if((byte) plot_chargen::x#1!=rangelast(0,7)) goto plot_chargen::@4
Simple Condition (bool~) plot_chargen::$16 [238] if((byte) plot_chargen::y#1!=rangelast(0,7)) goto plot_chargen::@3
Simple Condition (bool~) mul8u::$3 [8] if((byte~) mul8u::$1==(byte) 0) goto mul8u::@4
Simple Condition (bool~) main::$12 [34] if((byte*) main::sc#2<(byte*~) main::$11) goto main::@2
Simple Condition (bool~) main::$14 [60] if((byte) main::i#1!=rangelast(0,3)) goto main::@7
Simple Condition (bool~) main::$17 [69] if((byte~) main::$15==(byte) 0) goto main::@10
Simple Condition (bool~) main::$20 [76] if((byte~) main::$18==(byte) 0) goto main::@11
Simple Condition (bool~) main::$23 [84] if((byte~) main::$21==(byte) 0) goto main::@12
Simple Condition (bool~) main::$26 [92] if((byte~) main::$24==(byte) 0) goto main::@13
Simple Condition (bool~) main::$28 [100] if((byte~) main::$27!=(byte) 0) goto main::@14
Simple Condition (bool~) main::$31 [113] if((byte) main::key#0==(byte) $3f) goto main::@17
Simple Condition (bool~) main::$34 [116] if((byte) main::pressed#2==(byte) 0) goto main::@18
Simple Condition (bool~) main::$36 [123] if((byte) main::ch#1!=rangelast(0,$3f)) goto main::@16
Simple Condition (bool~) print_str_at::$0 [133] if((byte) 0!=*((byte*) print_str_at::str#5)) goto print_str_at::@2
Simple Condition (bool~) plot_chargen::$4 [144] if((byte) plot_chargen::shift#2==(byte) 0) goto plot_chargen::@1
Simple Condition (bool~) plot_chargen::$12 [164] if((byte~) plot_chargen::$10==(byte) 0) goto plot_chargen::@5
Simple Condition (bool~) plot_chargen::$14 [171] if((byte) plot_chargen::x#1!=rangelast(0,7)) goto plot_chargen::@4
Simple Condition (bool~) plot_chargen::$16 [176] if((byte) plot_chargen::y#1!=rangelast(0,7)) goto plot_chargen::@3
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [54] (byte*~) main::$11 ← (const byte*) SCREEN + (word) $3e8
Constant right-side identified [60] (byte*) print_str_at::at#0 ← (const byte*) SCREEN + (byte) 1
Constant right-side identified [64] (byte*~) main::$2 ← (const byte*) SCREEN + (byte) 1
Constant right-side identified [69] (byte*~) main::$5 ← (const byte*) SCREEN + (byte) 1
Constant right-side identified [74] (byte*~) main::$8 ← (const byte*) SCREEN + (byte) 1
Constant right-side identified [200] (byte*~) plot_chargen::$5 ← (const byte*) SCREEN + (byte) $28
Constant right-side identified [32] (byte*~) main::$11 ← (const byte*) SCREEN + (word) $3e8
Constant right-side identified [37] (byte*) print_str_at::at#0 ← (const byte*) SCREEN + (byte) 1
Constant right-side identified [40] (byte*~) main::$2 ← (const byte*) SCREEN + (byte) 1
Constant right-side identified [44] (byte*~) main::$5 ← (const byte*) SCREEN + (byte) 1
Constant right-side identified [48] (byte*~) main::$8 ← (const byte*) SCREEN + (byte) 1
Constant right-side identified [147] (byte*~) plot_chargen::$5 ← (const byte*) SCREEN + (byte) $28
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const word) mul8u::res#0 = 0
Constant (const byte*) main::sc#0 = SCREEN
@ -1242,16 +1242,16 @@ Constant (const byte) plot_chargen::c#1 = '*'
Successful SSA optimization Pass2ConstantIdentification
Constant (const word) mul8u::mb#0 = (word)mul8u::b#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [178] if(true) goto main::@9
if() condition always true - replacing block destination [128] if(true) goto main::@9
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [86] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [88] if(main::i#1!=rangelast(0,3)) goto main::@7 to (number) 4
Resolved ranged next value [168] main::ch#1 ← ++ main::ch#2 to ++
Resolved ranged comparison value [170] if(main::ch#1!=rangelast(0,$3f)) goto main::@16 to (number) $40
Resolved ranged next value [228] plot_chargen::x#1 ← ++ plot_chargen::x#2 to ++
Resolved ranged comparison value [230] if(plot_chargen::x#1!=rangelast(0,7)) goto plot_chargen::@4 to (number) 8
Resolved ranged next value [236] plot_chargen::y#1 ← ++ plot_chargen::y#2 to ++
Resolved ranged comparison value [238] if(plot_chargen::y#1!=rangelast(0,7)) goto plot_chargen::@3 to (number) 8
Resolved ranged next value [58] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [60] if(main::i#1!=rangelast(0,3)) goto main::@7 to (number) 4
Resolved ranged next value [121] main::ch#1 ← ++ main::ch#2 to ++
Resolved ranged comparison value [123] if(main::ch#1!=rangelast(0,$3f)) goto main::@16 to (number) $40
Resolved ranged next value [169] plot_chargen::x#1 ← ++ plot_chargen::x#2 to ++
Resolved ranged comparison value [171] if(plot_chargen::x#1!=rangelast(0,7)) goto plot_chargen::@4 to (number) 8
Resolved ranged next value [174] plot_chargen::y#1 ← ++ plot_chargen::y#2 to ++
Resolved ranged comparison value [176] if(plot_chargen::y#1!=rangelast(0,7)) goto plot_chargen::@3 to (number) 8
Eliminating unused constant (const byte) main::shift#0
Successful SSA optimization PassNEliminateUnusedVars
Removing unused block main::@return

View File

@ -721,14 +721,14 @@ Identical Phi Values (signed byte) fmul8::b#1 (signed byte) fmul8::b#0
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (void*) memset::return#0 (void*) memset::str#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) memset::$1 [3] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [13] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_sbyte_at::$0 [23] if((signed byte) print_sbyte_at::b#4<(signed byte) 0) goto print_sbyte_at::@1
Simple Condition (bool~) main::$3 [79] if((byte) main::k#1!=rangelast(0,8)) goto main::@1
Simple Condition (bool~) main::$7 [105] if((byte) main::j#1!=rangelast(0,8)) goto main::@4
Simple Condition (bool~) main::$8 [109] if((byte) main::i#1!=rangelast(0,8)) goto main::@3
Simple Condition (bool~) init_screen::$1 [119] if((byte) init_screen::l#1!=rangelast(0,$27)) goto init_screen::@1
Simple Condition (bool~) init_screen::$2 [130] if((byte) init_screen::m#1!=rangelast(0,$18)) goto init_screen::@3
Simple Condition (bool~) memset::$1 [2] if((word) memset::num#0<=(byte) 0) goto memset::@1
Simple Condition (bool~) memset::$4 [9] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5
Simple Condition (bool~) print_sbyte_at::$0 [16] if((signed byte) print_sbyte_at::b#4<(signed byte) 0) goto print_sbyte_at::@1
Simple Condition (bool~) main::$3 [61] if((byte) main::k#1!=rangelast(0,8)) goto main::@1
Simple Condition (bool~) main::$7 [81] if((byte) main::j#1!=rangelast(0,8)) goto main::@4
Simple Condition (bool~) main::$8 [84] if((byte) main::i#1!=rangelast(0,8)) goto main::@3
Simple Condition (bool~) init_screen::$1 [94] if((byte) init_screen::l#1!=rangelast(0,$27)) goto init_screen::@1
Simple Condition (bool~) init_screen::$2 [104] if((byte) init_screen::m#1!=rangelast(0,$18)) goto init_screen::@3
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) print_screen#0 = (byte*) 1024
Constant (const byte) print_char_at::ch#0 = '-'
@ -749,19 +749,19 @@ Constant (const byte*) memset::$2 = (byte*)memset::str#0
Constant (const byte*) memset::dst#0 = (byte*)memset::str#0
Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always false - eliminating [2] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [77] main::k#1 ← ++ main::k#2 to ++
Resolved ranged comparison value [79] if(main::k#1!=rangelast(0,8)) goto main::@1 to (number) 9
Resolved ranged next value [103] main::j#1 ← ++ main::j#2 to ++
Resolved ranged comparison value [105] if(main::j#1!=rangelast(0,8)) goto main::@4 to (number) 9
Resolved ranged next value [107] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [109] if(main::i#1!=rangelast(0,8)) goto main::@3 to (number) 9
Resolved ranged next value [117] init_screen::l#1 ← ++ init_screen::l#2 to ++
Resolved ranged comparison value [119] if(init_screen::l#1!=rangelast(0,$27)) goto init_screen::@1 to (number) $28
Resolved ranged next value [128] init_screen::m#1 ← ++ init_screen::m#2 to ++
Resolved ranged comparison value [130] if(init_screen::m#1!=rangelast(0,$18)) goto init_screen::@3 to (number) $19
Simplifying expression containing zero init_screen::COLS#3 in [123] *((byte*) init_screen::COLS#3 + (byte) 0) ← (const byte) init_screen::WHITE
Resolved ranged next value [59] main::k#1 ← ++ main::k#2 to ++
Resolved ranged comparison value [61] if(main::k#1!=rangelast(0,8)) goto main::@1 to (number) 9
Resolved ranged next value [79] main::j#1 ← ++ main::j#2 to ++
Resolved ranged comparison value [81] if(main::j#1!=rangelast(0,8)) goto main::@4 to (number) 9
Resolved ranged next value [82] main::i#1 ← ++ main::i#2 to ++
Resolved ranged comparison value [84] if(main::i#1!=rangelast(0,8)) goto main::@3 to (number) 9
Resolved ranged next value [92] init_screen::l#1 ← ++ init_screen::l#2 to ++
Resolved ranged comparison value [94] if(init_screen::l#1!=rangelast(0,$27)) goto init_screen::@1 to (number) $28
Resolved ranged next value [102] init_screen::m#1 ← ++ init_screen::m#2 to ++
Resolved ranged comparison value [104] if(init_screen::m#1!=rangelast(0,$18)) goto init_screen::@3 to (number) $19
Simplifying expression containing zero init_screen::COLS#3 in [97] *((byte*) init_screen::COLS#3 + (byte) 0) ← (const byte) init_screen::WHITE
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating unused constant (const void*) memset::return#2
Successful SSA optimization PassNEliminateUnusedVars

View File

@ -925,20 +925,20 @@ Identical Phi Values (byte*) makecharset::charset#11 (byte*) makecharset::charse
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values (byte*) makecharset::charset#14 (byte*) makecharset::charset#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) fire::$3 [73] if((byte*) fire::buffer#4!=(byte*~) fire::$2) goto fire::@2
Simple Condition (bool~) fire::$9 [82] if((byte) fire::c#0<=(byte) 2) goto fire::@4
Simple Condition (bool~) fire::$11 [98] if((byte*) fire::buffer#10!=(byte*~) fire::$10) goto fire::@10
Simple Condition (bool~) makecharset::$1 [116] if((byte*) makecharset::font#2!=(byte*~) makecharset::$0) goto makecharset::@2
Simple Condition (bool~) makecharset::$4 [126] if((byte*) makecharset::font1#2!=(byte*~) makecharset::$3) goto makecharset::@8
Simple Condition (bool~) makecharset::$5 [134] if((byte) makecharset::c#2<(byte) $40) goto makecharset::@14
Simple Condition (bool~) makecharset::$6 [140] if((byte) makecharset::i#2<(byte) 8) goto makecharset::@17
Simple Condition (bool~) makecharset::$7 [148] if((byte) makecharset::ii#2<(byte) 8) goto makecharset::@20
Simple Condition (bool~) makecharset::$9 [153] if((byte) makecharset::bc#1<=(byte) $3f) goto makecharset::@22
Simple Condition (bool~) fillscreen::$0 [178] if((word) fillscreen::i#1!=rangelast(0,$3e7)) goto fillscreen::@1
Simple Condition (bool~) fire::$3 [58] if((byte*) fire::buffer#4!=(byte*~) fire::$2) goto fire::@2
Simple Condition (bool~) fire::$9 [64] if((byte) fire::c#0<=(byte) 2) goto fire::@4
Simple Condition (bool~) fire::$11 [76] if((byte*) fire::buffer#10!=(byte*~) fire::$10) goto fire::@10
Simple Condition (bool~) makecharset::$1 [91] if((byte*) makecharset::font#2!=(byte*~) makecharset::$0) goto makecharset::@2
Simple Condition (bool~) makecharset::$4 [98] if((byte*) makecharset::font1#2!=(byte*~) makecharset::$3) goto makecharset::@8
Simple Condition (bool~) makecharset::$5 [104] if((byte) makecharset::c#2<(byte) $40) goto makecharset::@14
Simple Condition (bool~) makecharset::$6 [109] if((byte) makecharset::i#2<(byte) 8) goto makecharset::@17
Simple Condition (bool~) makecharset::$7 [115] if((byte) makecharset::ii#2<(byte) 8) goto makecharset::@20
Simple Condition (bool~) makecharset::$9 [118] if((byte) makecharset::bc#1<=(byte) $3f) goto makecharset::@22
Simple Condition (bool~) fillscreen::$0 [140] if((word) fillscreen::i#1!=rangelast(0,$3e7)) goto fillscreen::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [71] (byte*~) fire::$2 ← (const byte*) BUFFER + (word)(number) $18*(number) $28
Constant right-side identified [86] (byte*) fire::buffer#1 ← (const byte*) BUFFER + (word)(number) $18*(number) $28
Constant right-side identified [96] (byte*~) fire::$10 ← (const byte*) BUFFER + (word)(number) $19*(number) $28
Constant right-side identified [56] (byte*~) fire::$2 ← (const byte*) BUFFER + (word)(number) $18*(number) $28
Constant right-side identified [66] (byte*) fire::buffer#1 ← (const byte*) BUFFER + (word)(number) $18*(number) $28
Constant right-side identified [74] (byte*~) fire::$10 ← (const byte*) BUFFER + (word)(number) $19*(number) $28
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant (const byte*) fillscreen::screen#0 = BUFFER
Constant (const byte) fillscreen::fill#0 = 0
@ -971,13 +971,13 @@ Constant (const word) main::toD0181_$4 = (word)main::toD0181_gfx#0
Constant (const word) main::toD0182_$0 = (word)main::toD0182_screen#0
Constant (const word) main::toD0182_$4 = (word)main::toD0182_gfx#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [25] if(true) goto main::@2
if() condition always true - replacing block destination [23] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Resolved ranged next value [176] fillscreen::i#1 ← ++ fillscreen::i#2 to ++
Resolved ranged comparison value [178] if(fillscreen::i#1!=rangelast(0,$3e7)) goto fillscreen::@1 to (number) $3e8
Rewriting conditional comparison [82] if((byte) fire::c#0<=(byte) 2) goto fire::@4
Rewriting conditional comparison [153] if((byte) makecharset::bc#1<=(byte) $3f) goto makecharset::@22
De-inlining pointer[w] to *(pointer+w) [159] *((byte*~) makecharset::$14 + (word~) makecharset::$17) ← (byte) makecharset::b#2
Resolved ranged next value [138] fillscreen::i#1 ← ++ fillscreen::i#2 to ++
Resolved ranged comparison value [140] if(fillscreen::i#1!=rangelast(0,$3e7)) goto fillscreen::@1 to (number) $3e8
Rewriting conditional comparison [64] if((byte) fire::c#0<=(byte) 2) goto fire::@4
Rewriting conditional comparison [118] if((byte) makecharset::bc#1<=(byte) $3f) goto makecharset::@22
De-inlining pointer[w] to *(pointer+w) [123] *((byte*~) makecharset::$14 + (word~) makecharset::$17) ← (byte) makecharset::b#2
Successful SSA optimization Pass2DeInlineWordDerefIdx
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks

View File

@ -258,8 +258,8 @@ Identical Phi Values (byte*) print_char_cursor#14 (byte*) print_line_cursor#1
Identical Phi Values (byte*) print_char_cursor#16 (byte*) print_char_cursor#14
Identical Phi Values (byte*) print_line_cursor#11 (byte*) print_line_cursor#10
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition (bool~) print_str::$0 [6] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
Simple Condition (bool~) print_ln::$1 [19] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1
Simple Condition (bool~) print_str::$0 [4] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
Simple Condition (bool~) print_ln::$1 [13] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#10) goto print_ln::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) print_char_cursor#0 = (byte*) 1024
Constant (const byte*) print_str::str#1 = main::str

Some files were not shown because too many files have changed in this diff Show More