diff --git a/src/main/java/dk/camelot64/kickc/model/VariableReferenceInfos.java b/src/main/java/dk/camelot64/kickc/model/VariableReferenceInfos.java index c9e9e851d..d830a1ecf 100644 --- a/src/main/java/dk/camelot64/kickc/model/VariableReferenceInfos.java +++ b/src/main/java/dk/camelot64/kickc/model/VariableReferenceInfos.java @@ -256,8 +256,31 @@ public class VariableReferenceInfos { */ public boolean isUnused(SymbolVariableRef variableRef) { Collection refs = symbolVarReferences.get(variableRef); - if(refs == null) return true; - return refs.stream().noneMatch(referenceToSymbolVar -> ReferenceToSymbolVar.ReferenceType.USE.equals(referenceToSymbolVar.getReferenceType())); + if(refs == null) + return true; + final boolean noUses = refs.stream().noneMatch(referenceToSymbolVar -> ReferenceToSymbolVar.ReferenceType.USE.equals(referenceToSymbolVar.getReferenceType())); + if(noUses) + return true; + + // Some USEs exits - examine if the variable is DEFINEd in the same statement + for(ReferenceToSymbolVar useRef : refs) { + if(ReferenceToSymbolVar.ReferenceType.USE.equals(useRef.getReferenceType())) { + // Found a USE - examine if it is also a DEFINE + boolean unused = false; + if(useRef instanceof ReferenceInStatement) { + for(ReferenceToSymbolVar defRef : refs) { + if(defRef instanceof ReferenceInStatement && ReferenceToSymbolVar.ReferenceType.DEFINE.equals(defRef.getReferenceType())) { + if(((ReferenceInStatement) defRef).getStatementIdx().equals(((ReferenceInStatement) useRef).getStatementIdx())) + unused = true; + } + } + } + if(!unused) + return false; + } + } + // All USE-references were inside DEFINE-statements - effectively the var is unused! + return true; } /** @@ -279,6 +302,7 @@ public class VariableReferenceInfos { /** * Get the index of the statement defining a variable + * * @param variableRef The variable to look for * @return Index of the defining statement */ @@ -291,14 +315,13 @@ public class VariableReferenceInfos { .filter(referenceToSymbolVar -> ReferenceToSymbolVar.ReferenceType.DEFINE.equals(referenceToSymbolVar.getReferenceType())) .findFirst(); if(refDefine.isPresent()) { - return ((ReferenceInStatement)refDefine.get()).getStatementIdx(); + return ((ReferenceInStatement) refDefine.get()).getStatementIdx(); } } return null; } - /** * Get all statements referencing a variable * diff --git a/src/main/java/dk/camelot64/kickc/passes/PassNEliminateUnusedVars.java b/src/main/java/dk/camelot64/kickc/passes/PassNEliminateUnusedVars.java index c9574d761..2d244e6e5 100644 --- a/src/main/java/dk/camelot64/kickc/passes/PassNEliminateUnusedVars.java +++ b/src/main/java/dk/camelot64/kickc/passes/PassNEliminateUnusedVars.java @@ -4,8 +4,10 @@ import dk.camelot64.kickc.model.ControlFlowBlock; import dk.camelot64.kickc.model.Program; import dk.camelot64.kickc.model.VariableReferenceInfos; import dk.camelot64.kickc.model.statements.*; -import dk.camelot64.kickc.model.symbols.*; -import dk.camelot64.kickc.model.types.SymbolTypeStruct; +import dk.camelot64.kickc.model.symbols.EnumDefinition; +import dk.camelot64.kickc.model.symbols.Procedure; +import dk.camelot64.kickc.model.symbols.StructDefinition; +import dk.camelot64.kickc.model.symbols.Variable; import dk.camelot64.kickc.model.values.LValue; import dk.camelot64.kickc.model.values.StructUnwoundPlaceholder; import dk.camelot64.kickc.model.values.VariableRef; @@ -36,29 +38,12 @@ public class PassNEliminateUnusedVars extends Pass2SsaOptimization { while(stmtIt.hasNext()) { Statement statement = stmtIt.next(); if(statement instanceof StatementAssignment) { - StatementAssignment assignment = (StatementAssignment) statement; - LValue lValue = assignment.getlValue(); - if(lValue instanceof VariableRef && referenceInfos.isUnused((VariableRef) lValue)) { + LValue lValue = ((StatementAssignment) statement).getlValue(); + if(lValue instanceof VariableRef) { Variable variable = getScope().getVariable((VariableRef) lValue); - boolean eliminate = false; - if(variable == null) { - // Already deleted - eliminate = true; - } else if(!variable.isExport()) { - // Not volatile - eliminate = true; - } else if(variable.isStruct()) { - if(assignment.getOperator()==null && assignment.getrValue2() instanceof StructUnwoundPlaceholder) { - eliminate = true; - } - } - if(eliminate) { - if(!pass2 && isReturnValue(variable)) { - // Do not eliminate return variables in pass 1 - continue; - } + if(eliminate(variable, referenceInfos, statement)) { if(pass2 || getLog().isVerbosePass1CreateSsa()) { - getLog().append("Eliminating unused variable " + lValue.toString(getProgram()) + " and assignment " + assignment.toString(getProgram(), false)); + getLog().append("Eliminating unused variable " + lValue.toString(getProgram()) + " and assignment " + statement.toString(getProgram(), false)); } stmtIt.remove(); if(variable != null) { @@ -68,50 +53,47 @@ public class PassNEliminateUnusedVars extends Pass2SsaOptimization { } } } else if(statement instanceof StatementCall) { - StatementCall call = (StatementCall) statement; - LValue lValue = call.getlValue(); - if(lValue instanceof VariableRef && referenceInfos.isUnused((VariableRef) lValue)) { + LValue lValue = ((StatementCall) statement).getlValue(); + if(lValue instanceof VariableRef) { Variable variable = getScope().getVariable((VariableRef) lValue); - if(!variable.isVolatile()) { + if(eliminate(variable, referenceInfos, statement)) { if(pass2 || getLog().isVerbosePass1CreateSsa()) { getLog().append("Eliminating unused variable - keeping the call " + lValue.toString(getProgram())); } if(variable != null) { variable.getScope().remove(variable); } - call.setlValue(null); + ((StatementCall) statement).setlValue(null); modified = true; } } } else if(statement instanceof StatementCallFinalize) { - StatementCallFinalize call = (StatementCallFinalize) statement; - LValue lValue = call.getlValue(); - if(lValue instanceof VariableRef && referenceInfos.isUnused((VariableRef) lValue)) { + LValue lValue = ((StatementCallFinalize) statement).getlValue(); + if(lValue instanceof VariableRef) { Variable variable = getScope().getVariable((VariableRef) lValue); - if(!variable.isVolatile()) { + if(eliminate(variable, referenceInfos, statement)) { if(pass2 || getLog().isVerbosePass1CreateSsa()) { getLog().append("Eliminating unused variable - keeping the call " + lValue.toString(getProgram())); } if(variable != null) { variable.getScope().remove(variable); } - call.setlValue(null); + ((StatementCallFinalize) statement).setlValue(null); modified = true; } } } else if(statement instanceof StatementCallPointer) { - StatementCallPointer call = (StatementCallPointer) statement; - LValue lValue = call.getlValue(); - if(lValue instanceof VariableRef && referenceInfos.isUnused((VariableRef) lValue)) { + LValue lValue = ((StatementCallPointer) statement).getlValue(); + if(lValue instanceof VariableRef) { Variable variable = getScope().getVariable((VariableRef) lValue); - if(!variable.isVolatile()) { + if(eliminate(variable, referenceInfos, statement)) { if(pass2 || getLog().isVerbosePass1CreateSsa()) { getLog().append("Eliminating unused variable - keeping the call " + lValue.toString(getProgram())); } if(variable != null) { variable.getScope().remove(variable); } - call.setlValue(null); + ((StatementCallPointer) statement).setlValue(null); modified = true; } } @@ -121,18 +103,16 @@ public class PassNEliminateUnusedVars extends Pass2SsaOptimization { while(phiVarIt.hasNext()) { StatementPhiBlock.PhiVariable phiVariable = phiVarIt.next(); VariableRef variableRef = phiVariable.getVariable(); - if(referenceInfos.isUnused(variableRef)) { - Variable variable = getScope().getVariable(variableRef); - if(!variable.isVolatile()) { - if(pass2 || getLog().isVerbosePass1CreateSsa()) { - getLog().append("Eliminating unused variable - keeping the phi block " + variableRef.toString(getProgram())); - } - if(variable != null) { - variable.getScope().remove(variable); - } - phiVarIt.remove(); - modified = true; + Variable variable = getScope().getVariable(variableRef); + if(eliminate(variable, referenceInfos, statement)) { + if(pass2 || getLog().isVerbosePass1CreateSsa()) { + getLog().append("Eliminating unused variable - keeping the phi block " + variableRef.toString(getProgram())); } + if(variable != null) { + variable.getScope().remove(variable); + } + phiVarIt.remove(); + modified = true; } } } @@ -140,28 +120,20 @@ public class PassNEliminateUnusedVars extends Pass2SsaOptimization { } for(Variable variable : getScope().getAllVariables(true)) { - if(referenceInfos.isUnused(variable.getRef())) { - if(!variable.isExport() && !variable.isKindPhiMaster()) { - getLog().append("Eliminating unused variable with no statement " + variable.getRef().toString(getProgram())); - variable.getScope().remove(variable); - } + if(eliminate(variable, referenceInfos, null) && !variable.isKindPhiMaster()) { + getLog().append("Eliminating unused variable with no statement " + variable.getRef().toString(getProgram())); + variable.getScope().remove(variable); } } Collection allConstants = getScope().getAllConstants(true); for(Variable constant : allConstants) { - if(!(constant.getScope() instanceof EnumDefinition) && !(constant.getScope() instanceof StructDefinition)) { - if(referenceInfos.isUnused(constant.getRef())) { - if(constant.isExport()) { - // Do not eliminate constants declared as export - continue; - } - if(pass2 || getLog().isVerbosePass1CreateSsa()) { - getLog().append("Eliminating unused constant " + constant.toString(getProgram())); - } - constant.getScope().remove(constant); - modified = true; + if(eliminate(constant, referenceInfos, null)) { + if(pass2 || getLog().isVerbosePass1CreateSsa()) { + getLog().append("Eliminating unused constant " + constant.toString(getProgram())); } + constant.getScope().remove(constant); + modified = true; } } @@ -170,6 +142,40 @@ public class PassNEliminateUnusedVars extends Pass2SsaOptimization { return modified; } + /** + * Is the variable an unused variable that should be eliminated + * + * @param variable The variable + * @param referenceInfos The reference info + * @param statement The statement + * @return true if the variable & statement should be eliminated + */ + private boolean eliminate(Variable variable, VariableReferenceInfos referenceInfos, Statement statement) { + if(variable == null) + // Eliminate if already deleted + return true; + if(variable.getScope() instanceof EnumDefinition || variable.getScope() instanceof StructDefinition) + // Do not eliminate inside enums or structs + return false; + if(!pass2 && isReturnValue(variable)) { + // Do not eliminate return variables in pass 1 + return false; + } + final boolean unused = referenceInfos.isUnused(variable.getRef()); + if(!unused) + // Do not eliminate is not unused + return false; + if(!variable.isExport()) + // Eliminate if unused and not exported + return true; + if(variable.isStruct() && statement instanceof StatementAssignment) { + StatementAssignment assignment = (StatementAssignment) statement; + // Eliminate is a simple assignment of a struct-unwound-placeholder + return assignment.getOperator() == null && assignment.getrValue2() instanceof StructUnwoundPlaceholder; + } + return false; + } + /** * Determines if a variable is the return value for a procedure * diff --git a/src/test/ref/complex/prebob/grid-bobs.log b/src/test/ref/complex/prebob/grid-bobs.log index fe801395f..b69b247f4 100644 --- a/src/test/ref/complex/prebob/grid-bobs.log +++ b/src/test/ref/complex/prebob/grid-bobs.log @@ -3121,6 +3121,7 @@ Simplifying expression containing zero renderBobCleanup::screen#0 in [294] *((by Simplifying expression containing zero PROTO_BOB in [411] *((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 Eliminating unused variable (byte) charsetFindOrAddGlyph::return#0 and assignment [159] (byte) charsetFindOrAddGlyph::return#0 ← (byte) charsetFindOrAddGlyph::glyph_id#11 Eliminating unused constant (const void*) memset::return#2 Eliminating unused constant (const byte) bob_charset_next_id#27 @@ -3151,8 +3152,6 @@ Finalized unsigned number type (byte) $20 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Identical Phi Values (byte**) renderBobCleanupNext#11 (byte**) renderBobCleanupNext#13 -Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [0] (byte*) memset::end#0 ← (const byte*) memset::$2 + (const word) memset::num#0 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 diff --git a/src/test/ref/complex/prebob/vogel-bobs.log b/src/test/ref/complex/prebob/vogel-bobs.log index e5b896bad..833c1bd6b 100644 --- a/src/test/ref/complex/prebob/vogel-bobs.log +++ b/src/test/ref/complex/prebob/vogel-bobs.log @@ -3329,6 +3329,7 @@ Simplifying expression containing zero renderBobCleanup::screen#0 in [361] *((by Simplifying expression containing zero PROTO_BOB in [476] *((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 Eliminating unused variable (byte) bobCharsetFindOrAddGlyph::return#0 and assignment [199] (byte) bobCharsetFindOrAddGlyph::return#0 ← (byte) bobCharsetFindOrAddGlyph::glyph_id#11 Eliminating unused constant (const void*) memset::return#2 Eliminating unused constant (const byte) bob_charset_next_id#27 @@ -3358,8 +3359,6 @@ Finalized unsigned number type (byte) $20 Finalized unsigned number type (byte) 1 Finalized unsigned number type (byte) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions -Identical Phi Values (byte**) renderBobCleanupNext#11 (byte**) renderBobCleanupNext#13 -Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [0] (byte*) memset::end#0 ← (const byte*) memset::$2 + (const word) memset::num#0 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 diff --git a/src/test/ref/duplicate-loop-problem.asm b/src/test/ref/duplicate-loop-problem.asm index 41191cc8f..8c318ada0 100644 --- a/src/test/ref/duplicate-loop-problem.asm +++ b/src/test/ref/duplicate-loop-problem.asm @@ -5,16 +5,13 @@ .pc = $80d "Program" .label DC00 = $dc00 main: { - ldy #0 __b1: - iny - __b2: ldx DC00 txa and #$1f cpx #0 bne __b1 cmp #$1f - beq __b2 + beq __b1 jmp __b1 } diff --git a/src/test/ref/duplicate-loop-problem.cfg b/src/test/ref/duplicate-loop-problem.cfg index 22e4f8787..e66f07ff6 100644 --- a/src/test/ref/duplicate-loop-problem.cfg +++ b/src/test/ref/duplicate-loop-problem.cfg @@ -13,14 +13,13 @@ main: scope:[main] from @1 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@2 main::@3 - [5] (byte) rpc#4 ← phi( main/(byte) 0 main::@2/(byte) rpc#1 main::@3/(byte) rpc#1 ) - [6] (byte) rpc#1 ← ++ (byte) rpc#4 + [5] (byte) key#1 ← *((const byte*) DC00) + [6] (byte~) main::$1 ← (byte) key#1 & (byte) $1f + [7] if((byte) key#1!=(byte) 0) goto main::@2 + to:main::@3 +main::@3: scope:[main] from main::@1 + [8] if((byte~) main::$1==(byte) $1f) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 - [7] (byte) key#1 ← *((const byte*) DC00) - [8] (byte~) main::$1 ← (byte) key#1 & (byte) $1f - [9] if((byte) key#1!=(byte) 0) goto main::@1 - to:main::@3 -main::@3: scope:[main] from main::@2 - [10] if((byte~) main::$1==(byte) $1f) goto main::@2 + [9] phi() to:main::@1 diff --git a/src/test/ref/duplicate-loop-problem.log b/src/test/ref/duplicate-loop-problem.log index 82ccf0df5..2014864a7 100644 --- a/src/test/ref/duplicate-loop-problem.log +++ b/src/test/ref/duplicate-loop-problem.log @@ -1,21 +1,15 @@ +Culled Empty Block (label) main::@1 Culled Empty Block (label) main::@4 CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte) rpc#0 ← (byte) 0 (byte) key#0 ← (byte) 0 to:@1 (void()) main() main: scope:[main] from @1 - (byte) rpc#7 ← phi( @1/(byte) rpc#9 ) - to:main::@1 -main::@1: scope:[main] from main main::@3 - (byte) rpc#4 ← phi( main/(byte) rpc#7 main::@3/(byte) rpc#8 ) - (byte) rpc#1 ← ++ (byte) rpc#4 to:main::@2 -main::@2: scope:[main] from main::@1 main::@2 - (byte) rpc#10 ← phi( main::@1/(byte) rpc#1 main::@2/(byte) rpc#10 ) +main::@2: scope:[main] from main main::@2 main::@3 (byte) key#1 ← *((const byte*) DC00) (bool~) main::$0 ← (byte) key#1 == (number) 0 (number~) main::$1 ← (byte) key#1 & (number) $1f @@ -25,25 +19,19 @@ main::@2: scope:[main] from main::@1 main::@2 to:main::@3 main::@3: scope:[main] from main::@2 (byte) key#6 ← phi( main::@2/(byte) key#1 ) - (byte) rpc#8 ← phi( main::@2/(byte) rpc#10 ) - if(true) goto main::@1 + if(true) goto main::@2 to:main::@return main::@return: scope:[main] from main::@3 (byte) key#4 ← phi( main::@3/(byte) key#6 ) - (byte) rpc#5 ← phi( main::@3/(byte) rpc#8 ) - (byte) rpc#2 ← (byte) rpc#5 (byte) key#2 ← (byte) key#4 return to:@return @1: scope:[] from @begin (byte) key#7 ← phi( @begin/(byte) key#0 ) - (byte) rpc#9 ← phi( @begin/(byte) rpc#0 ) call main to:@2 @2: scope:[] from @1 (byte) key#5 ← phi( @1/(byte) key#2 ) - (byte) rpc#6 ← phi( @1/(byte) rpc#2 ) - (byte) rpc#3 ← (byte) rpc#6 (byte) key#3 ← (byte) key#5 to:@end @end: scope:[] from @2 @@ -68,22 +56,9 @@ SYMBOL TABLE SSA (number~) main::$1 (bool~) main::$2 (bool~) main::$3 -(label) main::@1 (label) main::@2 (label) main::@3 (label) main::@return -(byte) rpc -(byte) rpc#0 -(byte) rpc#1 -(byte) rpc#10 -(byte) rpc#2 -(byte) rpc#3 -(byte) rpc#4 -(byte) rpc#5 -(byte) rpc#6 -(byte) rpc#7 -(byte) rpc#8 -(byte) rpc#9 Adding number conversion cast (unumber) 0 in (bool~) main::$0 ← (byte) key#1 == (number) 0 Adding number conversion cast (unumber) $1f in (number~) main::$1 ← (byte) key#1 & (number) $1f @@ -100,55 +75,47 @@ Finalized unsigned number type (byte) $1f Finalized unsigned number type (byte) $1f Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to byte in (unumber~) main::$1 ← (byte) key#1 & (byte) $1f -Alias (byte) rpc#10 = (byte) rpc#8 (byte) rpc#5 (byte) rpc#2 Alias (byte) key#1 = (byte) key#6 (byte) key#4 (byte) key#2 -Alias (byte) rpc#0 = (byte) rpc#9 Alias (byte) key#0 = (byte) key#7 -Alias (byte) rpc#3 = (byte) rpc#6 Alias (byte) key#3 = (byte) key#5 Successful SSA optimization Pass2AliasElimination -Identical Phi Values (byte) rpc#7 (byte) rpc#0 -Identical Phi Values (byte) rpc#10 (byte) rpc#1 -Identical Phi Values (byte) rpc#3 (byte) rpc#10 Identical Phi Values (byte) key#3 (byte) key#1 Successful SSA optimization Pass2IdenticalPhiElimination -Rewriting && if()-condition to two if()s [10] (bool~) main::$3 ← (bool~) main::$0 && (bool~) main::$2 +Rewriting && if()-condition to two if()s [5] (bool~) main::$3 ← (bool~) main::$0 && (bool~) main::$2 Successful SSA optimization Pass2ConditionalAndOrRewriting -Constant (const byte) rpc#0 = 0 Constant (const byte) key#0 = 0 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [13] if(true) goto main::@1 +if() condition always true - replacing block destination [8] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs Eliminating unused constant (const byte) key#0 Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks -Simple Condition (bool~) main::$0 [6] if((byte) key#1==(byte) 0) goto main::@5 -Simple Condition (bool~) main::$2 [8] if((byte~) main::$1==(byte) $1f) goto main::@2 +Simple Condition (bool~) main::$0 [4] if((byte) key#1==(byte) 0) goto main::@5 +Simple Condition (bool~) main::$2 [6] if((byte~) main::$1==(byte) $1f) goto main::@2 Successful SSA optimization Pass2ConditionalJumpSimplification -Negating conditional jump and destination [6] if((byte) key#1!=(byte) 0) goto main::@3 +Negating conditional jump and destination [4] if((byte) key#1!=(byte) 0) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSequenceImprovement -Inlining constant with var siblings (const byte) rpc#0 -Constant inlined rpc#0 = (byte) 0 -Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @2 Adding NOP phi() at start of @end Adding NOP phi() at start of main +Adding NOP phi() at start of main::@3 CALL GRAPH Calls in [] to main:2 -Created 1 initial phi equivalence classes -Coalesced [12] rpc#11 ← rpc#1 -Coalesced down to 1 phi equivalence classes +Created 0 initial phi equivalence classes +Coalesced down to 0 phi equivalence classes Culled Empty Block (label) @2 -Culled Empty Block (label) main::@3 +Renumbering block main::@2 to main::@1 +Renumbering block main::@3 to main::@2 Renumbering block main::@5 to main::@3 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end Adding NOP phi() at start of main +Adding NOP phi() at start of main::@2 FINAL CONTROL FLOW GRAPH @begin: scope:[] from @@ -166,16 +133,15 @@ main: scope:[main] from @1 [4] phi() to:main::@1 main::@1: scope:[main] from main main::@2 main::@3 - [5] (byte) rpc#4 ← phi( main/(byte) 0 main::@2/(byte) rpc#1 main::@3/(byte) rpc#1 ) - [6] (byte) rpc#1 ← ++ (byte) rpc#4 + [5] (byte) key#1 ← *((const byte*) DC00) + [6] (byte~) main::$1 ← (byte) key#1 & (byte) $1f + [7] if((byte) key#1!=(byte) 0) goto main::@2 + to:main::@3 +main::@3: scope:[main] from main::@1 + [8] if((byte~) main::$1==(byte) $1f) goto main::@1 to:main::@2 main::@2: scope:[main] from main::@1 main::@3 - [7] (byte) key#1 ← *((const byte*) DC00) - [8] (byte~) main::$1 ← (byte) key#1 & (byte) $1f - [9] if((byte) key#1!=(byte) 0) goto main::@1 - to:main::@3 -main::@3: scope:[main] from main::@2 - [10] if((byte~) main::$1==(byte) $1f) goto main::@2 + [9] phi() to:main::@1 @@ -184,21 +150,15 @@ VARIABLE REGISTER WEIGHTS (byte) key#1 151.5 (void()) main() (byte~) main::$1 101.0 -(byte) rpc -(byte) rpc#1 42.6 -(byte) rpc#4 213.0 Initial phi equivalence classes -[ rpc#4 rpc#1 ] Added variable key#1 to live range equivalence class [ key#1 ] Added variable main::$1 to live range equivalence class [ main::$1 ] Complete equivalence classes -[ rpc#4 rpc#1 ] [ key#1 ] [ main::$1 ] -Allocated zp[1]:2 [ rpc#4 rpc#1 ] -Allocated zp[1]:3 [ key#1 ] -Allocated zp[1]:4 [ main::$1 ] +Allocated zp[1]:2 [ key#1 ] +Allocated zp[1]:3 [ main::$1 ] INITIAL ASM Target platform is c64basic / MOS6502X @@ -211,8 +171,7 @@ Target platform is c64basic / MOS6502X .pc = $80d "Program" // Global Constants & labels .label DC00 = $dc00 - .label rpc = 2 - .label key = 3 + .label key = 2 // @begin __bbegin: // [1] phi from @begin to @1 [phi:@begin->@1] @@ -231,58 +190,48 @@ __bend_from___b1: __bend: // main main: { - .label __1 = 4 - // [5] phi from main to main::@1 [phi:main->main::@1] - __b1_from_main: - // [5] phi (byte) rpc#4 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 - lda #0 - sta.z rpc - jmp __b1 - // [5] phi from main::@2 main::@3 to main::@1 [phi:main::@2/main::@3->main::@1] - __b1_from___b2: - __b1_from___b3: - // [5] phi (byte) rpc#4 = (byte) rpc#1 [phi:main::@2/main::@3->main::@1#0] -- register_copy + .label __1 = 3 jmp __b1 // main::@1 __b1: - // [6] (byte) rpc#1 ← ++ (byte) rpc#4 -- vbuz1=_inc_vbuz1 - inc.z rpc - jmp __b2 - // main::@2 - __b2: - // [7] (byte) key#1 ← *((const byte*) DC00) -- vbuz1=_deref_pbuc1 + // [5] (byte) key#1 ← *((const byte*) DC00) -- vbuz1=_deref_pbuc1 lda DC00 sta.z key - // [8] (byte~) main::$1 ← (byte) key#1 & (byte) $1f -- vbuz1=vbuz2_band_vbuc1 + // [6] (byte~) main::$1 ← (byte) key#1 & (byte) $1f -- vbuz1=vbuz2_band_vbuc1 lda #$1f and.z key sta.z __1 - // [9] if((byte) key#1!=(byte) 0) goto main::@1 -- vbuz1_neq_0_then_la1 + // [7] if((byte) key#1!=(byte) 0) goto main::@2 -- vbuz1_neq_0_then_la1 lda.z key cmp #0 - bne __b1_from___b2 + bne __b2_from___b1 jmp __b3 // main::@3 __b3: - // [10] if((byte~) main::$1==(byte) $1f) goto main::@2 -- vbuz1_eq_vbuc1_then_la1 + // [8] if((byte~) main::$1==(byte) $1f) goto main::@1 -- vbuz1_eq_vbuc1_then_la1 lda #$1f cmp.z __1 - beq __b2 - jmp __b1_from___b3 + beq __b1 + // [9] phi from main::@1 main::@3 to main::@2 [phi:main::@1/main::@3->main::@2] + __b2_from___b1: + __b2_from___b3: + jmp __b2 + // main::@2 + __b2: + jmp __b1 } // File Data REGISTER UPLIFT POTENTIAL REGISTERS -Potential registers zp[1]:2 [ rpc#4 rpc#1 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:3 [ key#1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:4 [ main::$1 ] : zp[1]:4 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:2 [ key#1 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:3 [ main::$1 ] : zp[1]:3 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [] 255.6: zp[1]:2 [ rpc#4 rpc#1 ] 151.5: zp[1]:3 [ key#1 ] -Uplift Scope [main] 101: zp[1]:4 [ main::$1 ] +Uplift Scope [] 151.5: zp[1]:2 [ key#1 ] +Uplift Scope [main] 101: zp[1]:3 [ main::$1 ] -Uplifting [] best 2842 combination reg byte y [ rpc#4 rpc#1 ] reg byte x [ key#1 ] -Uplifting [main] best 2442 combination reg byte a [ main::$1 ] +Uplifting [] best 2502 combination reg byte x [ key#1 ] +Uplifting [main] best 2102 combination reg byte a [ main::$1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -312,38 +261,30 @@ __bend_from___b1: __bend: // main main: { - // [5] phi from main to main::@1 [phi:main->main::@1] - __b1_from_main: - // [5] phi (byte) rpc#4 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 - ldy #0 - jmp __b1 - // [5] phi from main::@2 main::@3 to main::@1 [phi:main::@2/main::@3->main::@1] - __b1_from___b2: - __b1_from___b3: - // [5] phi (byte) rpc#4 = (byte) rpc#1 [phi:main::@2/main::@3->main::@1#0] -- register_copy jmp __b1 // main::@1 __b1: - // [6] (byte) rpc#1 ← ++ (byte) rpc#4 -- vbuyy=_inc_vbuyy - iny - jmp __b2 - // main::@2 - __b2: - // [7] (byte) key#1 ← *((const byte*) DC00) -- vbuxx=_deref_pbuc1 + // [5] (byte) key#1 ← *((const byte*) DC00) -- vbuxx=_deref_pbuc1 ldx DC00 - // [8] (byte~) main::$1 ← (byte) key#1 & (byte) $1f -- vbuaa=vbuxx_band_vbuc1 + // [6] (byte~) main::$1 ← (byte) key#1 & (byte) $1f -- vbuaa=vbuxx_band_vbuc1 txa and #$1f - // [9] if((byte) key#1!=(byte) 0) goto main::@1 -- vbuxx_neq_0_then_la1 + // [7] if((byte) key#1!=(byte) 0) goto main::@2 -- vbuxx_neq_0_then_la1 cpx #0 - bne __b1_from___b2 + bne __b2_from___b1 jmp __b3 // main::@3 __b3: - // [10] if((byte~) main::$1==(byte) $1f) goto main::@2 -- vbuaa_eq_vbuc1_then_la1 + // [8] if((byte~) main::$1==(byte) $1f) goto main::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #$1f - beq __b2 - jmp __b1_from___b3 + beq __b1 + // [9] phi from main::@1 main::@3 to main::@2 [phi:main::@1/main::@3->main::@2] + __b2_from___b1: + __b2_from___b3: + jmp __b2 + // main::@2 + __b2: + jmp __b1 } // File Data @@ -351,29 +292,28 @@ ASSEMBLER OPTIMIZATIONS Removing instruction jmp __b1 Removing instruction jmp __bend Removing instruction jmp __b1 -Removing instruction jmp __b2 Removing instruction jmp __b3 +Removing instruction jmp __b2 Succesful ASM optimization Pass5NextJumpElimination Replacing label __bbegin with __b1 -Replacing label __b1_from___b2 with __b1 -Replacing label __b1_from___b3 with __b1 +Replacing label __b2_from___b1 with __b2 Removing instruction __bbegin: Removing instruction __b1_from___bbegin: Removing instruction main_from___b1: Removing instruction __bend_from___b1: -Removing instruction __b1_from___b2: -Removing instruction __b1_from___b3: +Removing instruction __b2_from___b1: +Removing instruction __b2_from___b3: Succesful ASM optimization Pass5RedundantLabelElimination Removing instruction __bend: -Removing instruction __b1_from_main: Removing instruction __b3: Succesful ASM optimization Pass5UnusedLabelElimination Updating BasicUpstart to call main directly Removing instruction jsr main Succesful ASM optimization Pass5SkipBegin -Removing instruction jmp __b1 -Succesful ASM optimization Pass5NextJumpElimination +Skipping double jump to __b1 in bne __b2 +Succesful ASM optimization Pass5DoubleJumpElimination Removing instruction __b1: +Removing instruction __b2: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE @@ -388,17 +328,13 @@ FINAL SYMBOL TABLE (label) main::@1 (label) main::@2 (label) main::@3 -(byte) rpc -(byte) rpc#1 reg byte y 42.6 -(byte) rpc#4 reg byte y 213.0 -reg byte y [ rpc#4 rpc#1 ] reg byte x [ key#1 ] reg byte a [ main::$1 ] FINAL ASSEMBLER -Score: 2040 +Score: 1730 // File Comments // Duplicate Loop Problem from Richard-William Loerakker @@ -418,33 +354,25 @@ Score: 2040 // @end // main main: { - // [5] phi from main to main::@1 [phi:main->main::@1] - // [5] phi (byte) rpc#4 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 - ldy #0 - // [5] phi from main::@2 main::@3 to main::@1 [phi:main::@2/main::@3->main::@1] - // [5] phi (byte) rpc#4 = (byte) rpc#1 [phi:main::@2/main::@3->main::@1#0] -- register_copy // main::@1 __b1: - // rpc++; - // [6] (byte) rpc#1 ← ++ (byte) rpc#4 -- vbuyy=_inc_vbuyy - iny - // main::@2 - __b2: // key = *DC00 - // [7] (byte) key#1 ← *((const byte*) DC00) -- vbuxx=_deref_pbuc1 + // [5] (byte) key#1 ← *((const byte*) DC00) -- vbuxx=_deref_pbuc1 ldx DC00 // key & %00011111 - // [8] (byte~) main::$1 ← (byte) key#1 & (byte) $1f -- vbuaa=vbuxx_band_vbuc1 + // [6] (byte~) main::$1 ← (byte) key#1 & (byte) $1f -- vbuaa=vbuxx_band_vbuc1 txa and #$1f // while(key == 0 && ((key & %00011111) == %00011111)) - // [9] if((byte) key#1!=(byte) 0) goto main::@1 -- vbuxx_neq_0_then_la1 + // [7] if((byte) key#1!=(byte) 0) goto main::@2 -- vbuxx_neq_0_then_la1 cpx #0 bne __b1 // main::@3 - // [10] if((byte~) main::$1==(byte) $1f) goto main::@2 -- vbuaa_eq_vbuc1_then_la1 + // [8] if((byte~) main::$1==(byte) $1f) goto main::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #$1f - beq __b2 + beq __b1 + // [9] phi from main::@1 main::@3 to main::@2 [phi:main::@1/main::@3->main::@2] + // main::@2 jmp __b1 } // File Data diff --git a/src/test/ref/duplicate-loop-problem.sym b/src/test/ref/duplicate-loop-problem.sym index ae88e76e1..143b384c2 100644 --- a/src/test/ref/duplicate-loop-problem.sym +++ b/src/test/ref/duplicate-loop-problem.sym @@ -9,10 +9,6 @@ (label) main::@1 (label) main::@2 (label) main::@3 -(byte) rpc -(byte) rpc#1 reg byte y 42.6 -(byte) rpc#4 reg byte y 213.0 -reg byte y [ rpc#4 rpc#1 ] reg byte x [ key#1 ] reg byte a [ main::$1 ] diff --git a/src/test/ref/inline-asm-param.asm b/src/test/ref/inline-asm-param.asm index f0416aec1..cd880d438 100644 --- a/src/test/ref/inline-asm-param.asm +++ b/src/test/ref/inline-asm-param.asm @@ -3,14 +3,12 @@ .pc = $80d "Program" .label SCREEN = $400 main: { - ldy #0 - ldx #'a' + ldx #0 __b1: lda #'a' sta SCREEN inx - iny - cpy #4 + cpx #4 bne __b1 rts } diff --git a/src/test/ref/inline-asm-param.cfg b/src/test/ref/inline-asm-param.cfg index 1508adf2e..60933c923 100644 --- a/src/test/ref/inline-asm-param.cfg +++ b/src/test/ref/inline-asm-param.cfg @@ -14,12 +14,10 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte) 0 main::@1/(byte) main::i#1 ) - [5] (byte) main::a#2 ← phi( main/(byte) 'a' main::@1/(byte) main::a#1 ) asm { lda#'a' staSCREEN } - [7] (byte) main::a#1 ← ++ (byte) main::a#2 - [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte) 4) goto main::@1 + [7] (byte) main::i#1 ← ++ (byte) main::i#2 + [8] if((byte) main::i#1!=(byte) 4) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 - [10] return + [9] return to:@return diff --git a/src/test/ref/inline-asm-param.log b/src/test/ref/inline-asm-param.log index 23f51cb2a..28fb4b914 100644 --- a/src/test/ref/inline-asm-param.log +++ b/src/test/ref/inline-asm-param.log @@ -7,14 +7,11 @@ CONTROL FLOW GRAPH SSA (void()) main() main: scope:[main] from @1 - (byte) main::a#0 ← (byte) 'a' (byte) main::i#0 ← (byte) 0 to:main::@1 main::@1: scope:[main] from main main::@1 (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 ) - (byte) main::a#2 ← phi( main/(byte) main::a#0 main::@1/(byte) main::a#1 ) asm { lda#'a' staSCREEN } - (byte) main::a#1 ← ++ (byte) main::a#2 (byte) main::i#1 ← (byte) main::i#2 + rangenext(0,3) (bool~) main::$0 ← (byte) main::i#1 != rangelast(0,3) if((bool~) main::$0) goto main::@1 @@ -39,10 +36,6 @@ SYMBOL TABLE SSA (bool~) main::$0 (label) main::@1 (label) main::@return -(byte) main::a -(byte) main::a#0 -(byte) main::a#1 -(byte) main::a#2 (byte) main::i (byte) main::i#0 (byte) main::i#1 @@ -50,22 +43,19 @@ SYMBOL TABLE SSA Simplifying constant pointer cast (byte*) 1024 Successful SSA optimization PassNCastSimplification -Simple Condition (bool~) main::$0 [7] if((byte) main::i#1!=rangelast(0,3)) goto main::@1 +Simple Condition (bool~) main::$0 [5] if((byte) main::i#1!=rangelast(0,3)) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Constant (const byte) main::a#0 = 'a' Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -Resolved ranged next value [5] main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value [7] if(main::i#1!=rangelast(0,3)) goto main::@1 to (number) 4 +Resolved ranged next value [3] main::i#1 ← ++ main::i#2 to ++ +Resolved ranged comparison value [5] if(main::i#1!=rangelast(0,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 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 4 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inlining constant with var siblings (const byte) main::a#0 Inlining constant with var siblings (const byte) main::i#0 -Constant inlined main::a#0 = (byte) 'a' Constant inlined main::i#0 = (byte) 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting main::@3(between main::@1 and main::@1) @@ -77,10 +67,9 @@ Adding NOP phi() at start of main CALL GRAPH Calls in [] to main:2 -Created 2 initial phi equivalence classes -Coalesced [12] main::a#3 ← main::a#1 -Coalesced [13] main::i#3 ← main::i#1 -Coalesced down to 2 phi equivalence classes +Created 1 initial phi equivalence classes +Coalesced [11] main::i#3 ← main::i#1 +Coalesced down to 1 phi equivalence classes Culled Empty Block (label) @2 Culled Empty Block (label) main::@3 Adding NOP phi() at start of @begin @@ -105,34 +94,26 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@1 [5] (byte) main::i#2 ← phi( main/(byte) 0 main::@1/(byte) main::i#1 ) - [5] (byte) main::a#2 ← phi( main/(byte) 'a' main::@1/(byte) main::a#1 ) asm { lda#'a' staSCREEN } - [7] (byte) main::a#1 ← ++ (byte) main::a#2 - [8] (byte) main::i#1 ← ++ (byte) main::i#2 - [9] if((byte) main::i#1!=(byte) 4) goto main::@1 + [7] (byte) main::i#1 ← ++ (byte) main::i#2 + [8] if((byte) main::i#1!=(byte) 4) goto main::@1 to:main::@return main::@return: scope:[main] from main::@1 - [10] return + [9] return to:@return VARIABLE REGISTER WEIGHTS (void()) main() -(byte) main::a -(byte) main::a#1 7.333333333333333 -(byte) main::a#2 11.0 (byte) main::i (byte) main::i#1 16.5 -(byte) main::i#2 7.333333333333333 +(byte) main::i#2 11.0 Initial phi equivalence classes -[ main::a#2 main::a#1 ] [ main::i#2 main::i#1 ] Complete equivalence classes -[ main::a#2 main::a#1 ] [ main::i#2 main::i#1 ] -Allocated zp[1]:2 [ main::a#2 main::a#1 ] -Allocated zp[1]:3 [ main::i#2 main::i#1 ] +Allocated zp[1]:2 [ main::i#2 main::i#1 ] INITIAL ASM Target platform is c64basic / MOS6502X @@ -161,57 +142,48 @@ __bend_from___b1: __bend: // main main: { - .label a = 2 - .label i = 3 + .label i = 2 // [5] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i - // [5] phi (byte) main::a#2 = (byte) 'a' [phi:main->main::@1#1] -- vbuz1=vbuc1 - lda #'a' - sta.z a jmp __b1 // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] __b1_from___b1: // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy - // [5] phi (byte) main::a#2 = (byte) main::a#1 [phi:main::@1->main::@1#1] -- register_copy jmp __b1 // main::@1 __b1: // asm { lda#'a' staSCREEN } lda #'a' sta SCREEN - // [7] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuz1=_inc_vbuz1 - inc.z a - // [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 + // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 inc.z i - // [9] if((byte) main::i#1!=(byte) 4) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 + // [8] if((byte) main::i#1!=(byte) 4) goto main::@1 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z i bne __b1_from___b1 jmp __breturn // main::@return __breturn: - // [10] return + // [9] return rts } // File Data REGISTER UPLIFT POTENTIAL REGISTERS Statement asm { lda#'a' staSCREEN } always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::a#2 main::a#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:3 [ main::i#2 main::i#1 ] +Removing always clobbered register reg byte a as potential for zp[1]:2 [ main::i#2 main::i#1 ] Statement asm { lda#'a' staSCREEN } always clobbers reg byte a -Potential registers zp[1]:2 [ main::a#2 main::a#1 ] : zp[1]:2 , reg byte x , reg byte y , -Potential registers zp[1]:3 [ main::i#2 main::i#1 ] : zp[1]:3 , reg byte x , reg byte y , +Potential registers zp[1]:2 [ main::i#2 main::i#1 ] : zp[1]:2 , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [main] 23.83: zp[1]:3 [ main::i#2 main::i#1 ] 18.33: zp[1]:2 [ main::a#2 main::a#1 ] +Uplift Scope [main] 27.5: zp[1]:2 [ main::i#2 main::i#1 ] Uplift Scope [] -Uplifting [main] best 293 combination reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::a#2 main::a#1 ] -Uplifting [] best 293 combination +Uplifting [main] best 253 combination reg byte x [ main::i#2 main::i#1 ] +Uplifting [] best 253 combination ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -241,32 +213,27 @@ __bend: main: { // [5] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: - // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 - ldy #0 - // [5] phi (byte) main::a#2 = (byte) 'a' [phi:main->main::@1#1] -- vbuxx=vbuc1 - ldx #'a' + // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 + ldx #0 jmp __b1 // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] __b1_from___b1: // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy - // [5] phi (byte) main::a#2 = (byte) main::a#1 [phi:main::@1->main::@1#1] -- register_copy jmp __b1 // main::@1 __b1: // asm { lda#'a' staSCREEN } lda #'a' sta SCREEN - // [7] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuxx=_inc_vbuxx + // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx inx - // [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuyy=_inc_vbuyy - iny - // [9] if((byte) main::i#1!=(byte) 4) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 - cpy #4 + // [8] if((byte) main::i#1!=(byte) 4) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + cpx #4 bne __b1_from___b1 jmp __breturn // main::@return __breturn: - // [10] return + // [9] return rts } // File Data @@ -305,19 +272,15 @@ FINAL SYMBOL TABLE (void()) main() (label) main::@1 (label) main::@return -(byte) main::a -(byte) main::a#1 reg byte x 7.333333333333333 -(byte) main::a#2 reg byte x 11.0 (byte) main::i -(byte) main::i#1 reg byte y 16.5 -(byte) main::i#2 reg byte y 7.333333333333333 +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 -reg byte x [ main::a#2 main::a#1 ] -reg byte y [ main::i#2 main::i#1 ] +reg byte x [ main::i#2 main::i#1 ] FINAL ASSEMBLER -Score: 191 +Score: 151 // File Comments // Upstart @@ -336,31 +299,25 @@ Score: 191 // main main: { // [5] phi from main to main::@1 [phi:main->main::@1] - // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1 - ldy #0 - // [5] phi (byte) main::a#2 = (byte) 'a' [phi:main->main::@1#1] -- vbuxx=vbuc1 - ldx #'a' + // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 + ldx #0 // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1] // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy - // [5] phi (byte) main::a#2 = (byte) main::a#1 [phi:main::@1->main::@1#1] -- register_copy // main::@1 __b1: // asm // asm { lda#'a' staSCREEN } lda #'a' sta SCREEN - // a++; - // [7] (byte) main::a#1 ← ++ (byte) main::a#2 -- vbuxx=_inc_vbuxx - inx // for( byte i:0..3) - // [8] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuyy=_inc_vbuyy - iny - // [9] if((byte) main::i#1!=(byte) 4) goto main::@1 -- vbuyy_neq_vbuc1_then_la1 - cpy #4 + // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx + inx + // [8] if((byte) main::i#1!=(byte) 4) goto main::@1 -- vbuxx_neq_vbuc1_then_la1 + cpx #4 bne __b1 // main::@return // } - // [10] return + // [9] return rts } // File Data diff --git a/src/test/ref/inline-asm-param.sym b/src/test/ref/inline-asm-param.sym index 8409fdea0..7a2f2552d 100644 --- a/src/test/ref/inline-asm-param.sym +++ b/src/test/ref/inline-asm-param.sym @@ -5,12 +5,8 @@ (void()) main() (label) main::@1 (label) main::@return -(byte) main::a -(byte) main::a#1 reg byte x 7.333333333333333 -(byte) main::a#2 reg byte x 11.0 (byte) main::i -(byte) main::i#1 reg byte y 16.5 -(byte) main::i#2 reg byte y 7.333333333333333 +(byte) main::i#1 reg byte x 16.5 +(byte) main::i#2 reg byte x 11.0 -reg byte x [ main::a#2 main::a#1 ] -reg byte y [ main::i#2 main::i#1 ] +reg byte x [ main::i#2 main::i#1 ] diff --git a/src/test/ref/no-recursion-heavy.asm b/src/test/ref/no-recursion-heavy.asm index 0799698d9..591ddf6a4 100644 --- a/src/test/ref/no-recursion-heavy.asm +++ b/src/test/ref/no-recursion-heavy.asm @@ -2,14 +2,12 @@ :BasicUpstart(main) .pc = $80d "Program" .label ba = 2 - .label be = 6 .label bb = 3 .label bb_1 = 4 .label bc = 5 main: { lda #0 sta.z ba - sta.z be tay tax sta.z bb @@ -254,46 +252,14 @@ fb: { } fc: { cmp #0 - bne __b1 - inc.z be - __b1: cmp #1 - bne __b2 - inc.z be - __b2: cmp #2 - bne __b3 - inc.z be - __b3: cmp #3 - bne __b4 - inc.z be - __b4: cmp #4 - bne __b5 - inc.z be - __b5: cmp #5 - bne __b6 - inc.z be - __b6: cmp #6 - bne __b7 - inc.z be - __b7: cmp #7 - bne __b8 - inc.z be - __b8: cmp #8 - bne __b9 - inc.z be - __b9: cmp #9 - bne __b19 - lda #0 - sta.z be - rts - __b19: rts } diff --git a/src/test/ref/no-recursion-heavy.cfg b/src/test/ref/no-recursion-heavy.cfg index b17b99a9f..a0caf66f1 100644 --- a/src/test/ref/no-recursion-heavy.cfg +++ b/src/test/ref/no-recursion-heavy.cfg @@ -14,7 +14,6 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@3 [5] (byte) ba#17 ← phi( main/(byte) 0 main::@3/(byte) ba#1 ) - [5] (byte) be#2 ← phi( main/(byte) 0 main::@3/(byte) be#13 ) [5] (byte) bd#2 ← phi( main/(byte) 0 main::@3/(byte) bd#13 ) [5] (byte) bc#2 ← phi( main/(byte) 0 main::@3/(byte) bc#13 ) [5] (byte) bb#16 ← phi( main/(byte) 0 main::@3/(byte) bb#13 ) @@ -37,7 +36,6 @@ f0::@10: scope:[f0] from f0 [12] call fa to:f0::@1 f0::@1: scope:[f0] from f0 f0::@10 - [13] (byte) be#142 ← phi( f0/(byte) be#2 f0::@10/(byte) be#24 ) [13] (byte) bd#129 ← phi( f0/(byte) bd#2 f0::@10/(byte) bd#24 ) [13] (byte) bc#63 ← phi( f0/(byte) bc#2 f0::@10/(byte) bc#24 ) [13] (byte) bb#18 ← phi( f0/(byte) bb#16 f0::@10/(byte) bb#3 ) @@ -49,7 +47,6 @@ f0::@11: scope:[f0] from f0::@1 [17] call fa to:f0::@2 f0::@2: scope:[f0] from f0::@1 f0::@11 - [18] (byte) be#143 ← phi( f0::@1/(byte) be#142 f0::@11/(byte) be#24 ) [18] (byte) bd#130 ← phi( f0::@1/(byte) bd#129 f0::@11/(byte) bd#24 ) [18] (byte) bc#64 ← phi( f0::@1/(byte) bc#63 f0::@11/(byte) bc#24 ) [18] (byte) bb#19 ← phi( f0::@1/(byte) bb#18 f0::@11/(byte) bb#4 ) @@ -61,7 +58,6 @@ f0::@12: scope:[f0] from f0::@2 [22] call fa to:f0::@3 f0::@3: scope:[f0] from f0::@12 f0::@2 - [23] (byte) be#144 ← phi( f0::@2/(byte) be#143 f0::@12/(byte) be#24 ) [23] (byte) bd#131 ← phi( f0::@2/(byte) bd#130 f0::@12/(byte) bd#24 ) [23] (byte) bc#65 ← phi( f0::@2/(byte) bc#64 f0::@12/(byte) bc#24 ) [23] (byte) bb#20 ← phi( f0::@2/(byte) bb#19 f0::@12/(byte) bb#5 ) @@ -73,7 +69,6 @@ f0::@13: scope:[f0] from f0::@3 [27] call fa to:f0::@4 f0::@4: scope:[f0] from f0::@13 f0::@3 - [28] (byte) be#100 ← phi( f0::@13/(byte) be#24 f0::@3/(byte) be#144 ) [28] (byte) bd#132 ← phi( f0::@13/(byte) bd#24 f0::@3/(byte) bd#131 ) [28] (byte) bc#66 ← phi( f0::@13/(byte) bc#24 f0::@3/(byte) bc#65 ) [28] (byte) bb#21 ← phi( f0::@13/(byte) bb#6 f0::@3/(byte) bb#20 ) @@ -85,7 +80,6 @@ f0::@14: scope:[f0] from f0::@4 [32] call fa to:f0::@5 f0::@5: scope:[f0] from f0::@14 f0::@4 - [33] (byte) be#101 ← phi( f0::@14/(byte) be#24 f0::@4/(byte) be#100 ) [33] (byte) bd#133 ← phi( f0::@14/(byte) bd#24 f0::@4/(byte) bd#132 ) [33] (byte) bc#100 ← phi( f0::@14/(byte) bc#24 f0::@4/(byte) bc#66 ) [33] (byte) bb#22 ← phi( f0::@14/(byte) bb#66 f0::@4/(byte) bb#21 ) @@ -97,7 +91,6 @@ f0::@15: scope:[f0] from f0::@5 [37] call fa to:f0::@6 f0::@6: scope:[f0] from f0::@15 f0::@5 - [38] (byte) be#102 ← phi( f0::@15/(byte) be#24 f0::@5/(byte) be#101 ) [38] (byte) bd#134 ← phi( f0::@15/(byte) bd#24 f0::@5/(byte) bd#133 ) [38] (byte) bc#101 ← phi( f0::@15/(byte) bc#24 f0::@5/(byte) bc#100 ) [38] (byte) bb#23 ← phi( f0::@15/(byte) bb#67 f0::@5/(byte) bb#22 ) @@ -109,7 +102,6 @@ f0::@16: scope:[f0] from f0::@6 [42] call fa to:f0::@7 f0::@7: scope:[f0] from f0::@16 f0::@6 - [43] (byte) be#103 ← phi( f0::@16/(byte) be#24 f0::@6/(byte) be#102 ) [43] (byte) bd#135 ← phi( f0::@16/(byte) bd#24 f0::@6/(byte) bd#134 ) [43] (byte) bc#102 ← phi( f0::@16/(byte) bc#24 f0::@6/(byte) bc#101 ) [43] (byte) bb#24 ← phi( f0::@16/(byte) bb#68 f0::@6/(byte) bb#23 ) @@ -121,7 +113,6 @@ f0::@17: scope:[f0] from f0::@7 [47] call fa to:f0::@8 f0::@8: scope:[f0] from f0::@17 f0::@7 - [48] (byte) be#104 ← phi( f0::@17/(byte) be#24 f0::@7/(byte) be#103 ) [48] (byte) bd#136 ← phi( f0::@17/(byte) bd#24 f0::@7/(byte) bd#135 ) [48] (byte) bc#103 ← phi( f0::@17/(byte) bc#24 f0::@7/(byte) bc#102 ) [48] (byte) bb#25 ← phi( f0::@17/(byte) bb#10 f0::@7/(byte) bb#24 ) @@ -133,7 +124,6 @@ f0::@18: scope:[f0] from f0::@8 [52] call fa to:f0::@9 f0::@9: scope:[f0] from f0::@18 f0::@8 - [53] (byte) be#105 ← phi( f0::@18/(byte) be#24 f0::@8/(byte) be#104 ) [53] (byte) bd#93 ← phi( f0::@18/(byte) bd#24 f0::@8/(byte) bd#136 ) [53] (byte) bc#71 ← phi( f0::@18/(byte) bc#24 f0::@8/(byte) bc#103 ) [53] (byte) bb#50 ← phi( f0::@18/(byte) bb#11 f0::@8/(byte) bb#25 ) @@ -144,7 +134,6 @@ f0::@19: scope:[f0] from f0::@9 [56] call fa to:f0::@return f0::@return: scope:[f0] from f0::@19 f0::@9 - [57] (byte) be#13 ← phi( f0::@19/(byte) be#24 f0::@9/(byte) be#105 ) [57] (byte) bd#13 ← phi( f0::@19/(byte) bd#24 f0::@9/(byte) bd#93 ) [57] (byte) bc#13 ← phi( f0::@19/(byte) bc#24 f0::@9/(byte) bc#71 ) [57] (byte) bb#13 ← phi( f0::@19/(byte) 0 f0::@9/(byte) bb#50 ) @@ -153,7 +142,6 @@ f0::@return: scope:[f0] from f0::@19 f0::@9 (void()) fa() fa: scope:[fa] from f0::@10 f0::@11 f0::@12 f0::@13 f0::@14 f0::@15 f0::@16 f0::@17 f0::@18 f0::@19 - [59] (byte) be#107 ← phi( f0::@10/(byte) be#2 f0::@11/(byte) be#142 f0::@12/(byte) be#143 f0::@13/(byte) be#144 f0::@14/(byte) be#100 f0::@15/(byte) be#101 f0::@16/(byte) be#102 f0::@17/(byte) be#103 f0::@18/(byte) be#104 f0::@19/(byte) be#105 ) [59] (byte) bd#137 ← phi( f0::@10/(byte) bd#2 f0::@11/(byte) bd#129 f0::@12/(byte) bd#130 f0::@13/(byte) bd#131 f0::@14/(byte) bd#132 f0::@15/(byte) bd#133 f0::@16/(byte) bd#134 f0::@17/(byte) bd#135 f0::@18/(byte) bd#136 f0::@19/(byte) bd#93 ) [59] (byte) bc#39 ← phi( f0::@10/(byte) bc#2 f0::@11/(byte) bc#63 f0::@12/(byte) bc#64 f0::@13/(byte) bc#65 f0::@14/(byte) bc#66 f0::@15/(byte) bc#100 f0::@16/(byte) bc#101 f0::@17/(byte) bc#102 f0::@18/(byte) bc#103 f0::@19/(byte) bc#71 ) [59] (byte) bb#27 ← phi( f0::@10/(byte) bb#100 f0::@11/(byte) bb#101 f0::@12/(byte) bb#102 f0::@13/(byte) bb#103 f0::@14/(byte) bb#104 f0::@15/(byte) bb#105 f0::@16/(byte) bb#106 f0::@17/(byte) bb#107 f0::@18/(byte) bb#108 f0::@19/(byte) 0 ) @@ -165,7 +153,6 @@ fa::@10: scope:[fa] from fa [63] call fb to:fa::@1 fa::@1: scope:[fa] from fa fa::@10 - [64] (byte) be#108 ← phi( fa/(byte) be#107 fa::@10/(byte) be#35 ) [64] (byte) bd#138 ← phi( fa/(byte) bd#137 fa::@10/(byte) bd#35 ) [64] (byte) bc#40 ← phi( fa/(byte) bc#39 fa::@10/(byte) bc#104 ) [65] if((byte) bb#27!=(byte) 1) goto fa::@2 @@ -176,7 +163,6 @@ fa::@11: scope:[fa] from fa::@1 [68] call fb to:fa::@2 fa::@2: scope:[fa] from fa::@1 fa::@11 - [69] (byte) be#109 ← phi( fa::@1/(byte) be#108 fa::@11/(byte) be#35 ) [69] (byte) bd#139 ← phi( fa::@1/(byte) bd#138 fa::@11/(byte) bd#35 ) [69] (byte) bc#41 ← phi( fa::@1/(byte) bc#40 fa::@11/(byte) bc#105 ) [70] if((byte) bb#27!=(byte) 2) goto fa::@3 @@ -187,7 +173,6 @@ fa::@12: scope:[fa] from fa::@2 [73] call fb to:fa::@3 fa::@3: scope:[fa] from fa::@12 fa::@2 - [74] (byte) be#110 ← phi( fa::@2/(byte) be#109 fa::@12/(byte) be#35 ) [74] (byte) bd#140 ← phi( fa::@2/(byte) bd#139 fa::@12/(byte) bd#35 ) [74] (byte) bc#42 ← phi( fa::@2/(byte) bc#41 fa::@12/(byte) bc#106 ) [75] if((byte) bb#27!=(byte) 3) goto fa::@4 @@ -198,7 +183,6 @@ fa::@13: scope:[fa] from fa::@3 [78] call fb to:fa::@4 fa::@4: scope:[fa] from fa::@13 fa::@3 - [79] (byte) be#111 ← phi( fa::@13/(byte) be#35 fa::@3/(byte) be#110 ) [79] (byte) bd#141 ← phi( fa::@13/(byte) bd#35 fa::@3/(byte) bd#140 ) [79] (byte) bc#43 ← phi( fa::@13/(byte) bc#107 fa::@3/(byte) bc#42 ) [80] if((byte) bb#27!=(byte) 4) goto fa::@5 @@ -209,7 +193,6 @@ fa::@14: scope:[fa] from fa::@4 [83] call fb to:fa::@5 fa::@5: scope:[fa] from fa::@14 fa::@4 - [84] (byte) be#112 ← phi( fa::@14/(byte) be#35 fa::@4/(byte) be#111 ) [84] (byte) bd#100 ← phi( fa::@14/(byte) bd#35 fa::@4/(byte) bd#141 ) [84] (byte) bc#44 ← phi( fa::@14/(byte) bc#108 fa::@4/(byte) bc#43 ) [85] if((byte) bb#27!=(byte) 5) goto fa::@6 @@ -220,7 +203,6 @@ fa::@15: scope:[fa] from fa::@5 [88] call fb to:fa::@6 fa::@6: scope:[fa] from fa::@15 fa::@5 - [89] (byte) be#113 ← phi( fa::@15/(byte) be#35 fa::@5/(byte) be#112 ) [89] (byte) bd#101 ← phi( fa::@15/(byte) bd#35 fa::@5/(byte) bd#100 ) [89] (byte) bc#45 ← phi( fa::@15/(byte) bc#109 fa::@5/(byte) bc#44 ) [90] if((byte) bb#27!=(byte) 6) goto fa::@7 @@ -231,7 +213,6 @@ fa::@16: scope:[fa] from fa::@6 [93] call fb to:fa::@7 fa::@7: scope:[fa] from fa::@16 fa::@6 - [94] (byte) be#114 ← phi( fa::@16/(byte) be#35 fa::@6/(byte) be#113 ) [94] (byte) bd#102 ← phi( fa::@16/(byte) bd#35 fa::@6/(byte) bd#101 ) [94] (byte) bc#46 ← phi( fa::@16/(byte) bc#110 fa::@6/(byte) bc#45 ) [95] if((byte) bb#27!=(byte) 7) goto fa::@8 @@ -242,7 +223,6 @@ fa::@17: scope:[fa] from fa::@7 [98] call fb to:fa::@8 fa::@8: scope:[fa] from fa::@17 fa::@7 - [99] (byte) be#115 ← phi( fa::@17/(byte) be#35 fa::@7/(byte) be#114 ) [99] (byte) bd#103 ← phi( fa::@17/(byte) bd#35 fa::@7/(byte) bd#102 ) [99] (byte) bc#47 ← phi( fa::@17/(byte) bc#111 fa::@7/(byte) bc#46 ) [100] if((byte) bb#27!=(byte) 8) goto fa::@9 @@ -253,7 +233,6 @@ fa::@18: scope:[fa] from fa::@8 [103] call fb to:fa::@9 fa::@9: scope:[fa] from fa::@18 fa::@8 - [104] (byte) be#116 ← phi( fa::@18/(byte) be#35 fa::@8/(byte) be#115 ) [104] (byte) bd#104 ← phi( fa::@18/(byte) bd#35 fa::@8/(byte) bd#103 ) [104] (byte) bc#83 ← phi( fa::@18/(byte) bc#112 fa::@8/(byte) bc#47 ) [105] if((byte) bb#27!=(byte) 9) goto fa::@return @@ -263,7 +242,6 @@ fa::@19: scope:[fa] from fa::@9 [107] call fb to:fa::@return fa::@return: scope:[fa] from fa::@19 fa::@9 - [108] (byte) be#24 ← phi( fa::@19/(byte) be#35 fa::@9/(byte) be#116 ) [108] (byte) bd#24 ← phi( fa::@19/(byte) bd#35 fa::@9/(byte) bd#104 ) [108] (byte) bc#24 ← phi( fa::@19/(byte) 0 fa::@9/(byte) bc#83 ) [109] return @@ -271,7 +249,6 @@ fa::@return: scope:[fa] from fa::@19 fa::@9 (void()) fb() fb: scope:[fb] from fa::@10 fa::@11 fa::@12 fa::@13 fa::@14 fa::@15 fa::@16 fa::@17 fa::@18 fa::@19 - [110] (byte) be#118 ← phi( fa::@10/(byte) be#107 fa::@11/(byte) be#108 fa::@12/(byte) be#109 fa::@13/(byte) be#110 fa::@14/(byte) be#111 fa::@15/(byte) be#112 fa::@16/(byte) be#113 fa::@17/(byte) be#114 fa::@18/(byte) be#115 fa::@19/(byte) be#116 ) [110] (byte) bd#106 ← phi( fa::@10/(byte) bd#137 fa::@11/(byte) bd#138 fa::@12/(byte) bd#139 fa::@13/(byte) bd#140 fa::@14/(byte) bd#141 fa::@15/(byte) bd#100 fa::@16/(byte) bd#101 fa::@17/(byte) bd#102 fa::@18/(byte) bd#103 fa::@19/(byte) bd#104 ) [110] (byte) bc#113 ← phi( fa::@10/(byte) bc#172 fa::@11/(byte) bc#173 fa::@12/(byte) bc#174 fa::@13/(byte) bc#175 fa::@14/(byte) bc#176 fa::@15/(byte) bc#177 fa::@16/(byte) bc#178 fa::@17/(byte) bc#179 fa::@18/(byte) bc#180 fa::@19/(byte) 0 ) [111] if((byte) bc#113!=(byte) 0) goto fb::@1 @@ -282,7 +259,6 @@ fb::@10: scope:[fb] from fb [114] call fc to:fb::@1 fb::@1: scope:[fb] from fb fb::@10 - [115] (byte) be#119 ← phi( fb/(byte) be#118 fb::@10/(byte) be#46 ) [115] (byte) bd#107 ← phi( fb/(byte) bd#106 fb::@10/(byte) bd#146 ) [116] if((byte) bc#113!=(byte) 1) goto fb::@2 to:fb::@11 @@ -292,7 +268,6 @@ fb::@11: scope:[fb] from fb::@1 [119] call fc to:fb::@2 fb::@2: scope:[fb] from fb::@1 fb::@11 - [120] (byte) be#120 ← phi( fb::@1/(byte) be#119 fb::@11/(byte) be#46 ) [120] (byte) bd#108 ← phi( fb::@1/(byte) bd#107 fb::@11/(byte) bd#147 ) [121] if((byte) bc#113!=(byte) 2) goto fb::@3 to:fb::@12 @@ -302,7 +277,6 @@ fb::@12: scope:[fb] from fb::@2 [124] call fc to:fb::@3 fb::@3: scope:[fb] from fb::@12 fb::@2 - [125] (byte) be#121 ← phi( fb::@2/(byte) be#120 fb::@12/(byte) be#46 ) [125] (byte) bd#109 ← phi( fb::@2/(byte) bd#108 fb::@12/(byte) bd#148 ) [126] if((byte) bc#113!=(byte) 3) goto fb::@4 to:fb::@13 @@ -312,7 +286,6 @@ fb::@13: scope:[fb] from fb::@3 [129] call fc to:fb::@4 fb::@4: scope:[fb] from fb::@13 fb::@3 - [130] (byte) be#122 ← phi( fb::@13/(byte) be#46 fb::@3/(byte) be#121 ) [130] (byte) bd#110 ← phi( fb::@13/(byte) bd#149 fb::@3/(byte) bd#109 ) [131] if((byte) bc#113!=(byte) 4) goto fb::@5 to:fb::@14 @@ -322,7 +295,6 @@ fb::@14: scope:[fb] from fb::@4 [134] call fc to:fb::@5 fb::@5: scope:[fb] from fb::@14 fb::@4 - [135] (byte) be#123 ← phi( fb::@14/(byte) be#46 fb::@4/(byte) be#122 ) [135] (byte) bd#111 ← phi( fb::@14/(byte) bd#150 fb::@4/(byte) bd#110 ) [136] if((byte) bc#113!=(byte) 5) goto fb::@6 to:fb::@15 @@ -332,7 +304,6 @@ fb::@15: scope:[fb] from fb::@5 [139] call fc to:fb::@6 fb::@6: scope:[fb] from fb::@15 fb::@5 - [140] (byte) be#124 ← phi( fb::@15/(byte) be#46 fb::@5/(byte) be#123 ) [140] (byte) bd#112 ← phi( fb::@15/(byte) bd#151 fb::@5/(byte) bd#111 ) [141] if((byte) bc#113!=(byte) 6) goto fb::@7 to:fb::@16 @@ -342,7 +313,6 @@ fb::@16: scope:[fb] from fb::@6 [144] call fc to:fb::@7 fb::@7: scope:[fb] from fb::@16 fb::@6 - [145] (byte) be#125 ← phi( fb::@16/(byte) be#46 fb::@6/(byte) be#124 ) [145] (byte) bd#113 ← phi( fb::@16/(byte) bd#152 fb::@6/(byte) bd#112 ) [146] if((byte) bc#113!=(byte) 7) goto fb::@8 to:fb::@17 @@ -352,7 +322,6 @@ fb::@17: scope:[fb] from fb::@7 [149] call fc to:fb::@8 fb::@8: scope:[fb] from fb::@17 fb::@7 - [150] (byte) be#126 ← phi( fb::@17/(byte) be#46 fb::@7/(byte) be#125 ) [150] (byte) bd#114 ← phi( fb::@17/(byte) bd#153 fb::@7/(byte) bd#113 ) [151] if((byte) bc#113!=(byte) 8) goto fb::@9 to:fb::@18 @@ -362,7 +331,6 @@ fb::@18: scope:[fb] from fb::@8 [154] call fc to:fb::@9 fb::@9: scope:[fb] from fb::@18 fb::@8 - [155] (byte) be#127 ← phi( fb::@18/(byte) be#46 fb::@8/(byte) be#126 ) [155] (byte) bd#116 ← phi( fb::@18/(byte) bd#154 fb::@8/(byte) bd#114 ) [156] if((byte) bc#113!=(byte) 9) goto fb::@return to:fb::@19 @@ -371,84 +339,72 @@ fb::@19: scope:[fb] from fb::@9 [158] call fc to:fb::@return fb::@return: scope:[fb] from fb::@19 fb::@9 - [159] (byte) be#35 ← phi( fb::@19/(byte) be#46 fb::@9/(byte) be#127 ) [159] (byte) bd#35 ← phi( fb::@19/(byte) 0 fb::@9/(byte) bd#116 ) [160] return to:@return (void()) fc() fc: scope:[fc] from fb::@10 fb::@11 fb::@12 fb::@13 fb::@14 fb::@15 fb::@16 fb::@17 fb::@18 fb::@19 - [161] (byte) be#129 ← phi( fb::@10/(byte) be#118 fb::@11/(byte) be#119 fb::@12/(byte) be#120 fb::@13/(byte) be#121 fb::@14/(byte) be#122 fb::@15/(byte) be#123 fb::@16/(byte) be#124 fb::@17/(byte) be#125 fb::@18/(byte) be#126 fb::@19/(byte) be#127 ) [161] (byte) bd#117 ← phi( fb::@10/(byte) bd#235 fb::@11/(byte) bd#236 fb::@12/(byte) bd#237 fb::@13/(byte) bd#238 fb::@14/(byte) bd#239 fb::@15/(byte) bd#240 fb::@16/(byte) bd#241 fb::@17/(byte) bd#242 fb::@18/(byte) bd#243 fb::@19/(byte) 0 ) [162] if((byte) bd#117!=(byte) 0) goto fc::@1 to:fc::@10 fc::@10: scope:[fc] from fc - [163] (byte) be#36 ← ++ (byte) be#129 + [163] phi() to:fc::@1 fc::@1: scope:[fc] from fc fc::@10 - [164] (byte) be#130 ← phi( fc/(byte) be#129 fc::@10/(byte) be#36 ) - [165] if((byte) bd#117!=(byte) 1) goto fc::@2 + [164] if((byte) bd#117!=(byte) 1) goto fc::@2 to:fc::@11 fc::@11: scope:[fc] from fc::@1 - [166] (byte) be#37 ← ++ (byte) be#130 + [165] phi() to:fc::@2 fc::@2: scope:[fc] from fc::@1 fc::@11 - [167] (byte) be#131 ← phi( fc::@1/(byte) be#130 fc::@11/(byte) be#37 ) - [168] if((byte) bd#117!=(byte) 2) goto fc::@3 + [166] if((byte) bd#117!=(byte) 2) goto fc::@3 to:fc::@12 fc::@12: scope:[fc] from fc::@2 - [169] (byte) be#38 ← ++ (byte) be#131 + [167] phi() to:fc::@3 fc::@3: scope:[fc] from fc::@12 fc::@2 - [170] (byte) be#132 ← phi( fc::@12/(byte) be#38 fc::@2/(byte) be#131 ) - [171] if((byte) bd#117!=(byte) 3) goto fc::@4 + [168] if((byte) bd#117!=(byte) 3) goto fc::@4 to:fc::@13 fc::@13: scope:[fc] from fc::@3 - [172] (byte) be#39 ← ++ (byte) be#132 + [169] phi() to:fc::@4 fc::@4: scope:[fc] from fc::@13 fc::@3 - [173] (byte) be#133 ← phi( fc::@13/(byte) be#39 fc::@3/(byte) be#132 ) - [174] if((byte) bd#117!=(byte) 4) goto fc::@5 + [170] if((byte) bd#117!=(byte) 4) goto fc::@5 to:fc::@14 fc::@14: scope:[fc] from fc::@4 - [175] (byte) be#40 ← ++ (byte) be#133 + [171] phi() to:fc::@5 fc::@5: scope:[fc] from fc::@14 fc::@4 - [176] (byte) be#134 ← phi( fc::@14/(byte) be#40 fc::@4/(byte) be#133 ) - [177] if((byte) bd#117!=(byte) 5) goto fc::@6 + [172] if((byte) bd#117!=(byte) 5) goto fc::@6 to:fc::@15 fc::@15: scope:[fc] from fc::@5 - [178] (byte) be#41 ← ++ (byte) be#134 + [173] phi() to:fc::@6 fc::@6: scope:[fc] from fc::@15 fc::@5 - [179] (byte) be#135 ← phi( fc::@15/(byte) be#41 fc::@5/(byte) be#134 ) - [180] if((byte) bd#117!=(byte) 6) goto fc::@7 + [174] if((byte) bd#117!=(byte) 6) goto fc::@7 to:fc::@16 fc::@16: scope:[fc] from fc::@6 - [181] (byte) be#42 ← ++ (byte) be#135 + [175] phi() to:fc::@7 fc::@7: scope:[fc] from fc::@16 fc::@6 - [182] (byte) be#136 ← phi( fc::@16/(byte) be#42 fc::@6/(byte) be#135 ) - [183] if((byte) bd#117!=(byte) 7) goto fc::@8 + [176] if((byte) bd#117!=(byte) 7) goto fc::@8 to:fc::@17 fc::@17: scope:[fc] from fc::@7 - [184] (byte) be#43 ← ++ (byte) be#136 + [177] phi() to:fc::@8 fc::@8: scope:[fc] from fc::@17 fc::@7 - [185] (byte) be#137 ← phi( fc::@17/(byte) be#43 fc::@7/(byte) be#136 ) - [186] if((byte) bd#117!=(byte) 8) goto fc::@9 + [178] if((byte) bd#117!=(byte) 8) goto fc::@9 to:fc::@18 fc::@18: scope:[fc] from fc::@8 - [187] (byte) be#44 ← ++ (byte) be#137 + [179] phi() to:fc::@9 fc::@9: scope:[fc] from fc::@18 fc::@8 - [188] (byte) be#138 ← phi( fc::@18/(byte) be#44 fc::@8/(byte) be#137 ) - [189] if((byte) bd#117!=(byte) 9) goto fc::@19 - to:fc::@return + [180] if((byte) bd#117!=(byte) 9) goto fc::@return + to:fc::@19 fc::@19: scope:[fc] from fc::@9 - [190] phi() + [181] phi() to:fc::@return fc::@return: scope:[fc] from fc::@19 fc::@9 - [191] (byte) be#46 ← phi( fc::@9/(byte) 0 fc::@19/(byte) be#138 ) - [192] return + [182] return to:@return diff --git a/src/test/ref/no-recursion-heavy.log b/src/test/ref/no-recursion-heavy.log index 78a81f487..0943cb709 100644 --- a/src/test/ref/no-recursion-heavy.log +++ b/src/test/ref/no-recursion-heavy.log @@ -17,20 +17,17 @@ CONTROL FLOW GRAPH SSA (byte) bb#0 ← (byte) 0 (byte) bc#0 ← (byte) 0 (byte) bd#0 ← (byte) 0 - (byte) be#0 ← (byte) 0 to:@5 (void()) main() main: scope:[main] from @5 (byte) ba#29 ← phi( @5/(byte) ba#28 ) - (byte) be#140 ← phi( @5/(byte) be#139 ) (byte) bd#127 ← phi( @5/(byte) bd#126 ) (byte) bc#94 ← phi( @5/(byte) bc#93 ) (byte) bb#61 ← phi( @5/(byte) bb#60 ) to:main::@1 main::@1: scope:[main] from main main::@7 (byte) ba#18 ← phi( main/(byte) ba#29 main::@7/(byte) ba#1 ) - (byte) be#95 ← phi( main/(byte) be#140 main::@7/(byte) be#1 ) (byte) bd#83 ← phi( main/(byte) bd#127 main::@7/(byte) bd#1 ) (byte) bc#61 ← phi( main/(byte) bc#94 main::@7/(byte) bc#1 ) (byte) bb#39 ← phi( main/(byte) bb#61 main::@7/(byte) bb#1 ) @@ -38,7 +35,6 @@ main::@1: scope:[main] from main main::@7 to:main::@return main::@2: scope:[main] from main::@1 (byte) ba#17 ← phi( main::@1/(byte) ba#18 ) - (byte) be#94 ← phi( main::@1/(byte) be#95 ) (byte) bd#82 ← phi( main::@1/(byte) bd#83 ) (byte) bc#60 ← phi( main::@1/(byte) bc#61 ) (byte) bb#38 ← phi( main::@1/(byte) bb#39 ) @@ -46,33 +42,28 @@ main::@2: scope:[main] from main::@1 to:main::@7 main::@7: scope:[main] from main::@2 (byte) ba#4 ← phi( main::@2/(byte) ba#17 ) - (byte) be#48 ← phi( main::@2/(byte) be#13 ) (byte) bd#37 ← phi( main::@2/(byte) bd#13 ) (byte) bc#26 ← phi( main::@2/(byte) bc#13 ) (byte) bb#15 ← phi( main::@2/(byte) bb#13 ) (byte) bb#1 ← (byte) bb#15 (byte) bc#1 ← (byte) bc#26 (byte) bd#1 ← (byte) bd#37 - (byte) be#1 ← (byte) be#48 (byte) ba#1 ← ++ (byte) ba#4 to:main::@1 main::@return: scope:[main] from main::@1 (byte) ba#5 ← phi( main::@1/(byte) ba#18 ) - (byte) be#49 ← phi( main::@1/(byte) be#95 ) (byte) bd#38 ← phi( main::@1/(byte) bd#83 ) (byte) bc#27 ← phi( main::@1/(byte) bc#61 ) (byte) bb#16 ← phi( main::@1/(byte) bb#39 ) (byte) bb#2 ← (byte) bb#16 (byte) bc#2 ← (byte) bc#27 (byte) bd#2 ← (byte) bd#38 - (byte) be#2 ← (byte) be#49 (byte) ba#2 ← (byte) ba#5 return to:@return (void()) f0() f0: scope:[f0] from main::@2 - (byte) be#141 ← phi( main::@2/(byte) be#94 ) (byte) bd#128 ← phi( main::@2/(byte) bd#82 ) (byte) bc#95 ← phi( main::@2/(byte) bc#60 ) (byte) bb#40 ← phi( main::@2/(byte) bb#38 ) @@ -82,7 +73,6 @@ f0: scope:[f0] from main::@2 if((bool~) f0::$1) goto f0::@1 to:f0::@11 f0::@1: scope:[f0] from f0 f0::@21 - (byte) be#142 ← phi( f0/(byte) be#141 f0::@21/(byte) be#3 ) (byte) bd#129 ← phi( f0/(byte) bd#128 f0::@21/(byte) bd#3 ) (byte) bc#96 ← phi( f0/(byte) bc#95 f0::@21/(byte) bc#3 ) (byte) bb#41 ← phi( f0/(byte) bb#40 f0::@21/(byte) bb#62 ) @@ -93,7 +83,6 @@ f0::@1: scope:[f0] from f0 f0::@21 to:f0::@12 f0::@11: scope:[f0] from f0 (byte) ba#30 ← phi( f0/(byte) ba#6 ) - (byte) be#96 ← phi( f0/(byte) be#141 ) (byte) bd#84 ← phi( f0/(byte) bd#128 ) (byte) bc#62 ← phi( f0/(byte) bc#95 ) (byte) bb#17 ← phi( f0/(byte) bb#40 ) @@ -103,15 +92,12 @@ f0::@11: scope:[f0] from f0 f0::@21: scope:[f0] from f0::@11 (byte) bb#62 ← phi( f0::@11/(byte) bb#3 ) (byte) ba#19 ← phi( f0::@11/(byte) ba#30 ) - (byte) be#50 ← phi( f0::@11/(byte) be#24 ) (byte) bd#39 ← phi( f0::@11/(byte) bd#24 ) (byte) bc#28 ← phi( f0::@11/(byte) bc#24 ) (byte) bc#3 ← (byte) bc#28 (byte) bd#3 ← (byte) bd#39 - (byte) be#3 ← (byte) be#50 to:f0::@1 f0::@2: scope:[f0] from f0::@1 f0::@22 - (byte) be#143 ← phi( f0::@1/(byte) be#142 f0::@22/(byte) be#4 ) (byte) bd#130 ← phi( f0::@1/(byte) bd#129 f0::@22/(byte) bd#4 ) (byte) bc#97 ← phi( f0::@1/(byte) bc#96 f0::@22/(byte) bc#4 ) (byte) bb#42 ← phi( f0::@1/(byte) bb#41 f0::@22/(byte) bb#63 ) @@ -122,7 +108,6 @@ f0::@2: scope:[f0] from f0::@1 f0::@22 to:f0::@13 f0::@12: scope:[f0] from f0::@1 (byte) ba#31 ← phi( f0::@1/(byte) ba#7 ) - (byte) be#97 ← phi( f0::@1/(byte) be#142 ) (byte) bd#85 ← phi( f0::@1/(byte) bd#129 ) (byte) bc#63 ← phi( f0::@1/(byte) bc#96 ) (byte) bb#18 ← phi( f0::@1/(byte) bb#41 ) @@ -132,15 +117,12 @@ f0::@12: scope:[f0] from f0::@1 f0::@22: scope:[f0] from f0::@12 (byte) bb#63 ← phi( f0::@12/(byte) bb#4 ) (byte) ba#20 ← phi( f0::@12/(byte) ba#31 ) - (byte) be#51 ← phi( f0::@12/(byte) be#24 ) (byte) bd#40 ← phi( f0::@12/(byte) bd#24 ) (byte) bc#29 ← phi( f0::@12/(byte) bc#24 ) (byte) bc#4 ← (byte) bc#29 (byte) bd#4 ← (byte) bd#40 - (byte) be#4 ← (byte) be#51 to:f0::@2 f0::@3: scope:[f0] from f0::@2 f0::@23 - (byte) be#144 ← phi( f0::@2/(byte) be#143 f0::@23/(byte) be#5 ) (byte) bd#131 ← phi( f0::@2/(byte) bd#130 f0::@23/(byte) bd#5 ) (byte) bc#98 ← phi( f0::@2/(byte) bc#97 f0::@23/(byte) bc#5 ) (byte) bb#43 ← phi( f0::@2/(byte) bb#42 f0::@23/(byte) bb#64 ) @@ -151,7 +133,6 @@ f0::@3: scope:[f0] from f0::@2 f0::@23 to:f0::@14 f0::@13: scope:[f0] from f0::@2 (byte) ba#32 ← phi( f0::@2/(byte) ba#8 ) - (byte) be#98 ← phi( f0::@2/(byte) be#143 ) (byte) bd#86 ← phi( f0::@2/(byte) bd#130 ) (byte) bc#64 ← phi( f0::@2/(byte) bc#97 ) (byte) bb#19 ← phi( f0::@2/(byte) bb#42 ) @@ -161,15 +142,12 @@ f0::@13: scope:[f0] from f0::@2 f0::@23: scope:[f0] from f0::@13 (byte) bb#64 ← phi( f0::@13/(byte) bb#5 ) (byte) ba#21 ← phi( f0::@13/(byte) ba#32 ) - (byte) be#52 ← phi( f0::@13/(byte) be#24 ) (byte) bd#41 ← phi( f0::@13/(byte) bd#24 ) (byte) bc#30 ← phi( f0::@13/(byte) bc#24 ) (byte) bc#5 ← (byte) bc#30 (byte) bd#5 ← (byte) bd#41 - (byte) be#5 ← (byte) be#52 to:f0::@3 f0::@4: scope:[f0] from f0::@24 f0::@3 - (byte) be#145 ← phi( f0::@24/(byte) be#6 f0::@3/(byte) be#144 ) (byte) bd#132 ← phi( f0::@24/(byte) bd#6 f0::@3/(byte) bd#131 ) (byte) bc#99 ← phi( f0::@24/(byte) bc#6 f0::@3/(byte) bc#98 ) (byte) bb#44 ← phi( f0::@24/(byte) bb#65 f0::@3/(byte) bb#43 ) @@ -180,7 +158,6 @@ f0::@4: scope:[f0] from f0::@24 f0::@3 to:f0::@15 f0::@14: scope:[f0] from f0::@3 (byte) ba#33 ← phi( f0::@3/(byte) ba#9 ) - (byte) be#99 ← phi( f0::@3/(byte) be#144 ) (byte) bd#87 ← phi( f0::@3/(byte) bd#131 ) (byte) bc#65 ← phi( f0::@3/(byte) bc#98 ) (byte) bb#20 ← phi( f0::@3/(byte) bb#43 ) @@ -190,15 +167,12 @@ f0::@14: scope:[f0] from f0::@3 f0::@24: scope:[f0] from f0::@14 (byte) bb#65 ← phi( f0::@14/(byte) bb#6 ) (byte) ba#22 ← phi( f0::@14/(byte) ba#33 ) - (byte) be#53 ← phi( f0::@14/(byte) be#24 ) (byte) bd#42 ← phi( f0::@14/(byte) bd#24 ) (byte) bc#31 ← phi( f0::@14/(byte) bc#24 ) (byte) bc#6 ← (byte) bc#31 (byte) bd#6 ← (byte) bd#42 - (byte) be#6 ← (byte) be#53 to:f0::@4 f0::@5: scope:[f0] from f0::@25 f0::@4 - (byte) be#146 ← phi( f0::@25/(byte) be#7 f0::@4/(byte) be#145 ) (byte) bd#133 ← phi( f0::@25/(byte) bd#7 f0::@4/(byte) bd#132 ) (byte) bc#100 ← phi( f0::@25/(byte) bc#7 f0::@4/(byte) bc#99 ) (byte) bb#45 ← phi( f0::@25/(byte) bb#66 f0::@4/(byte) bb#44 ) @@ -209,7 +183,6 @@ f0::@5: scope:[f0] from f0::@25 f0::@4 to:f0::@16 f0::@15: scope:[f0] from f0::@4 (byte) ba#34 ← phi( f0::@4/(byte) ba#10 ) - (byte) be#100 ← phi( f0::@4/(byte) be#145 ) (byte) bd#88 ← phi( f0::@4/(byte) bd#132 ) (byte) bc#66 ← phi( f0::@4/(byte) bc#99 ) (byte) bb#21 ← phi( f0::@4/(byte) bb#44 ) @@ -219,15 +192,12 @@ f0::@15: scope:[f0] from f0::@4 f0::@25: scope:[f0] from f0::@15 (byte) bb#66 ← phi( f0::@15/(byte) bb#7 ) (byte) ba#23 ← phi( f0::@15/(byte) ba#34 ) - (byte) be#54 ← phi( f0::@15/(byte) be#24 ) (byte) bd#43 ← phi( f0::@15/(byte) bd#24 ) (byte) bc#32 ← phi( f0::@15/(byte) bc#24 ) (byte) bc#7 ← (byte) bc#32 (byte) bd#7 ← (byte) bd#43 - (byte) be#7 ← (byte) be#54 to:f0::@5 f0::@6: scope:[f0] from f0::@26 f0::@5 - (byte) be#147 ← phi( f0::@26/(byte) be#8 f0::@5/(byte) be#146 ) (byte) bd#134 ← phi( f0::@26/(byte) bd#8 f0::@5/(byte) bd#133 ) (byte) bc#101 ← phi( f0::@26/(byte) bc#8 f0::@5/(byte) bc#100 ) (byte) bb#46 ← phi( f0::@26/(byte) bb#67 f0::@5/(byte) bb#45 ) @@ -238,7 +208,6 @@ f0::@6: scope:[f0] from f0::@26 f0::@5 to:f0::@17 f0::@16: scope:[f0] from f0::@5 (byte) ba#35 ← phi( f0::@5/(byte) ba#11 ) - (byte) be#101 ← phi( f0::@5/(byte) be#146 ) (byte) bd#89 ← phi( f0::@5/(byte) bd#133 ) (byte) bc#67 ← phi( f0::@5/(byte) bc#100 ) (byte) bb#22 ← phi( f0::@5/(byte) bb#45 ) @@ -248,15 +217,12 @@ f0::@16: scope:[f0] from f0::@5 f0::@26: scope:[f0] from f0::@16 (byte) bb#67 ← phi( f0::@16/(byte) bb#8 ) (byte) ba#24 ← phi( f0::@16/(byte) ba#35 ) - (byte) be#55 ← phi( f0::@16/(byte) be#24 ) (byte) bd#44 ← phi( f0::@16/(byte) bd#24 ) (byte) bc#33 ← phi( f0::@16/(byte) bc#24 ) (byte) bc#8 ← (byte) bc#33 (byte) bd#8 ← (byte) bd#44 - (byte) be#8 ← (byte) be#55 to:f0::@6 f0::@7: scope:[f0] from f0::@27 f0::@6 - (byte) be#148 ← phi( f0::@27/(byte) be#9 f0::@6/(byte) be#147 ) (byte) bd#135 ← phi( f0::@27/(byte) bd#9 f0::@6/(byte) bd#134 ) (byte) bc#102 ← phi( f0::@27/(byte) bc#9 f0::@6/(byte) bc#101 ) (byte) bb#47 ← phi( f0::@27/(byte) bb#68 f0::@6/(byte) bb#46 ) @@ -267,7 +233,6 @@ f0::@7: scope:[f0] from f0::@27 f0::@6 to:f0::@18 f0::@17: scope:[f0] from f0::@6 (byte) ba#36 ← phi( f0::@6/(byte) ba#12 ) - (byte) be#102 ← phi( f0::@6/(byte) be#147 ) (byte) bd#90 ← phi( f0::@6/(byte) bd#134 ) (byte) bc#68 ← phi( f0::@6/(byte) bc#101 ) (byte) bb#23 ← phi( f0::@6/(byte) bb#46 ) @@ -277,15 +242,12 @@ f0::@17: scope:[f0] from f0::@6 f0::@27: scope:[f0] from f0::@17 (byte) bb#68 ← phi( f0::@17/(byte) bb#9 ) (byte) ba#25 ← phi( f0::@17/(byte) ba#36 ) - (byte) be#56 ← phi( f0::@17/(byte) be#24 ) (byte) bd#45 ← phi( f0::@17/(byte) bd#24 ) (byte) bc#34 ← phi( f0::@17/(byte) bc#24 ) (byte) bc#9 ← (byte) bc#34 (byte) bd#9 ← (byte) bd#45 - (byte) be#9 ← (byte) be#56 to:f0::@7 f0::@8: scope:[f0] from f0::@28 f0::@7 - (byte) be#149 ← phi( f0::@28/(byte) be#10 f0::@7/(byte) be#148 ) (byte) bd#136 ← phi( f0::@28/(byte) bd#10 f0::@7/(byte) bd#135 ) (byte) bc#103 ← phi( f0::@28/(byte) bc#10 f0::@7/(byte) bc#102 ) (byte) bb#48 ← phi( f0::@28/(byte) bb#69 f0::@7/(byte) bb#47 ) @@ -296,7 +258,6 @@ f0::@8: scope:[f0] from f0::@28 f0::@7 to:f0::@19 f0::@18: scope:[f0] from f0::@7 (byte) ba#37 ← phi( f0::@7/(byte) ba#13 ) - (byte) be#103 ← phi( f0::@7/(byte) be#148 ) (byte) bd#91 ← phi( f0::@7/(byte) bd#135 ) (byte) bc#69 ← phi( f0::@7/(byte) bc#102 ) (byte) bb#24 ← phi( f0::@7/(byte) bb#47 ) @@ -306,15 +267,12 @@ f0::@18: scope:[f0] from f0::@7 f0::@28: scope:[f0] from f0::@18 (byte) bb#69 ← phi( f0::@18/(byte) bb#10 ) (byte) ba#26 ← phi( f0::@18/(byte) ba#37 ) - (byte) be#57 ← phi( f0::@18/(byte) be#24 ) (byte) bd#46 ← phi( f0::@18/(byte) bd#24 ) (byte) bc#35 ← phi( f0::@18/(byte) bc#24 ) (byte) bc#10 ← (byte) bc#35 (byte) bd#10 ← (byte) bd#46 - (byte) be#10 ← (byte) be#57 to:f0::@8 f0::@9: scope:[f0] from f0::@29 f0::@8 - (byte) be#106 ← phi( f0::@29/(byte) be#11 f0::@8/(byte) be#149 ) (byte) bd#94 ← phi( f0::@29/(byte) bd#11 f0::@8/(byte) bd#136 ) (byte) bc#72 ← phi( f0::@29/(byte) bc#11 f0::@8/(byte) bc#103 ) (byte) bb#50 ← phi( f0::@29/(byte) bb#70 f0::@8/(byte) bb#48 ) @@ -325,7 +283,6 @@ f0::@9: scope:[f0] from f0::@29 f0::@8 to:f0::@20 f0::@19: scope:[f0] from f0::@8 (byte) ba#38 ← phi( f0::@8/(byte) ba#14 ) - (byte) be#104 ← phi( f0::@8/(byte) be#149 ) (byte) bd#92 ← phi( f0::@8/(byte) bd#136 ) (byte) bc#70 ← phi( f0::@8/(byte) bc#103 ) (byte) bb#25 ← phi( f0::@8/(byte) bb#48 ) @@ -335,15 +292,12 @@ f0::@19: scope:[f0] from f0::@8 f0::@29: scope:[f0] from f0::@19 (byte) bb#70 ← phi( f0::@19/(byte) bb#11 ) (byte) ba#27 ← phi( f0::@19/(byte) ba#38 ) - (byte) be#58 ← phi( f0::@19/(byte) be#24 ) (byte) bd#47 ← phi( f0::@19/(byte) bd#24 ) (byte) bc#36 ← phi( f0::@19/(byte) bc#24 ) (byte) bc#11 ← (byte) bc#36 (byte) bd#11 ← (byte) bd#47 - (byte) be#11 ← (byte) be#58 to:f0::@9 f0::@20: scope:[f0] from f0::@9 - (byte) be#105 ← phi( f0::@9/(byte) be#106 ) (byte) bd#93 ← phi( f0::@9/(byte) bd#94 ) (byte) bc#71 ← phi( f0::@9/(byte) bc#72 ) (byte) bb#12 ← (number) 0 @@ -351,28 +305,23 @@ f0::@20: scope:[f0] from f0::@9 to:f0::@30 f0::@30: scope:[f0] from f0::@20 (byte) bb#49 ← phi( f0::@20/(byte) bb#12 ) - (byte) be#59 ← phi( f0::@20/(byte) be#24 ) (byte) bd#48 ← phi( f0::@20/(byte) bd#24 ) (byte) bc#37 ← phi( f0::@20/(byte) bc#24 ) (byte) bc#12 ← (byte) bc#37 (byte) bd#12 ← (byte) bd#48 - (byte) be#12 ← (byte) be#59 to:f0::@return f0::@return: scope:[f0] from f0::@30 f0::@9 - (byte) be#60 ← phi( f0::@30/(byte) be#12 f0::@9/(byte) be#106 ) (byte) bd#49 ← phi( f0::@30/(byte) bd#12 f0::@9/(byte) bd#94 ) (byte) bc#38 ← phi( f0::@30/(byte) bc#12 f0::@9/(byte) bc#72 ) (byte) bb#26 ← phi( f0::@30/(byte) bb#49 f0::@9/(byte) bb#50 ) (byte) bb#13 ← (byte) bb#26 (byte) bc#13 ← (byte) bc#38 (byte) bd#13 ← (byte) bd#49 - (byte) be#13 ← (byte) be#60 return to:@return (void()) fa() fa: scope:[fa] from f0::@11 f0::@12 f0::@13 f0::@14 f0::@15 f0::@16 f0::@17 f0::@18 f0::@19 f0::@20 - (byte) be#150 ← phi( f0::@11/(byte) be#96 f0::@12/(byte) be#97 f0::@13/(byte) be#98 f0::@14/(byte) be#99 f0::@15/(byte) be#100 f0::@16/(byte) be#101 f0::@17/(byte) be#102 f0::@18/(byte) be#103 f0::@19/(byte) be#104 f0::@20/(byte) be#105 ) (byte) bd#137 ← phi( f0::@11/(byte) bd#84 f0::@12/(byte) bd#85 f0::@13/(byte) bd#86 f0::@14/(byte) bd#87 f0::@15/(byte) bd#88 f0::@16/(byte) bd#89 f0::@17/(byte) bd#90 f0::@18/(byte) bd#91 f0::@19/(byte) bd#92 f0::@20/(byte) bd#93 ) (byte) bc#73 ← phi( f0::@11/(byte) bc#62 f0::@12/(byte) bc#63 f0::@13/(byte) bc#64 f0::@14/(byte) bc#65 f0::@15/(byte) bc#66 f0::@16/(byte) bc#67 f0::@17/(byte) bc#68 f0::@18/(byte) bc#69 f0::@19/(byte) bc#70 f0::@20/(byte) bc#71 ) (byte) bb#27 ← phi( f0::@11/(byte) bb#3 f0::@12/(byte) bb#4 f0::@13/(byte) bb#5 f0::@14/(byte) bb#6 f0::@15/(byte) bb#7 f0::@16/(byte) bb#8 f0::@17/(byte) bb#9 f0::@18/(byte) bb#10 f0::@19/(byte) bb#11 f0::@20/(byte) bb#12 ) @@ -381,7 +330,6 @@ fa: scope:[fa] from f0::@11 f0::@12 f0::@13 f0::@14 f0::@15 f0::@16 f0::@17 f0: if((bool~) fa::$1) goto fa::@1 to:fa::@11 fa::@1: scope:[fa] from fa fa::@21 - (byte) be#151 ← phi( fa/(byte) be#150 fa::@21/(byte) be#14 ) (byte) bd#138 ← phi( fa/(byte) bd#137 fa::@21/(byte) bd#14 ) (byte) bc#74 ← phi( fa/(byte) bc#73 fa::@21/(byte) bc#104 ) (byte) bb#28 ← phi( fa/(byte) bb#27 fa::@21/(byte) bb#51 ) @@ -391,7 +339,6 @@ fa::@1: scope:[fa] from fa fa::@21 to:fa::@12 fa::@11: scope:[fa] from fa (byte) bb#71 ← phi( fa/(byte) bb#27 ) - (byte) be#107 ← phi( fa/(byte) be#150 ) (byte) bd#95 ← phi( fa/(byte) bd#137 ) (byte) bc#39 ← phi( fa/(byte) bc#73 ) (byte) bc#14 ← ++ (byte) bc#39 @@ -400,13 +347,10 @@ fa::@11: scope:[fa] from fa fa::@21: scope:[fa] from fa::@11 (byte) bc#104 ← phi( fa::@11/(byte) bc#14 ) (byte) bb#51 ← phi( fa::@11/(byte) bb#71 ) - (byte) be#61 ← phi( fa::@11/(byte) be#35 ) (byte) bd#50 ← phi( fa::@11/(byte) bd#35 ) (byte) bd#14 ← (byte) bd#50 - (byte) be#14 ← (byte) be#61 to:fa::@1 fa::@2: scope:[fa] from fa::@1 fa::@22 - (byte) be#152 ← phi( fa::@1/(byte) be#151 fa::@22/(byte) be#15 ) (byte) bd#139 ← phi( fa::@1/(byte) bd#138 fa::@22/(byte) bd#15 ) (byte) bc#75 ← phi( fa::@1/(byte) bc#74 fa::@22/(byte) bc#105 ) (byte) bb#29 ← phi( fa::@1/(byte) bb#28 fa::@22/(byte) bb#52 ) @@ -416,7 +360,6 @@ fa::@2: scope:[fa] from fa::@1 fa::@22 to:fa::@13 fa::@12: scope:[fa] from fa::@1 (byte) bb#72 ← phi( fa::@1/(byte) bb#28 ) - (byte) be#108 ← phi( fa::@1/(byte) be#151 ) (byte) bd#96 ← phi( fa::@1/(byte) bd#138 ) (byte) bc#40 ← phi( fa::@1/(byte) bc#74 ) (byte) bc#15 ← ++ (byte) bc#40 @@ -425,13 +368,10 @@ fa::@12: scope:[fa] from fa::@1 fa::@22: scope:[fa] from fa::@12 (byte) bc#105 ← phi( fa::@12/(byte) bc#15 ) (byte) bb#52 ← phi( fa::@12/(byte) bb#72 ) - (byte) be#62 ← phi( fa::@12/(byte) be#35 ) (byte) bd#51 ← phi( fa::@12/(byte) bd#35 ) (byte) bd#15 ← (byte) bd#51 - (byte) be#15 ← (byte) be#62 to:fa::@2 fa::@3: scope:[fa] from fa::@2 fa::@23 - (byte) be#153 ← phi( fa::@2/(byte) be#152 fa::@23/(byte) be#16 ) (byte) bd#140 ← phi( fa::@2/(byte) bd#139 fa::@23/(byte) bd#16 ) (byte) bc#76 ← phi( fa::@2/(byte) bc#75 fa::@23/(byte) bc#106 ) (byte) bb#30 ← phi( fa::@2/(byte) bb#29 fa::@23/(byte) bb#53 ) @@ -441,7 +381,6 @@ fa::@3: scope:[fa] from fa::@2 fa::@23 to:fa::@14 fa::@13: scope:[fa] from fa::@2 (byte) bb#73 ← phi( fa::@2/(byte) bb#29 ) - (byte) be#109 ← phi( fa::@2/(byte) be#152 ) (byte) bd#97 ← phi( fa::@2/(byte) bd#139 ) (byte) bc#41 ← phi( fa::@2/(byte) bc#75 ) (byte) bc#16 ← ++ (byte) bc#41 @@ -450,13 +389,10 @@ fa::@13: scope:[fa] from fa::@2 fa::@23: scope:[fa] from fa::@13 (byte) bc#106 ← phi( fa::@13/(byte) bc#16 ) (byte) bb#53 ← phi( fa::@13/(byte) bb#73 ) - (byte) be#63 ← phi( fa::@13/(byte) be#35 ) (byte) bd#52 ← phi( fa::@13/(byte) bd#35 ) (byte) bd#16 ← (byte) bd#52 - (byte) be#16 ← (byte) be#63 to:fa::@3 fa::@4: scope:[fa] from fa::@24 fa::@3 - (byte) be#154 ← phi( fa::@24/(byte) be#17 fa::@3/(byte) be#153 ) (byte) bd#141 ← phi( fa::@24/(byte) bd#17 fa::@3/(byte) bd#140 ) (byte) bc#77 ← phi( fa::@24/(byte) bc#107 fa::@3/(byte) bc#76 ) (byte) bb#31 ← phi( fa::@24/(byte) bb#54 fa::@3/(byte) bb#30 ) @@ -466,7 +402,6 @@ fa::@4: scope:[fa] from fa::@24 fa::@3 to:fa::@15 fa::@14: scope:[fa] from fa::@3 (byte) bb#74 ← phi( fa::@3/(byte) bb#30 ) - (byte) be#110 ← phi( fa::@3/(byte) be#153 ) (byte) bd#98 ← phi( fa::@3/(byte) bd#140 ) (byte) bc#42 ← phi( fa::@3/(byte) bc#76 ) (byte) bc#17 ← ++ (byte) bc#42 @@ -475,13 +410,10 @@ fa::@14: scope:[fa] from fa::@3 fa::@24: scope:[fa] from fa::@14 (byte) bc#107 ← phi( fa::@14/(byte) bc#17 ) (byte) bb#54 ← phi( fa::@14/(byte) bb#74 ) - (byte) be#64 ← phi( fa::@14/(byte) be#35 ) (byte) bd#53 ← phi( fa::@14/(byte) bd#35 ) (byte) bd#17 ← (byte) bd#53 - (byte) be#17 ← (byte) be#64 to:fa::@4 fa::@5: scope:[fa] from fa::@25 fa::@4 - (byte) be#155 ← phi( fa::@25/(byte) be#18 fa::@4/(byte) be#154 ) (byte) bd#142 ← phi( fa::@25/(byte) bd#18 fa::@4/(byte) bd#141 ) (byte) bc#78 ← phi( fa::@25/(byte) bc#108 fa::@4/(byte) bc#77 ) (byte) bb#32 ← phi( fa::@25/(byte) bb#55 fa::@4/(byte) bb#31 ) @@ -491,7 +423,6 @@ fa::@5: scope:[fa] from fa::@25 fa::@4 to:fa::@16 fa::@15: scope:[fa] from fa::@4 (byte) bb#75 ← phi( fa::@4/(byte) bb#31 ) - (byte) be#111 ← phi( fa::@4/(byte) be#154 ) (byte) bd#99 ← phi( fa::@4/(byte) bd#141 ) (byte) bc#43 ← phi( fa::@4/(byte) bc#77 ) (byte) bc#18 ← ++ (byte) bc#43 @@ -500,13 +431,10 @@ fa::@15: scope:[fa] from fa::@4 fa::@25: scope:[fa] from fa::@15 (byte) bc#108 ← phi( fa::@15/(byte) bc#18 ) (byte) bb#55 ← phi( fa::@15/(byte) bb#75 ) - (byte) be#65 ← phi( fa::@15/(byte) be#35 ) (byte) bd#54 ← phi( fa::@15/(byte) bd#35 ) (byte) bd#18 ← (byte) bd#54 - (byte) be#18 ← (byte) be#65 to:fa::@5 fa::@6: scope:[fa] from fa::@26 fa::@5 - (byte) be#156 ← phi( fa::@26/(byte) be#19 fa::@5/(byte) be#155 ) (byte) bd#143 ← phi( fa::@26/(byte) bd#19 fa::@5/(byte) bd#142 ) (byte) bc#79 ← phi( fa::@26/(byte) bc#109 fa::@5/(byte) bc#78 ) (byte) bb#33 ← phi( fa::@26/(byte) bb#56 fa::@5/(byte) bb#32 ) @@ -516,7 +444,6 @@ fa::@6: scope:[fa] from fa::@26 fa::@5 to:fa::@17 fa::@16: scope:[fa] from fa::@5 (byte) bb#76 ← phi( fa::@5/(byte) bb#32 ) - (byte) be#112 ← phi( fa::@5/(byte) be#155 ) (byte) bd#100 ← phi( fa::@5/(byte) bd#142 ) (byte) bc#44 ← phi( fa::@5/(byte) bc#78 ) (byte) bc#19 ← ++ (byte) bc#44 @@ -525,13 +452,10 @@ fa::@16: scope:[fa] from fa::@5 fa::@26: scope:[fa] from fa::@16 (byte) bc#109 ← phi( fa::@16/(byte) bc#19 ) (byte) bb#56 ← phi( fa::@16/(byte) bb#76 ) - (byte) be#66 ← phi( fa::@16/(byte) be#35 ) (byte) bd#55 ← phi( fa::@16/(byte) bd#35 ) (byte) bd#19 ← (byte) bd#55 - (byte) be#19 ← (byte) be#66 to:fa::@6 fa::@7: scope:[fa] from fa::@27 fa::@6 - (byte) be#157 ← phi( fa::@27/(byte) be#20 fa::@6/(byte) be#156 ) (byte) bd#144 ← phi( fa::@27/(byte) bd#20 fa::@6/(byte) bd#143 ) (byte) bc#80 ← phi( fa::@27/(byte) bc#110 fa::@6/(byte) bc#79 ) (byte) bb#34 ← phi( fa::@27/(byte) bb#57 fa::@6/(byte) bb#33 ) @@ -541,7 +465,6 @@ fa::@7: scope:[fa] from fa::@27 fa::@6 to:fa::@18 fa::@17: scope:[fa] from fa::@6 (byte) bb#77 ← phi( fa::@6/(byte) bb#33 ) - (byte) be#113 ← phi( fa::@6/(byte) be#156 ) (byte) bd#101 ← phi( fa::@6/(byte) bd#143 ) (byte) bc#45 ← phi( fa::@6/(byte) bc#79 ) (byte) bc#20 ← ++ (byte) bc#45 @@ -550,13 +473,10 @@ fa::@17: scope:[fa] from fa::@6 fa::@27: scope:[fa] from fa::@17 (byte) bc#110 ← phi( fa::@17/(byte) bc#20 ) (byte) bb#57 ← phi( fa::@17/(byte) bb#77 ) - (byte) be#67 ← phi( fa::@17/(byte) be#35 ) (byte) bd#56 ← phi( fa::@17/(byte) bd#35 ) (byte) bd#20 ← (byte) bd#56 - (byte) be#20 ← (byte) be#67 to:fa::@7 fa::@8: scope:[fa] from fa::@28 fa::@7 - (byte) be#158 ← phi( fa::@28/(byte) be#21 fa::@7/(byte) be#157 ) (byte) bd#145 ← phi( fa::@28/(byte) bd#21 fa::@7/(byte) bd#144 ) (byte) bc#81 ← phi( fa::@28/(byte) bc#111 fa::@7/(byte) bc#80 ) (byte) bb#35 ← phi( fa::@28/(byte) bb#58 fa::@7/(byte) bb#34 ) @@ -566,7 +486,6 @@ fa::@8: scope:[fa] from fa::@28 fa::@7 to:fa::@19 fa::@18: scope:[fa] from fa::@7 (byte) bb#78 ← phi( fa::@7/(byte) bb#34 ) - (byte) be#114 ← phi( fa::@7/(byte) be#157 ) (byte) bd#102 ← phi( fa::@7/(byte) bd#144 ) (byte) bc#46 ← phi( fa::@7/(byte) bc#80 ) (byte) bc#21 ← ++ (byte) bc#46 @@ -575,13 +494,10 @@ fa::@18: scope:[fa] from fa::@7 fa::@28: scope:[fa] from fa::@18 (byte) bc#111 ← phi( fa::@18/(byte) bc#21 ) (byte) bb#58 ← phi( fa::@18/(byte) bb#78 ) - (byte) be#68 ← phi( fa::@18/(byte) be#35 ) (byte) bd#57 ← phi( fa::@18/(byte) bd#35 ) (byte) bd#21 ← (byte) bd#57 - (byte) be#21 ← (byte) be#68 to:fa::@8 fa::@9: scope:[fa] from fa::@29 fa::@8 - (byte) be#117 ← phi( fa::@29/(byte) be#22 fa::@8/(byte) be#158 ) (byte) bd#105 ← phi( fa::@29/(byte) bd#22 fa::@8/(byte) bd#145 ) (byte) bc#83 ← phi( fa::@29/(byte) bc#112 fa::@8/(byte) bc#81 ) (byte) bb#36 ← phi( fa::@29/(byte) bb#59 fa::@8/(byte) bb#35 ) @@ -591,7 +507,6 @@ fa::@9: scope:[fa] from fa::@29 fa::@8 to:fa::@20 fa::@19: scope:[fa] from fa::@8 (byte) bb#79 ← phi( fa::@8/(byte) bb#35 ) - (byte) be#115 ← phi( fa::@8/(byte) be#158 ) (byte) bd#103 ← phi( fa::@8/(byte) bd#145 ) (byte) bc#47 ← phi( fa::@8/(byte) bc#81 ) (byte) bc#22 ← ++ (byte) bc#47 @@ -600,37 +515,29 @@ fa::@19: scope:[fa] from fa::@8 fa::@29: scope:[fa] from fa::@19 (byte) bc#112 ← phi( fa::@19/(byte) bc#22 ) (byte) bb#59 ← phi( fa::@19/(byte) bb#79 ) - (byte) be#69 ← phi( fa::@19/(byte) be#35 ) (byte) bd#58 ← phi( fa::@19/(byte) bd#35 ) (byte) bd#22 ← (byte) bd#58 - (byte) be#22 ← (byte) be#69 to:fa::@9 fa::@20: scope:[fa] from fa::@9 - (byte) be#116 ← phi( fa::@9/(byte) be#117 ) (byte) bd#104 ← phi( fa::@9/(byte) bd#105 ) (byte) bc#23 ← (number) 0 call fb to:fa::@30 fa::@30: scope:[fa] from fa::@20 (byte) bc#82 ← phi( fa::@20/(byte) bc#23 ) - (byte) be#70 ← phi( fa::@20/(byte) be#35 ) (byte) bd#59 ← phi( fa::@20/(byte) bd#35 ) (byte) bd#23 ← (byte) bd#59 - (byte) be#23 ← (byte) be#70 to:fa::@return fa::@return: scope:[fa] from fa::@30 fa::@9 - (byte) be#71 ← phi( fa::@30/(byte) be#23 fa::@9/(byte) be#117 ) (byte) bd#60 ← phi( fa::@30/(byte) bd#23 fa::@9/(byte) bd#105 ) (byte) bc#48 ← phi( fa::@30/(byte) bc#82 fa::@9/(byte) bc#83 ) (byte) bc#24 ← (byte) bc#48 (byte) bd#24 ← (byte) bd#60 - (byte) be#24 ← (byte) be#71 return to:@return (void()) fb() fb: scope:[fb] from fa::@11 fa::@12 fa::@13 fa::@14 fa::@15 fa::@16 fa::@17 fa::@18 fa::@19 fa::@20 - (byte) be#159 ← phi( fa::@11/(byte) be#107 fa::@12/(byte) be#108 fa::@13/(byte) be#109 fa::@14/(byte) be#110 fa::@15/(byte) be#111 fa::@16/(byte) be#112 fa::@17/(byte) be#113 fa::@18/(byte) be#114 fa::@19/(byte) be#115 fa::@20/(byte) be#116 ) (byte) bd#106 ← phi( fa::@11/(byte) bd#95 fa::@12/(byte) bd#96 fa::@13/(byte) bd#97 fa::@14/(byte) bd#98 fa::@15/(byte) bd#99 fa::@16/(byte) bd#100 fa::@17/(byte) bd#101 fa::@18/(byte) bd#102 fa::@19/(byte) bd#103 fa::@20/(byte) bd#104 ) (byte) bc#49 ← phi( fa::@11/(byte) bc#14 fa::@12/(byte) bc#15 fa::@13/(byte) bc#16 fa::@14/(byte) bc#17 fa::@15/(byte) bc#18 fa::@16/(byte) bc#19 fa::@17/(byte) bc#20 fa::@18/(byte) bc#21 fa::@19/(byte) bc#22 fa::@20/(byte) bc#23 ) (bool~) fb::$0 ← (byte) bc#49 == (number) 0 @@ -638,7 +545,6 @@ fb: scope:[fb] from fa::@11 fa::@12 fa::@13 fa::@14 fa::@15 fa::@16 fa::@17 fa: if((bool~) fb::$1) goto fb::@1 to:fb::@11 fb::@1: scope:[fb] from fb fb::@21 - (byte) be#160 ← phi( fb/(byte) be#159 fb::@21/(byte) be#25 ) (byte) bd#107 ← phi( fb/(byte) bd#106 fb::@21/(byte) bd#146 ) (byte) bc#50 ← phi( fb/(byte) bc#49 fb::@21/(byte) bc#84 ) (bool~) fb::$2 ← (byte) bc#50 == (number) 1 @@ -647,7 +553,6 @@ fb::@1: scope:[fb] from fb fb::@21 to:fb::@12 fb::@11: scope:[fb] from fb (byte) bc#113 ← phi( fb/(byte) bc#49 ) - (byte) be#118 ← phi( fb/(byte) be#159 ) (byte) bd#61 ← phi( fb/(byte) bd#106 ) (byte) bd#25 ← ++ (byte) bd#61 call fc @@ -655,11 +560,8 @@ fb::@11: scope:[fb] from fb fb::@21: scope:[fb] from fb::@11 (byte) bd#146 ← phi( fb::@11/(byte) bd#25 ) (byte) bc#84 ← phi( fb::@11/(byte) bc#113 ) - (byte) be#72 ← phi( fb::@11/(byte) be#46 ) - (byte) be#25 ← (byte) be#72 to:fb::@1 fb::@2: scope:[fb] from fb::@1 fb::@22 - (byte) be#161 ← phi( fb::@1/(byte) be#160 fb::@22/(byte) be#26 ) (byte) bd#108 ← phi( fb::@1/(byte) bd#107 fb::@22/(byte) bd#147 ) (byte) bc#51 ← phi( fb::@1/(byte) bc#50 fb::@22/(byte) bc#85 ) (bool~) fb::$4 ← (byte) bc#51 == (number) 2 @@ -668,7 +570,6 @@ fb::@2: scope:[fb] from fb::@1 fb::@22 to:fb::@13 fb::@12: scope:[fb] from fb::@1 (byte) bc#114 ← phi( fb::@1/(byte) bc#50 ) - (byte) be#119 ← phi( fb::@1/(byte) be#160 ) (byte) bd#62 ← phi( fb::@1/(byte) bd#107 ) (byte) bd#26 ← ++ (byte) bd#62 call fc @@ -676,11 +577,8 @@ fb::@12: scope:[fb] from fb::@1 fb::@22: scope:[fb] from fb::@12 (byte) bd#147 ← phi( fb::@12/(byte) bd#26 ) (byte) bc#85 ← phi( fb::@12/(byte) bc#114 ) - (byte) be#73 ← phi( fb::@12/(byte) be#46 ) - (byte) be#26 ← (byte) be#73 to:fb::@2 fb::@3: scope:[fb] from fb::@2 fb::@23 - (byte) be#162 ← phi( fb::@2/(byte) be#161 fb::@23/(byte) be#27 ) (byte) bd#109 ← phi( fb::@2/(byte) bd#108 fb::@23/(byte) bd#148 ) (byte) bc#52 ← phi( fb::@2/(byte) bc#51 fb::@23/(byte) bc#86 ) (bool~) fb::$6 ← (byte) bc#52 == (number) 3 @@ -689,7 +587,6 @@ fb::@3: scope:[fb] from fb::@2 fb::@23 to:fb::@14 fb::@13: scope:[fb] from fb::@2 (byte) bc#115 ← phi( fb::@2/(byte) bc#51 ) - (byte) be#120 ← phi( fb::@2/(byte) be#161 ) (byte) bd#63 ← phi( fb::@2/(byte) bd#108 ) (byte) bd#27 ← ++ (byte) bd#63 call fc @@ -697,11 +594,8 @@ fb::@13: scope:[fb] from fb::@2 fb::@23: scope:[fb] from fb::@13 (byte) bd#148 ← phi( fb::@13/(byte) bd#27 ) (byte) bc#86 ← phi( fb::@13/(byte) bc#115 ) - (byte) be#74 ← phi( fb::@13/(byte) be#46 ) - (byte) be#27 ← (byte) be#74 to:fb::@3 fb::@4: scope:[fb] from fb::@24 fb::@3 - (byte) be#163 ← phi( fb::@24/(byte) be#28 fb::@3/(byte) be#162 ) (byte) bd#110 ← phi( fb::@24/(byte) bd#149 fb::@3/(byte) bd#109 ) (byte) bc#53 ← phi( fb::@24/(byte) bc#87 fb::@3/(byte) bc#52 ) (bool~) fb::$8 ← (byte) bc#53 == (number) 4 @@ -710,7 +604,6 @@ fb::@4: scope:[fb] from fb::@24 fb::@3 to:fb::@15 fb::@14: scope:[fb] from fb::@3 (byte) bc#116 ← phi( fb::@3/(byte) bc#52 ) - (byte) be#121 ← phi( fb::@3/(byte) be#162 ) (byte) bd#64 ← phi( fb::@3/(byte) bd#109 ) (byte) bd#28 ← ++ (byte) bd#64 call fc @@ -718,11 +611,8 @@ fb::@14: scope:[fb] from fb::@3 fb::@24: scope:[fb] from fb::@14 (byte) bd#149 ← phi( fb::@14/(byte) bd#28 ) (byte) bc#87 ← phi( fb::@14/(byte) bc#116 ) - (byte) be#75 ← phi( fb::@14/(byte) be#46 ) - (byte) be#28 ← (byte) be#75 to:fb::@4 fb::@5: scope:[fb] from fb::@25 fb::@4 - (byte) be#164 ← phi( fb::@25/(byte) be#29 fb::@4/(byte) be#163 ) (byte) bd#111 ← phi( fb::@25/(byte) bd#150 fb::@4/(byte) bd#110 ) (byte) bc#54 ← phi( fb::@25/(byte) bc#88 fb::@4/(byte) bc#53 ) (bool~) fb::$10 ← (byte) bc#54 == (number) 5 @@ -731,7 +621,6 @@ fb::@5: scope:[fb] from fb::@25 fb::@4 to:fb::@16 fb::@15: scope:[fb] from fb::@4 (byte) bc#117 ← phi( fb::@4/(byte) bc#53 ) - (byte) be#122 ← phi( fb::@4/(byte) be#163 ) (byte) bd#65 ← phi( fb::@4/(byte) bd#110 ) (byte) bd#29 ← ++ (byte) bd#65 call fc @@ -739,11 +628,8 @@ fb::@15: scope:[fb] from fb::@4 fb::@25: scope:[fb] from fb::@15 (byte) bd#150 ← phi( fb::@15/(byte) bd#29 ) (byte) bc#88 ← phi( fb::@15/(byte) bc#117 ) - (byte) be#76 ← phi( fb::@15/(byte) be#46 ) - (byte) be#29 ← (byte) be#76 to:fb::@5 fb::@6: scope:[fb] from fb::@26 fb::@5 - (byte) be#165 ← phi( fb::@26/(byte) be#30 fb::@5/(byte) be#164 ) (byte) bd#112 ← phi( fb::@26/(byte) bd#151 fb::@5/(byte) bd#111 ) (byte) bc#55 ← phi( fb::@26/(byte) bc#89 fb::@5/(byte) bc#54 ) (bool~) fb::$12 ← (byte) bc#55 == (number) 6 @@ -752,7 +638,6 @@ fb::@6: scope:[fb] from fb::@26 fb::@5 to:fb::@17 fb::@16: scope:[fb] from fb::@5 (byte) bc#118 ← phi( fb::@5/(byte) bc#54 ) - (byte) be#123 ← phi( fb::@5/(byte) be#164 ) (byte) bd#66 ← phi( fb::@5/(byte) bd#111 ) (byte) bd#30 ← ++ (byte) bd#66 call fc @@ -760,11 +645,8 @@ fb::@16: scope:[fb] from fb::@5 fb::@26: scope:[fb] from fb::@16 (byte) bd#151 ← phi( fb::@16/(byte) bd#30 ) (byte) bc#89 ← phi( fb::@16/(byte) bc#118 ) - (byte) be#77 ← phi( fb::@16/(byte) be#46 ) - (byte) be#30 ← (byte) be#77 to:fb::@6 fb::@7: scope:[fb] from fb::@27 fb::@6 - (byte) be#166 ← phi( fb::@27/(byte) be#31 fb::@6/(byte) be#165 ) (byte) bd#113 ← phi( fb::@27/(byte) bd#152 fb::@6/(byte) bd#112 ) (byte) bc#56 ← phi( fb::@27/(byte) bc#90 fb::@6/(byte) bc#55 ) (bool~) fb::$14 ← (byte) bc#56 == (number) 7 @@ -773,7 +655,6 @@ fb::@7: scope:[fb] from fb::@27 fb::@6 to:fb::@18 fb::@17: scope:[fb] from fb::@6 (byte) bc#119 ← phi( fb::@6/(byte) bc#55 ) - (byte) be#124 ← phi( fb::@6/(byte) be#165 ) (byte) bd#67 ← phi( fb::@6/(byte) bd#112 ) (byte) bd#31 ← ++ (byte) bd#67 call fc @@ -781,11 +662,8 @@ fb::@17: scope:[fb] from fb::@6 fb::@27: scope:[fb] from fb::@17 (byte) bd#152 ← phi( fb::@17/(byte) bd#31 ) (byte) bc#90 ← phi( fb::@17/(byte) bc#119 ) - (byte) be#78 ← phi( fb::@17/(byte) be#46 ) - (byte) be#31 ← (byte) be#78 to:fb::@7 fb::@8: scope:[fb] from fb::@28 fb::@7 - (byte) be#167 ← phi( fb::@28/(byte) be#32 fb::@7/(byte) be#166 ) (byte) bd#114 ← phi( fb::@28/(byte) bd#153 fb::@7/(byte) bd#113 ) (byte) bc#57 ← phi( fb::@28/(byte) bc#91 fb::@7/(byte) bc#56 ) (bool~) fb::$16 ← (byte) bc#57 == (number) 8 @@ -794,7 +672,6 @@ fb::@8: scope:[fb] from fb::@28 fb::@7 to:fb::@19 fb::@18: scope:[fb] from fb::@7 (byte) bc#120 ← phi( fb::@7/(byte) bc#56 ) - (byte) be#125 ← phi( fb::@7/(byte) be#166 ) (byte) bd#68 ← phi( fb::@7/(byte) bd#113 ) (byte) bd#32 ← ++ (byte) bd#68 call fc @@ -802,11 +679,8 @@ fb::@18: scope:[fb] from fb::@7 fb::@28: scope:[fb] from fb::@18 (byte) bd#153 ← phi( fb::@18/(byte) bd#32 ) (byte) bc#91 ← phi( fb::@18/(byte) bc#120 ) - (byte) be#79 ← phi( fb::@18/(byte) be#46 ) - (byte) be#32 ← (byte) be#79 to:fb::@8 fb::@9: scope:[fb] from fb::@29 fb::@8 - (byte) be#128 ← phi( fb::@29/(byte) be#33 fb::@8/(byte) be#167 ) (byte) bd#116 ← phi( fb::@29/(byte) bd#154 fb::@8/(byte) bd#114 ) (byte) bc#58 ← phi( fb::@29/(byte) bc#92 fb::@8/(byte) bc#57 ) (bool~) fb::$18 ← (byte) bc#58 == (number) 9 @@ -815,7 +689,6 @@ fb::@9: scope:[fb] from fb::@29 fb::@8 to:fb::@20 fb::@19: scope:[fb] from fb::@8 (byte) bc#121 ← phi( fb::@8/(byte) bc#57 ) - (byte) be#126 ← phi( fb::@8/(byte) be#167 ) (byte) bd#69 ← phi( fb::@8/(byte) bd#114 ) (byte) bd#33 ← ++ (byte) bd#69 call fc @@ -823,37 +696,28 @@ fb::@19: scope:[fb] from fb::@8 fb::@29: scope:[fb] from fb::@19 (byte) bd#154 ← phi( fb::@19/(byte) bd#33 ) (byte) bc#92 ← phi( fb::@19/(byte) bc#121 ) - (byte) be#80 ← phi( fb::@19/(byte) be#46 ) - (byte) be#33 ← (byte) be#80 to:fb::@9 fb::@20: scope:[fb] from fb::@9 - (byte) be#127 ← phi( fb::@9/(byte) be#128 ) (byte) bd#34 ← (number) 0 call fc to:fb::@30 fb::@30: scope:[fb] from fb::@20 (byte) bd#115 ← phi( fb::@20/(byte) bd#34 ) - (byte) be#81 ← phi( fb::@20/(byte) be#46 ) - (byte) be#34 ← (byte) be#81 to:fb::@return fb::@return: scope:[fb] from fb::@30 fb::@9 - (byte) be#82 ← phi( fb::@30/(byte) be#34 fb::@9/(byte) be#128 ) (byte) bd#70 ← phi( fb::@30/(byte) bd#115 fb::@9/(byte) bd#116 ) (byte) bd#35 ← (byte) bd#70 - (byte) be#35 ← (byte) be#82 return to:@return (void()) fc() fc: scope:[fc] from fb::@11 fb::@12 fb::@13 fb::@14 fb::@15 fb::@16 fb::@17 fb::@18 fb::@19 fb::@20 - (byte) be#129 ← phi( fb::@11/(byte) be#118 fb::@12/(byte) be#119 fb::@13/(byte) be#120 fb::@14/(byte) be#121 fb::@15/(byte) be#122 fb::@16/(byte) be#123 fb::@17/(byte) be#124 fb::@18/(byte) be#125 fb::@19/(byte) be#126 fb::@20/(byte) be#127 ) (byte) bd#71 ← phi( fb::@11/(byte) bd#25 fb::@12/(byte) bd#26 fb::@13/(byte) bd#27 fb::@14/(byte) bd#28 fb::@15/(byte) bd#29 fb::@16/(byte) bd#30 fb::@17/(byte) bd#31 fb::@18/(byte) bd#32 fb::@19/(byte) bd#33 fb::@20/(byte) bd#34 ) (bool~) fc::$0 ← (byte) bd#71 == (number) 0 (bool~) fc::$1 ← ! (bool~) fc::$0 if((bool~) fc::$1) goto fc::@1 to:fc::@11 fc::@1: scope:[fc] from fc fc::@11 - (byte) be#130 ← phi( fc/(byte) be#129 fc::@11/(byte) be#36 ) (byte) bd#72 ← phi( fc/(byte) bd#71 fc::@11/(byte) bd#117 ) (bool~) fc::$2 ← (byte) bd#72 == (number) 1 (bool~) fc::$3 ← ! (bool~) fc::$2 @@ -861,11 +725,8 @@ fc::@1: scope:[fc] from fc fc::@11 to:fc::@12 fc::@11: scope:[fc] from fc (byte) bd#117 ← phi( fc/(byte) bd#71 ) - (byte) be#83 ← phi( fc/(byte) be#129 ) - (byte) be#36 ← ++ (byte) be#83 to:fc::@1 fc::@2: scope:[fc] from fc::@1 fc::@12 - (byte) be#131 ← phi( fc::@1/(byte) be#130 fc::@12/(byte) be#37 ) (byte) bd#73 ← phi( fc::@1/(byte) bd#72 fc::@12/(byte) bd#118 ) (bool~) fc::$4 ← (byte) bd#73 == (number) 2 (bool~) fc::$5 ← ! (bool~) fc::$4 @@ -873,11 +734,8 @@ fc::@2: scope:[fc] from fc::@1 fc::@12 to:fc::@13 fc::@12: scope:[fc] from fc::@1 (byte) bd#118 ← phi( fc::@1/(byte) bd#72 ) - (byte) be#84 ← phi( fc::@1/(byte) be#130 ) - (byte) be#37 ← ++ (byte) be#84 to:fc::@2 fc::@3: scope:[fc] from fc::@13 fc::@2 - (byte) be#132 ← phi( fc::@13/(byte) be#38 fc::@2/(byte) be#131 ) (byte) bd#74 ← phi( fc::@13/(byte) bd#119 fc::@2/(byte) bd#73 ) (bool~) fc::$6 ← (byte) bd#74 == (number) 3 (bool~) fc::$7 ← ! (bool~) fc::$6 @@ -885,11 +743,8 @@ fc::@3: scope:[fc] from fc::@13 fc::@2 to:fc::@14 fc::@13: scope:[fc] from fc::@2 (byte) bd#119 ← phi( fc::@2/(byte) bd#73 ) - (byte) be#85 ← phi( fc::@2/(byte) be#131 ) - (byte) be#38 ← ++ (byte) be#85 to:fc::@3 fc::@4: scope:[fc] from fc::@14 fc::@3 - (byte) be#133 ← phi( fc::@14/(byte) be#39 fc::@3/(byte) be#132 ) (byte) bd#75 ← phi( fc::@14/(byte) bd#120 fc::@3/(byte) bd#74 ) (bool~) fc::$8 ← (byte) bd#75 == (number) 4 (bool~) fc::$9 ← ! (bool~) fc::$8 @@ -897,11 +752,8 @@ fc::@4: scope:[fc] from fc::@14 fc::@3 to:fc::@15 fc::@14: scope:[fc] from fc::@3 (byte) bd#120 ← phi( fc::@3/(byte) bd#74 ) - (byte) be#86 ← phi( fc::@3/(byte) be#132 ) - (byte) be#39 ← ++ (byte) be#86 to:fc::@4 fc::@5: scope:[fc] from fc::@15 fc::@4 - (byte) be#134 ← phi( fc::@15/(byte) be#40 fc::@4/(byte) be#133 ) (byte) bd#76 ← phi( fc::@15/(byte) bd#121 fc::@4/(byte) bd#75 ) (bool~) fc::$10 ← (byte) bd#76 == (number) 5 (bool~) fc::$11 ← ! (bool~) fc::$10 @@ -909,11 +761,8 @@ fc::@5: scope:[fc] from fc::@15 fc::@4 to:fc::@16 fc::@15: scope:[fc] from fc::@4 (byte) bd#121 ← phi( fc::@4/(byte) bd#75 ) - (byte) be#87 ← phi( fc::@4/(byte) be#133 ) - (byte) be#40 ← ++ (byte) be#87 to:fc::@5 fc::@6: scope:[fc] from fc::@16 fc::@5 - (byte) be#135 ← phi( fc::@16/(byte) be#41 fc::@5/(byte) be#134 ) (byte) bd#77 ← phi( fc::@16/(byte) bd#122 fc::@5/(byte) bd#76 ) (bool~) fc::$12 ← (byte) bd#77 == (number) 6 (bool~) fc::$13 ← ! (bool~) fc::$12 @@ -921,11 +770,8 @@ fc::@6: scope:[fc] from fc::@16 fc::@5 to:fc::@17 fc::@16: scope:[fc] from fc::@5 (byte) bd#122 ← phi( fc::@5/(byte) bd#76 ) - (byte) be#88 ← phi( fc::@5/(byte) be#134 ) - (byte) be#41 ← ++ (byte) be#88 to:fc::@6 fc::@7: scope:[fc] from fc::@17 fc::@6 - (byte) be#136 ← phi( fc::@17/(byte) be#42 fc::@6/(byte) be#135 ) (byte) bd#78 ← phi( fc::@17/(byte) bd#123 fc::@6/(byte) bd#77 ) (bool~) fc::$14 ← (byte) bd#78 == (number) 7 (bool~) fc::$15 ← ! (bool~) fc::$14 @@ -933,11 +779,8 @@ fc::@7: scope:[fc] from fc::@17 fc::@6 to:fc::@18 fc::@17: scope:[fc] from fc::@6 (byte) bd#123 ← phi( fc::@6/(byte) bd#77 ) - (byte) be#89 ← phi( fc::@6/(byte) be#135 ) - (byte) be#42 ← ++ (byte) be#89 to:fc::@7 fc::@8: scope:[fc] from fc::@18 fc::@7 - (byte) be#137 ← phi( fc::@18/(byte) be#43 fc::@7/(byte) be#136 ) (byte) bd#79 ← phi( fc::@18/(byte) bd#124 fc::@7/(byte) bd#78 ) (bool~) fc::$16 ← (byte) bd#79 == (number) 8 (bool~) fc::$17 ← ! (bool~) fc::$16 @@ -945,11 +788,8 @@ fc::@8: scope:[fc] from fc::@18 fc::@7 to:fc::@19 fc::@18: scope:[fc] from fc::@7 (byte) bd#124 ← phi( fc::@7/(byte) bd#78 ) - (byte) be#90 ← phi( fc::@7/(byte) be#136 ) - (byte) be#43 ← ++ (byte) be#90 to:fc::@8 fc::@9: scope:[fc] from fc::@19 fc::@8 - (byte) be#138 ← phi( fc::@19/(byte) be#44 fc::@8/(byte) be#137 ) (byte) bd#80 ← phi( fc::@19/(byte) bd#125 fc::@8/(byte) bd#79 ) (bool~) fc::$18 ← (byte) bd#80 == (number) 9 (bool~) fc::$19 ← ! (bool~) fc::$18 @@ -957,20 +797,14 @@ fc::@9: scope:[fc] from fc::@19 fc::@8 to:fc::@20 fc::@19: scope:[fc] from fc::@8 (byte) bd#125 ← phi( fc::@8/(byte) bd#79 ) - (byte) be#91 ← phi( fc::@8/(byte) be#137 ) - (byte) be#44 ← ++ (byte) be#91 to:fc::@9 fc::@20: scope:[fc] from fc::@9 - (byte) be#45 ← (number) 0 to:fc::@return fc::@return: scope:[fc] from fc::@20 fc::@9 - (byte) be#92 ← phi( fc::@20/(byte) be#45 fc::@9/(byte) be#138 ) - (byte) be#46 ← (byte) be#92 return to:@return @5: scope:[] from @begin (byte) ba#28 ← phi( @begin/(byte) ba#0 ) - (byte) be#139 ← phi( @begin/(byte) be#0 ) (byte) bd#126 ← phi( @begin/(byte) bd#0 ) (byte) bc#93 ← phi( @begin/(byte) bc#0 ) (byte) bb#60 ← phi( @begin/(byte) bb#0 ) @@ -978,14 +812,12 @@ fc::@return: scope:[fc] from fc::@20 fc::@9 to:@6 @6: scope:[] from @5 (byte) ba#16 ← phi( @5/(byte) ba#2 ) - (byte) be#93 ← phi( @5/(byte) be#2 ) (byte) bd#81 ← phi( @5/(byte) bd#2 ) (byte) bc#59 ← phi( @5/(byte) bc#2 ) (byte) bb#37 ← phi( @5/(byte) bb#2 ) (byte) bb#14 ← (byte) bb#37 (byte) bc#25 ← (byte) bc#59 (byte) bd#36 ← (byte) bd#81 - (byte) be#47 ← (byte) be#93 (byte) ba#3 ← (byte) ba#16 to:@end @end: scope:[] from @6 @@ -1395,175 +1227,6 @@ SYMBOL TABLE SSA (byte) bd#97 (byte) bd#98 (byte) bd#99 -(byte) be -(byte) be#0 -(byte) be#1 -(byte) be#10 -(byte) be#100 -(byte) be#101 -(byte) be#102 -(byte) be#103 -(byte) be#104 -(byte) be#105 -(byte) be#106 -(byte) be#107 -(byte) be#108 -(byte) be#109 -(byte) be#11 -(byte) be#110 -(byte) be#111 -(byte) be#112 -(byte) be#113 -(byte) be#114 -(byte) be#115 -(byte) be#116 -(byte) be#117 -(byte) be#118 -(byte) be#119 -(byte) be#12 -(byte) be#120 -(byte) be#121 -(byte) be#122 -(byte) be#123 -(byte) be#124 -(byte) be#125 -(byte) be#126 -(byte) be#127 -(byte) be#128 -(byte) be#129 -(byte) be#13 -(byte) be#130 -(byte) be#131 -(byte) be#132 -(byte) be#133 -(byte) be#134 -(byte) be#135 -(byte) be#136 -(byte) be#137 -(byte) be#138 -(byte) be#139 -(byte) be#14 -(byte) be#140 -(byte) be#141 -(byte) be#142 -(byte) be#143 -(byte) be#144 -(byte) be#145 -(byte) be#146 -(byte) be#147 -(byte) be#148 -(byte) be#149 -(byte) be#15 -(byte) be#150 -(byte) be#151 -(byte) be#152 -(byte) be#153 -(byte) be#154 -(byte) be#155 -(byte) be#156 -(byte) be#157 -(byte) be#158 -(byte) be#159 -(byte) be#16 -(byte) be#160 -(byte) be#161 -(byte) be#162 -(byte) be#163 -(byte) be#164 -(byte) be#165 -(byte) be#166 -(byte) be#167 -(byte) be#17 -(byte) be#18 -(byte) be#19 -(byte) be#2 -(byte) be#20 -(byte) be#21 -(byte) be#22 -(byte) be#23 -(byte) be#24 -(byte) be#25 -(byte) be#26 -(byte) be#27 -(byte) be#28 -(byte) be#29 -(byte) be#3 -(byte) be#30 -(byte) be#31 -(byte) be#32 -(byte) be#33 -(byte) be#34 -(byte) be#35 -(byte) be#36 -(byte) be#37 -(byte) be#38 -(byte) be#39 -(byte) be#4 -(byte) be#40 -(byte) be#41 -(byte) be#42 -(byte) be#43 -(byte) be#44 -(byte) be#45 -(byte) be#46 -(byte) be#47 -(byte) be#48 -(byte) be#49 -(byte) be#5 -(byte) be#50 -(byte) be#51 -(byte) be#52 -(byte) be#53 -(byte) be#54 -(byte) be#55 -(byte) be#56 -(byte) be#57 -(byte) be#58 -(byte) be#59 -(byte) be#6 -(byte) be#60 -(byte) be#61 -(byte) be#62 -(byte) be#63 -(byte) be#64 -(byte) be#65 -(byte) be#66 -(byte) be#67 -(byte) be#68 -(byte) be#69 -(byte) be#7 -(byte) be#70 -(byte) be#71 -(byte) be#72 -(byte) be#73 -(byte) be#74 -(byte) be#75 -(byte) be#76 -(byte) be#77 -(byte) be#78 -(byte) be#79 -(byte) be#8 -(byte) be#80 -(byte) be#81 -(byte) be#82 -(byte) be#83 -(byte) be#84 -(byte) be#85 -(byte) be#86 -(byte) be#87 -(byte) be#88 -(byte) be#89 -(byte) be#9 -(byte) be#90 -(byte) be#91 -(byte) be#92 -(byte) be#93 -(byte) be#94 -(byte) be#95 -(byte) be#96 -(byte) be#97 -(byte) be#98 -(byte) be#99 (void()) f0() (bool~) f0::$0 (bool~) f0::$1 @@ -1807,12 +1470,10 @@ Adding number conversion cast (unumber) 6 in (bool~) fc::$12 ← (byte) bd#77 == Adding number conversion cast (unumber) 7 in (bool~) fc::$14 ← (byte) bd#78 == (number) 7 Adding number conversion cast (unumber) 8 in (bool~) fc::$16 ← (byte) bd#79 == (number) 8 Adding number conversion cast (unumber) 9 in (bool~) fc::$18 ← (byte) bd#80 == (number) 9 -Adding number conversion cast (unumber) 0 in (byte) be#45 ← (number) 0 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast (byte) bb#12 ← (unumber)(number) 0 Inlining cast (byte) bc#23 ← (unumber)(number) 0 Inlining cast (byte) bd#34 ← (unumber)(number) 0 -Inlining cast (byte) be#45 ← (unumber)(number) 0 Successful SSA optimization Pass2InlineCast Simplifying constant integer cast 0 Simplifying constant integer cast 1 @@ -1857,7 +1518,6 @@ Simplifying constant integer cast 6 Simplifying constant integer cast 7 Simplifying constant integer cast 8 Simplifying constant integer cast 9 -Simplifying constant integer cast 0 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 1 @@ -1902,299 +1562,221 @@ Finalized unsigned number type (byte) 6 Finalized unsigned number type (byte) 7 Finalized unsigned number type (byte) 8 Finalized unsigned number type (byte) 9 -Finalized unsigned number type (byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inversing boolean not [25] (bool~) f0::$1 ← (byte) ba#6 != (byte) 0 from [24] (bool~) f0::$0 ← (byte) ba#6 == (byte) 0 -Inversing boolean not [29] (bool~) f0::$3 ← (byte) ba#7 != (byte) 1 from [28] (bool~) f0::$2 ← (byte) ba#7 == (byte) 1 -Inversing boolean not [40] (bool~) f0::$5 ← (byte) ba#8 != (byte) 2 from [39] (bool~) f0::$4 ← (byte) ba#8 == (byte) 2 -Inversing boolean not [51] (bool~) f0::$7 ← (byte) ba#9 != (byte) 3 from [50] (bool~) f0::$6 ← (byte) ba#9 == (byte) 3 -Inversing boolean not [62] (bool~) f0::$9 ← (byte) ba#10 != (byte) 4 from [61] (bool~) f0::$8 ← (byte) ba#10 == (byte) 4 -Inversing boolean not [73] (bool~) f0::$11 ← (byte) ba#11 != (byte) 5 from [72] (bool~) f0::$10 ← (byte) ba#11 == (byte) 5 -Inversing boolean not [84] (bool~) f0::$13 ← (byte) ba#12 != (byte) 6 from [83] (bool~) f0::$12 ← (byte) ba#12 == (byte) 6 -Inversing boolean not [95] (bool~) f0::$15 ← (byte) ba#13 != (byte) 7 from [94] (bool~) f0::$14 ← (byte) ba#13 == (byte) 7 -Inversing boolean not [106] (bool~) f0::$17 ← (byte) ba#14 != (byte) 8 from [105] (bool~) f0::$16 ← (byte) ba#14 == (byte) 8 -Inversing boolean not [117] (bool~) f0::$19 ← (byte) ba#15 != (byte) 9 from [116] (bool~) f0::$18 ← (byte) ba#15 == (byte) 9 -Inversing boolean not [141] (bool~) fa::$1 ← (byte) bb#27 != (byte) 0 from [140] (bool~) fa::$0 ← (byte) bb#27 == (byte) 0 -Inversing boolean not [145] (bool~) fa::$3 ← (byte) bb#28 != (byte) 1 from [144] (bool~) fa::$2 ← (byte) bb#28 == (byte) 1 -Inversing boolean not [155] (bool~) fa::$5 ← (byte) bb#29 != (byte) 2 from [154] (bool~) fa::$4 ← (byte) bb#29 == (byte) 2 -Inversing boolean not [165] (bool~) fa::$7 ← (byte) bb#30 != (byte) 3 from [164] (bool~) fa::$6 ← (byte) bb#30 == (byte) 3 -Inversing boolean not [175] (bool~) fa::$9 ← (byte) bb#31 != (byte) 4 from [174] (bool~) fa::$8 ← (byte) bb#31 == (byte) 4 -Inversing boolean not [185] (bool~) fa::$11 ← (byte) bb#32 != (byte) 5 from [184] (bool~) fa::$10 ← (byte) bb#32 == (byte) 5 -Inversing boolean not [195] (bool~) fa::$13 ← (byte) bb#33 != (byte) 6 from [194] (bool~) fa::$12 ← (byte) bb#33 == (byte) 6 -Inversing boolean not [205] (bool~) fa::$15 ← (byte) bb#34 != (byte) 7 from [204] (bool~) fa::$14 ← (byte) bb#34 == (byte) 7 -Inversing boolean not [215] (bool~) fa::$17 ← (byte) bb#35 != (byte) 8 from [214] (bool~) fa::$16 ← (byte) bb#35 == (byte) 8 -Inversing boolean not [225] (bool~) fa::$19 ← (byte) bb#36 != (byte) 9 from [224] (bool~) fa::$18 ← (byte) bb#36 == (byte) 9 -Inversing boolean not [246] (bool~) fb::$1 ← (byte) bc#49 != (byte) 0 from [245] (bool~) fb::$0 ← (byte) bc#49 == (byte) 0 -Inversing boolean not [250] (bool~) fb::$3 ← (byte) bc#50 != (byte) 1 from [249] (bool~) fb::$2 ← (byte) bc#50 == (byte) 1 -Inversing boolean not [259] (bool~) fb::$5 ← (byte) bc#51 != (byte) 2 from [258] (bool~) fb::$4 ← (byte) bc#51 == (byte) 2 -Inversing boolean not [268] (bool~) fb::$7 ← (byte) bc#52 != (byte) 3 from [267] (bool~) fb::$6 ← (byte) bc#52 == (byte) 3 -Inversing boolean not [277] (bool~) fb::$9 ← (byte) bc#53 != (byte) 4 from [276] (bool~) fb::$8 ← (byte) bc#53 == (byte) 4 -Inversing boolean not [286] (bool~) fb::$11 ← (byte) bc#54 != (byte) 5 from [285] (bool~) fb::$10 ← (byte) bc#54 == (byte) 5 -Inversing boolean not [295] (bool~) fb::$13 ← (byte) bc#55 != (byte) 6 from [294] (bool~) fb::$12 ← (byte) bc#55 == (byte) 6 -Inversing boolean not [304] (bool~) fb::$15 ← (byte) bc#56 != (byte) 7 from [303] (bool~) fb::$14 ← (byte) bc#56 == (byte) 7 -Inversing boolean not [313] (bool~) fb::$17 ← (byte) bc#57 != (byte) 8 from [312] (bool~) fb::$16 ← (byte) bc#57 == (byte) 8 -Inversing boolean not [322] (bool~) fb::$19 ← (byte) bc#58 != (byte) 9 from [321] (bool~) fb::$18 ← (byte) bc#58 == (byte) 9 -Inversing boolean not [340] (bool~) fc::$1 ← (byte) bd#71 != (byte) 0 from [339] (bool~) fc::$0 ← (byte) bd#71 == (byte) 0 -Inversing boolean not [344] (bool~) fc::$3 ← (byte) bd#72 != (byte) 1 from [343] (bool~) fc::$2 ← (byte) bd#72 == (byte) 1 -Inversing boolean not [350] (bool~) fc::$5 ← (byte) bd#73 != (byte) 2 from [349] (bool~) fc::$4 ← (byte) bd#73 == (byte) 2 -Inversing boolean not [356] (bool~) fc::$7 ← (byte) bd#74 != (byte) 3 from [355] (bool~) fc::$6 ← (byte) bd#74 == (byte) 3 -Inversing boolean not [362] (bool~) fc::$9 ← (byte) bd#75 != (byte) 4 from [361] (bool~) fc::$8 ← (byte) bd#75 == (byte) 4 -Inversing boolean not [368] (bool~) fc::$11 ← (byte) bd#76 != (byte) 5 from [367] (bool~) fc::$10 ← (byte) bd#76 == (byte) 5 -Inversing boolean not [374] (bool~) fc::$13 ← (byte) bd#77 != (byte) 6 from [373] (bool~) fc::$12 ← (byte) bd#77 == (byte) 6 -Inversing boolean not [380] (bool~) fc::$15 ← (byte) bd#78 != (byte) 7 from [379] (bool~) fc::$14 ← (byte) bd#78 == (byte) 7 -Inversing boolean not [386] (bool~) fc::$17 ← (byte) bd#79 != (byte) 8 from [385] (bool~) fc::$16 ← (byte) bd#79 == (byte) 8 -Inversing boolean not [392] (bool~) fc::$19 ← (byte) bd#80 != (byte) 9 from [391] (bool~) fc::$18 ← (byte) bd#80 == (byte) 9 +Inversing boolean not [22] (bool~) f0::$1 ← (byte) ba#6 != (byte) 0 from [21] (bool~) f0::$0 ← (byte) ba#6 == (byte) 0 +Inversing boolean not [26] (bool~) f0::$3 ← (byte) ba#7 != (byte) 1 from [25] (bool~) f0::$2 ← (byte) ba#7 == (byte) 1 +Inversing boolean not [36] (bool~) f0::$5 ← (byte) ba#8 != (byte) 2 from [35] (bool~) f0::$4 ← (byte) ba#8 == (byte) 2 +Inversing boolean not [46] (bool~) f0::$7 ← (byte) ba#9 != (byte) 3 from [45] (bool~) f0::$6 ← (byte) ba#9 == (byte) 3 +Inversing boolean not [56] (bool~) f0::$9 ← (byte) ba#10 != (byte) 4 from [55] (bool~) f0::$8 ← (byte) ba#10 == (byte) 4 +Inversing boolean not [66] (bool~) f0::$11 ← (byte) ba#11 != (byte) 5 from [65] (bool~) f0::$10 ← (byte) ba#11 == (byte) 5 +Inversing boolean not [76] (bool~) f0::$13 ← (byte) ba#12 != (byte) 6 from [75] (bool~) f0::$12 ← (byte) ba#12 == (byte) 6 +Inversing boolean not [86] (bool~) f0::$15 ← (byte) ba#13 != (byte) 7 from [85] (bool~) f0::$14 ← (byte) ba#13 == (byte) 7 +Inversing boolean not [96] (bool~) f0::$17 ← (byte) ba#14 != (byte) 8 from [95] (bool~) f0::$16 ← (byte) ba#14 == (byte) 8 +Inversing boolean not [106] (bool~) f0::$19 ← (byte) ba#15 != (byte) 9 from [105] (bool~) f0::$18 ← (byte) ba#15 == (byte) 9 +Inversing boolean not [127] (bool~) fa::$1 ← (byte) bb#27 != (byte) 0 from [126] (bool~) fa::$0 ← (byte) bb#27 == (byte) 0 +Inversing boolean not [131] (bool~) fa::$3 ← (byte) bb#28 != (byte) 1 from [130] (bool~) fa::$2 ← (byte) bb#28 == (byte) 1 +Inversing boolean not [140] (bool~) fa::$5 ← (byte) bb#29 != (byte) 2 from [139] (bool~) fa::$4 ← (byte) bb#29 == (byte) 2 +Inversing boolean not [149] (bool~) fa::$7 ← (byte) bb#30 != (byte) 3 from [148] (bool~) fa::$6 ← (byte) bb#30 == (byte) 3 +Inversing boolean not [158] (bool~) fa::$9 ← (byte) bb#31 != (byte) 4 from [157] (bool~) fa::$8 ← (byte) bb#31 == (byte) 4 +Inversing boolean not [167] (bool~) fa::$11 ← (byte) bb#32 != (byte) 5 from [166] (bool~) fa::$10 ← (byte) bb#32 == (byte) 5 +Inversing boolean not [176] (bool~) fa::$13 ← (byte) bb#33 != (byte) 6 from [175] (bool~) fa::$12 ← (byte) bb#33 == (byte) 6 +Inversing boolean not [185] (bool~) fa::$15 ← (byte) bb#34 != (byte) 7 from [184] (bool~) fa::$14 ← (byte) bb#34 == (byte) 7 +Inversing boolean not [194] (bool~) fa::$17 ← (byte) bb#35 != (byte) 8 from [193] (bool~) fa::$16 ← (byte) bb#35 == (byte) 8 +Inversing boolean not [203] (bool~) fa::$19 ← (byte) bb#36 != (byte) 9 from [202] (bool~) fa::$18 ← (byte) bb#36 == (byte) 9 +Inversing boolean not [221] (bool~) fb::$1 ← (byte) bc#49 != (byte) 0 from [220] (bool~) fb::$0 ← (byte) bc#49 == (byte) 0 +Inversing boolean not [225] (bool~) fb::$3 ← (byte) bc#50 != (byte) 1 from [224] (bool~) fb::$2 ← (byte) bc#50 == (byte) 1 +Inversing boolean not [233] (bool~) fb::$5 ← (byte) bc#51 != (byte) 2 from [232] (bool~) fb::$4 ← (byte) bc#51 == (byte) 2 +Inversing boolean not [241] (bool~) fb::$7 ← (byte) bc#52 != (byte) 3 from [240] (bool~) fb::$6 ← (byte) bc#52 == (byte) 3 +Inversing boolean not [249] (bool~) fb::$9 ← (byte) bc#53 != (byte) 4 from [248] (bool~) fb::$8 ← (byte) bc#53 == (byte) 4 +Inversing boolean not [257] (bool~) fb::$11 ← (byte) bc#54 != (byte) 5 from [256] (bool~) fb::$10 ← (byte) bc#54 == (byte) 5 +Inversing boolean not [265] (bool~) fb::$13 ← (byte) bc#55 != (byte) 6 from [264] (bool~) fb::$12 ← (byte) bc#55 == (byte) 6 +Inversing boolean not [273] (bool~) fb::$15 ← (byte) bc#56 != (byte) 7 from [272] (bool~) fb::$14 ← (byte) bc#56 == (byte) 7 +Inversing boolean not [281] (bool~) fb::$17 ← (byte) bc#57 != (byte) 8 from [280] (bool~) fb::$16 ← (byte) bc#57 == (byte) 8 +Inversing boolean not [289] (bool~) fb::$19 ← (byte) bc#58 != (byte) 9 from [288] (bool~) fb::$18 ← (byte) bc#58 == (byte) 9 +Inversing boolean not [303] (bool~) fc::$1 ← (byte) bd#71 != (byte) 0 from [302] (bool~) fc::$0 ← (byte) bd#71 == (byte) 0 +Inversing boolean not [307] (bool~) fc::$3 ← (byte) bd#72 != (byte) 1 from [306] (bool~) fc::$2 ← (byte) bd#72 == (byte) 1 +Inversing boolean not [312] (bool~) fc::$5 ← (byte) bd#73 != (byte) 2 from [311] (bool~) fc::$4 ← (byte) bd#73 == (byte) 2 +Inversing boolean not [317] (bool~) fc::$7 ← (byte) bd#74 != (byte) 3 from [316] (bool~) fc::$6 ← (byte) bd#74 == (byte) 3 +Inversing boolean not [322] (bool~) fc::$9 ← (byte) bd#75 != (byte) 4 from [321] (bool~) fc::$8 ← (byte) bd#75 == (byte) 4 +Inversing boolean not [327] (bool~) fc::$11 ← (byte) bd#76 != (byte) 5 from [326] (bool~) fc::$10 ← (byte) bd#76 == (byte) 5 +Inversing boolean not [332] (bool~) fc::$13 ← (byte) bd#77 != (byte) 6 from [331] (bool~) fc::$12 ← (byte) bd#77 == (byte) 6 +Inversing boolean not [337] (bool~) fc::$15 ← (byte) bd#78 != (byte) 7 from [336] (bool~) fc::$14 ← (byte) bd#78 == (byte) 7 +Inversing boolean not [342] (bool~) fc::$17 ← (byte) bd#79 != (byte) 8 from [341] (bool~) fc::$16 ← (byte) bd#79 == (byte) 8 +Inversing boolean not [347] (bool~) fc::$19 ← (byte) bd#80 != (byte) 9 from [346] (bool~) fc::$18 ← (byte) bd#80 == (byte) 9 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte) bb#16 = (byte) bb#38 (byte) bb#39 (byte) bb#2 Alias (byte) bc#2 = (byte) bc#60 (byte) bc#61 (byte) bc#27 Alias (byte) bd#2 = (byte) bd#82 (byte) bd#83 (byte) bd#38 -Alias (byte) be#2 = (byte) be#94 (byte) be#95 (byte) be#49 Alias (byte) ba#17 = (byte) ba#18 (byte) ba#4 (byte) ba#5 (byte) ba#2 Alias (byte) bb#1 = (byte) bb#15 Alias (byte) bc#1 = (byte) bc#26 Alias (byte) bd#1 = (byte) bd#37 -Alias (byte) be#1 = (byte) be#48 Alias (byte) bb#17 = (byte) bb#40 Alias (byte) bc#62 = (byte) bc#95 Alias (byte) bd#128 = (byte) bd#84 -Alias (byte) be#141 = (byte) be#96 Alias (byte) ba#19 = (byte) ba#30 (byte) ba#6 Alias (byte) bb#3 = (byte) bb#62 Alias (byte) bc#28 = (byte) bc#3 Alias (byte) bd#3 = (byte) bd#39 -Alias (byte) be#3 = (byte) be#50 Alias (byte) bb#18 = (byte) bb#41 Alias (byte) bc#63 = (byte) bc#96 Alias (byte) bd#129 = (byte) bd#85 -Alias (byte) be#142 = (byte) be#97 Alias (byte) ba#20 = (byte) ba#31 (byte) ba#7 Alias (byte) bb#4 = (byte) bb#63 Alias (byte) bc#29 = (byte) bc#4 Alias (byte) bd#4 = (byte) bd#40 -Alias (byte) be#4 = (byte) be#51 Alias (byte) bb#19 = (byte) bb#42 Alias (byte) bc#64 = (byte) bc#97 Alias (byte) bd#130 = (byte) bd#86 -Alias (byte) be#143 = (byte) be#98 Alias (byte) ba#21 = (byte) ba#32 (byte) ba#8 Alias (byte) bb#5 = (byte) bb#64 Alias (byte) bc#30 = (byte) bc#5 Alias (byte) bd#41 = (byte) bd#5 -Alias (byte) be#5 = (byte) be#52 Alias (byte) bb#20 = (byte) bb#43 Alias (byte) bc#65 = (byte) bc#98 Alias (byte) bd#131 = (byte) bd#87 -Alias (byte) be#144 = (byte) be#99 Alias (byte) ba#22 = (byte) ba#33 (byte) ba#9 Alias (byte) bb#6 = (byte) bb#65 Alias (byte) bc#31 = (byte) bc#6 Alias (byte) bd#42 = (byte) bd#6 -Alias (byte) be#53 = (byte) be#6 Alias (byte) bb#21 = (byte) bb#44 Alias (byte) bc#66 = (byte) bc#99 Alias (byte) bd#132 = (byte) bd#88 -Alias (byte) be#100 = (byte) be#145 Alias (byte) ba#10 = (byte) ba#34 (byte) ba#23 Alias (byte) bb#66 = (byte) bb#7 Alias (byte) bc#32 = (byte) bc#7 Alias (byte) bd#43 = (byte) bd#7 -Alias (byte) be#54 = (byte) be#7 Alias (byte) bb#22 = (byte) bb#45 Alias (byte) bc#100 = (byte) bc#67 Alias (byte) bd#133 = (byte) bd#89 -Alias (byte) be#101 = (byte) be#146 Alias (byte) ba#11 = (byte) ba#35 (byte) ba#24 Alias (byte) bb#67 = (byte) bb#8 Alias (byte) bc#33 = (byte) bc#8 Alias (byte) bd#44 = (byte) bd#8 -Alias (byte) be#55 = (byte) be#8 Alias (byte) bb#23 = (byte) bb#46 Alias (byte) bc#101 = (byte) bc#68 Alias (byte) bd#134 = (byte) bd#90 -Alias (byte) be#102 = (byte) be#147 Alias (byte) ba#12 = (byte) ba#36 (byte) ba#25 Alias (byte) bb#68 = (byte) bb#9 Alias (byte) bc#34 = (byte) bc#9 Alias (byte) bd#45 = (byte) bd#9 -Alias (byte) be#56 = (byte) be#9 Alias (byte) bb#24 = (byte) bb#47 Alias (byte) bc#102 = (byte) bc#69 Alias (byte) bd#135 = (byte) bd#91 -Alias (byte) be#103 = (byte) be#148 Alias (byte) ba#13 = (byte) ba#37 (byte) ba#26 Alias (byte) bb#10 = (byte) bb#69 Alias (byte) bc#10 = (byte) bc#35 Alias (byte) bd#10 = (byte) bd#46 -Alias (byte) be#10 = (byte) be#57 Alias (byte) bb#25 = (byte) bb#48 Alias (byte) bc#103 = (byte) bc#70 Alias (byte) bd#136 = (byte) bd#92 -Alias (byte) be#104 = (byte) be#149 Alias (byte) ba#14 = (byte) ba#38 (byte) ba#27 Alias (byte) bb#11 = (byte) bb#70 Alias (byte) bc#11 = (byte) bc#36 Alias (byte) bd#11 = (byte) bd#47 -Alias (byte) be#11 = (byte) be#58 Alias (byte) bc#71 = (byte) bc#72 Alias (byte) bd#93 = (byte) bd#94 -Alias (byte) be#105 = (byte) be#106 Alias (byte) bb#12 = (byte) bb#49 Alias (byte) bc#12 = (byte) bc#37 Alias (byte) bd#12 = (byte) bd#48 -Alias (byte) be#12 = (byte) be#59 Alias (byte) bb#13 = (byte) bb#26 Alias (byte) bc#13 = (byte) bc#38 Alias (byte) bd#13 = (byte) bd#49 -Alias (byte) be#13 = (byte) be#60 Alias (byte) bc#39 = (byte) bc#73 Alias (byte) bd#137 = (byte) bd#95 -Alias (byte) be#107 = (byte) be#150 Alias (byte) bb#27 = (byte) bb#71 (byte) bb#51 Alias (byte) bc#104 = (byte) bc#14 Alias (byte) bd#14 = (byte) bd#50 -Alias (byte) be#14 = (byte) be#61 Alias (byte) bc#40 = (byte) bc#74 Alias (byte) bd#138 = (byte) bd#96 -Alias (byte) be#108 = (byte) be#151 Alias (byte) bb#28 = (byte) bb#72 (byte) bb#52 Alias (byte) bc#105 = (byte) bc#15 Alias (byte) bd#15 = (byte) bd#51 -Alias (byte) be#15 = (byte) be#62 Alias (byte) bc#41 = (byte) bc#75 Alias (byte) bd#139 = (byte) bd#97 -Alias (byte) be#109 = (byte) be#152 Alias (byte) bb#29 = (byte) bb#73 (byte) bb#53 Alias (byte) bc#106 = (byte) bc#16 Alias (byte) bd#16 = (byte) bd#52 -Alias (byte) be#16 = (byte) be#63 Alias (byte) bc#42 = (byte) bc#76 Alias (byte) bd#140 = (byte) bd#98 -Alias (byte) be#110 = (byte) be#153 Alias (byte) bb#30 = (byte) bb#74 (byte) bb#54 Alias (byte) bc#107 = (byte) bc#17 Alias (byte) bd#17 = (byte) bd#53 -Alias (byte) be#17 = (byte) be#64 Alias (byte) bc#43 = (byte) bc#77 Alias (byte) bd#141 = (byte) bd#99 -Alias (byte) be#111 = (byte) be#154 Alias (byte) bb#31 = (byte) bb#75 (byte) bb#55 Alias (byte) bc#108 = (byte) bc#18 Alias (byte) bd#18 = (byte) bd#54 -Alias (byte) be#18 = (byte) be#65 Alias (byte) bc#44 = (byte) bc#78 Alias (byte) bd#100 = (byte) bd#142 -Alias (byte) be#112 = (byte) be#155 Alias (byte) bb#32 = (byte) bb#76 (byte) bb#56 Alias (byte) bc#109 = (byte) bc#19 Alias (byte) bd#19 = (byte) bd#55 -Alias (byte) be#19 = (byte) be#66 Alias (byte) bc#45 = (byte) bc#79 Alias (byte) bd#101 = (byte) bd#143 -Alias (byte) be#113 = (byte) be#156 Alias (byte) bb#33 = (byte) bb#77 (byte) bb#57 Alias (byte) bc#110 = (byte) bc#20 Alias (byte) bd#20 = (byte) bd#56 -Alias (byte) be#20 = (byte) be#67 Alias (byte) bc#46 = (byte) bc#80 Alias (byte) bd#102 = (byte) bd#144 -Alias (byte) be#114 = (byte) be#157 Alias (byte) bb#34 = (byte) bb#78 (byte) bb#58 Alias (byte) bc#111 = (byte) bc#21 Alias (byte) bd#21 = (byte) bd#57 -Alias (byte) be#21 = (byte) be#68 Alias (byte) bc#47 = (byte) bc#81 Alias (byte) bd#103 = (byte) bd#145 -Alias (byte) be#115 = (byte) be#158 Alias (byte) bb#35 = (byte) bb#79 (byte) bb#59 Alias (byte) bc#112 = (byte) bc#22 Alias (byte) bd#22 = (byte) bd#58 -Alias (byte) be#22 = (byte) be#69 Alias (byte) bd#104 = (byte) bd#105 -Alias (byte) be#116 = (byte) be#117 Alias (byte) bc#23 = (byte) bc#82 Alias (byte) bd#23 = (byte) bd#59 -Alias (byte) be#23 = (byte) be#70 Alias (byte) bc#24 = (byte) bc#48 Alias (byte) bd#24 = (byte) bd#60 -Alias (byte) be#24 = (byte) be#71 Alias (byte) bd#106 = (byte) bd#61 -Alias (byte) be#118 = (byte) be#159 Alias (byte) bc#113 = (byte) bc#49 (byte) bc#84 Alias (byte) bd#146 = (byte) bd#25 -Alias (byte) be#25 = (byte) be#72 Alias (byte) bd#107 = (byte) bd#62 -Alias (byte) be#119 = (byte) be#160 Alias (byte) bc#114 = (byte) bc#50 (byte) bc#85 Alias (byte) bd#147 = (byte) bd#26 -Alias (byte) be#26 = (byte) be#73 Alias (byte) bd#108 = (byte) bd#63 -Alias (byte) be#120 = (byte) be#161 Alias (byte) bc#115 = (byte) bc#51 (byte) bc#86 Alias (byte) bd#148 = (byte) bd#27 -Alias (byte) be#27 = (byte) be#74 Alias (byte) bd#109 = (byte) bd#64 -Alias (byte) be#121 = (byte) be#162 Alias (byte) bc#116 = (byte) bc#52 (byte) bc#87 Alias (byte) bd#149 = (byte) bd#28 -Alias (byte) be#28 = (byte) be#75 Alias (byte) bd#110 = (byte) bd#65 -Alias (byte) be#122 = (byte) be#163 Alias (byte) bc#117 = (byte) bc#53 (byte) bc#88 Alias (byte) bd#150 = (byte) bd#29 -Alias (byte) be#29 = (byte) be#76 Alias (byte) bd#111 = (byte) bd#66 -Alias (byte) be#123 = (byte) be#164 Alias (byte) bc#118 = (byte) bc#54 (byte) bc#89 Alias (byte) bd#151 = (byte) bd#30 -Alias (byte) be#30 = (byte) be#77 Alias (byte) bd#112 = (byte) bd#67 -Alias (byte) be#124 = (byte) be#165 Alias (byte) bc#119 = (byte) bc#55 (byte) bc#90 Alias (byte) bd#152 = (byte) bd#31 -Alias (byte) be#31 = (byte) be#78 Alias (byte) bd#113 = (byte) bd#68 -Alias (byte) be#125 = (byte) be#166 Alias (byte) bc#120 = (byte) bc#56 (byte) bc#91 Alias (byte) bd#153 = (byte) bd#32 -Alias (byte) be#32 = (byte) be#79 Alias (byte) bd#114 = (byte) bd#69 -Alias (byte) be#126 = (byte) be#167 Alias (byte) bc#121 = (byte) bc#57 (byte) bc#92 Alias (byte) bd#154 = (byte) bd#33 -Alias (byte) be#33 = (byte) be#80 -Alias (byte) be#127 = (byte) be#128 Alias (byte) bd#115 = (byte) bd#34 -Alias (byte) be#34 = (byte) be#81 Alias (byte) bd#35 = (byte) bd#70 -Alias (byte) be#35 = (byte) be#82 -Alias (byte) be#129 = (byte) be#83 Alias (byte) bd#117 = (byte) bd#71 -Alias (byte) be#130 = (byte) be#84 Alias (byte) bd#118 = (byte) bd#72 -Alias (byte) be#131 = (byte) be#85 Alias (byte) bd#119 = (byte) bd#73 -Alias (byte) be#132 = (byte) be#86 Alias (byte) bd#120 = (byte) bd#74 -Alias (byte) be#133 = (byte) be#87 Alias (byte) bd#121 = (byte) bd#75 -Alias (byte) be#134 = (byte) be#88 Alias (byte) bd#122 = (byte) bd#76 -Alias (byte) be#135 = (byte) be#89 Alias (byte) bd#123 = (byte) bd#77 -Alias (byte) be#136 = (byte) be#90 Alias (byte) bd#124 = (byte) bd#78 -Alias (byte) be#137 = (byte) be#91 Alias (byte) bd#125 = (byte) bd#79 -Alias (byte) be#46 = (byte) be#92 Alias (byte) bb#0 = (byte) bb#60 Alias (byte) bc#0 = (byte) bc#93 Alias (byte) bd#0 = (byte) bd#126 -Alias (byte) be#0 = (byte) be#139 Alias (byte) ba#0 = (byte) ba#28 Alias (byte) bb#14 = (byte) bb#37 Alias (byte) bc#25 = (byte) bc#59 Alias (byte) bd#36 = (byte) bd#81 -Alias (byte) be#47 = (byte) be#93 Alias (byte) ba#16 = (byte) ba#3 Successful SSA optimization Pass2AliasElimination Alias (byte) ba#10 = (byte) ba#20 (byte) ba#19 (byte) ba#21 (byte) ba#22 (byte) ba#11 (byte) ba#12 (byte) ba#13 (byte) ba#14 (byte) ba#15 @@ -2205,135 +1787,99 @@ Successful SSA optimization Pass2AliasElimination Identical Phi Values (byte) bb#61 (byte) bb#0 Identical Phi Values (byte) bc#94 (byte) bc#0 Identical Phi Values (byte) bd#127 (byte) bd#0 -Identical Phi Values (byte) be#140 (byte) be#0 Identical Phi Values (byte) ba#29 (byte) ba#0 Identical Phi Values (byte) bb#1 (byte) bb#13 Identical Phi Values (byte) bc#1 (byte) bc#13 Identical Phi Values (byte) bd#1 (byte) bd#13 -Identical Phi Values (byte) be#1 (byte) be#13 Identical Phi Values (byte) ba#10 (byte) ba#17 Identical Phi Values (byte) bb#17 (byte) bb#16 Identical Phi Values (byte) bc#62 (byte) bc#2 Identical Phi Values (byte) bd#128 (byte) bd#2 -Identical Phi Values (byte) be#141 (byte) be#2 Identical Phi Values (byte) bc#28 (byte) bc#24 Identical Phi Values (byte) bd#3 (byte) bd#24 -Identical Phi Values (byte) be#3 (byte) be#24 Identical Phi Values (byte) bc#29 (byte) bc#24 Identical Phi Values (byte) bd#4 (byte) bd#24 -Identical Phi Values (byte) be#4 (byte) be#24 Identical Phi Values (byte) bc#30 (byte) bc#24 Identical Phi Values (byte) bd#41 (byte) bd#24 -Identical Phi Values (byte) be#5 (byte) be#24 Identical Phi Values (byte) bc#31 (byte) bc#24 Identical Phi Values (byte) bd#42 (byte) bd#24 -Identical Phi Values (byte) be#53 (byte) be#24 Identical Phi Values (byte) bc#32 (byte) bc#24 Identical Phi Values (byte) bd#43 (byte) bd#24 -Identical Phi Values (byte) be#54 (byte) be#24 Identical Phi Values (byte) bc#33 (byte) bc#24 Identical Phi Values (byte) bd#44 (byte) bd#24 -Identical Phi Values (byte) be#55 (byte) be#24 Identical Phi Values (byte) bc#34 (byte) bc#24 Identical Phi Values (byte) bd#45 (byte) bd#24 -Identical Phi Values (byte) be#56 (byte) be#24 Identical Phi Values (byte) bc#10 (byte) bc#24 Identical Phi Values (byte) bd#10 (byte) bd#24 -Identical Phi Values (byte) be#10 (byte) be#24 Identical Phi Values (byte) bc#11 (byte) bc#24 Identical Phi Values (byte) bd#11 (byte) bd#24 -Identical Phi Values (byte) be#11 (byte) be#24 Identical Phi Values (byte) bc#12 (byte) bc#24 Identical Phi Values (byte) bd#12 (byte) bd#24 -Identical Phi Values (byte) be#12 (byte) be#24 Identical Phi Values (byte) bd#14 (byte) bd#35 -Identical Phi Values (byte) be#14 (byte) be#35 Identical Phi Values (byte) bd#15 (byte) bd#35 -Identical Phi Values (byte) be#15 (byte) be#35 Identical Phi Values (byte) bd#16 (byte) bd#35 -Identical Phi Values (byte) be#16 (byte) be#35 Identical Phi Values (byte) bd#17 (byte) bd#35 -Identical Phi Values (byte) be#17 (byte) be#35 Identical Phi Values (byte) bd#18 (byte) bd#35 -Identical Phi Values (byte) be#18 (byte) be#35 Identical Phi Values (byte) bd#19 (byte) bd#35 -Identical Phi Values (byte) be#19 (byte) be#35 Identical Phi Values (byte) bd#20 (byte) bd#35 -Identical Phi Values (byte) be#20 (byte) be#35 Identical Phi Values (byte) bd#21 (byte) bd#35 -Identical Phi Values (byte) be#21 (byte) be#35 Identical Phi Values (byte) bd#22 (byte) bd#35 -Identical Phi Values (byte) be#22 (byte) be#35 Identical Phi Values (byte) bd#23 (byte) bd#35 -Identical Phi Values (byte) be#23 (byte) be#35 -Identical Phi Values (byte) be#25 (byte) be#46 -Identical Phi Values (byte) be#26 (byte) be#46 -Identical Phi Values (byte) be#27 (byte) be#46 -Identical Phi Values (byte) be#28 (byte) be#46 -Identical Phi Values (byte) be#29 (byte) be#46 -Identical Phi Values (byte) be#30 (byte) be#46 -Identical Phi Values (byte) be#31 (byte) be#46 -Identical Phi Values (byte) be#32 (byte) be#46 -Identical Phi Values (byte) be#33 (byte) be#46 -Identical Phi Values (byte) be#34 (byte) be#46 Identical Phi Values (byte) bb#14 (byte) bb#16 Identical Phi Values (byte) bc#25 (byte) bc#2 Identical Phi Values (byte) bd#36 (byte) bd#2 -Identical Phi Values (byte) be#47 (byte) be#2 Identical Phi Values (byte) ba#16 (byte) ba#17 Successful SSA optimization Pass2IdenticalPhiElimination -Simple Condition (bool~) f0::$1 [26] if((byte) ba#17!=(byte) 0) goto f0::@1 -Simple Condition (bool~) f0::$3 [30] if((byte) ba#17!=(byte) 1) goto f0::@2 -Simple Condition (bool~) f0::$5 [41] if((byte) ba#17!=(byte) 2) goto f0::@3 -Simple Condition (bool~) f0::$7 [52] if((byte) ba#17!=(byte) 3) goto f0::@4 -Simple Condition (bool~) f0::$9 [63] if((byte) ba#17!=(byte) 4) goto f0::@5 -Simple Condition (bool~) f0::$11 [74] if((byte) ba#17!=(byte) 5) goto f0::@6 -Simple Condition (bool~) f0::$13 [85] if((byte) ba#17!=(byte) 6) goto f0::@7 -Simple Condition (bool~) f0::$15 [96] if((byte) ba#17!=(byte) 7) goto f0::@8 -Simple Condition (bool~) f0::$17 [107] if((byte) ba#17!=(byte) 8) goto f0::@9 -Simple Condition (bool~) f0::$19 [118] if((byte) ba#17!=(byte) 9) goto f0::@return -Simple Condition (bool~) fa::$1 [142] if((byte) bb#27!=(byte) 0) goto fa::@1 -Simple Condition (bool~) fa::$3 [146] if((byte) bb#27!=(byte) 1) goto fa::@2 -Simple Condition (bool~) fa::$5 [156] if((byte) bb#27!=(byte) 2) goto fa::@3 -Simple Condition (bool~) fa::$7 [166] if((byte) bb#27!=(byte) 3) goto fa::@4 -Simple Condition (bool~) fa::$9 [176] if((byte) bb#27!=(byte) 4) goto fa::@5 -Simple Condition (bool~) fa::$11 [186] if((byte) bb#27!=(byte) 5) goto fa::@6 -Simple Condition (bool~) fa::$13 [196] if((byte) bb#27!=(byte) 6) goto fa::@7 -Simple Condition (bool~) fa::$15 [206] if((byte) bb#27!=(byte) 7) goto fa::@8 -Simple Condition (bool~) fa::$17 [216] if((byte) bb#27!=(byte) 8) goto fa::@9 -Simple Condition (bool~) fa::$19 [226] if((byte) bb#27!=(byte) 9) goto fa::@return -Simple Condition (bool~) fb::$1 [247] if((byte) bc#113!=(byte) 0) goto fb::@1 -Simple Condition (bool~) fb::$3 [251] if((byte) bc#113!=(byte) 1) goto fb::@2 -Simple Condition (bool~) fb::$5 [260] if((byte) bc#113!=(byte) 2) goto fb::@3 -Simple Condition (bool~) fb::$7 [269] if((byte) bc#113!=(byte) 3) goto fb::@4 -Simple Condition (bool~) fb::$9 [278] if((byte) bc#113!=(byte) 4) goto fb::@5 -Simple Condition (bool~) fb::$11 [287] if((byte) bc#113!=(byte) 5) goto fb::@6 -Simple Condition (bool~) fb::$13 [296] if((byte) bc#113!=(byte) 6) goto fb::@7 -Simple Condition (bool~) fb::$15 [305] if((byte) bc#113!=(byte) 7) goto fb::@8 -Simple Condition (bool~) fb::$17 [314] if((byte) bc#113!=(byte) 8) goto fb::@9 -Simple Condition (bool~) fb::$19 [323] if((byte) bc#113!=(byte) 9) goto fb::@return -Simple Condition (bool~) fc::$1 [341] if((byte) bd#117!=(byte) 0) goto fc::@1 -Simple Condition (bool~) fc::$3 [345] if((byte) bd#117!=(byte) 1) goto fc::@2 -Simple Condition (bool~) fc::$5 [351] if((byte) bd#117!=(byte) 2) goto fc::@3 -Simple Condition (bool~) fc::$7 [357] if((byte) bd#117!=(byte) 3) goto fc::@4 -Simple Condition (bool~) fc::$9 [363] if((byte) bd#117!=(byte) 4) goto fc::@5 -Simple Condition (bool~) fc::$11 [369] if((byte) bd#117!=(byte) 5) goto fc::@6 -Simple Condition (bool~) fc::$13 [375] if((byte) bd#117!=(byte) 6) goto fc::@7 -Simple Condition (bool~) fc::$15 [381] if((byte) bd#117!=(byte) 7) goto fc::@8 -Simple Condition (bool~) fc::$17 [387] if((byte) bd#117!=(byte) 8) goto fc::@9 -Simple Condition (bool~) fc::$19 [393] if((byte) bd#117!=(byte) 9) goto fc::@return +Simple Condition (bool~) f0::$1 [23] if((byte) ba#17!=(byte) 0) goto f0::@1 +Simple Condition (bool~) f0::$3 [27] if((byte) ba#17!=(byte) 1) goto f0::@2 +Simple Condition (bool~) f0::$5 [37] if((byte) ba#17!=(byte) 2) goto f0::@3 +Simple Condition (bool~) f0::$7 [47] if((byte) ba#17!=(byte) 3) goto f0::@4 +Simple Condition (bool~) f0::$9 [57] if((byte) ba#17!=(byte) 4) goto f0::@5 +Simple Condition (bool~) f0::$11 [67] if((byte) ba#17!=(byte) 5) goto f0::@6 +Simple Condition (bool~) f0::$13 [77] if((byte) ba#17!=(byte) 6) goto f0::@7 +Simple Condition (bool~) f0::$15 [87] if((byte) ba#17!=(byte) 7) goto f0::@8 +Simple Condition (bool~) f0::$17 [97] if((byte) ba#17!=(byte) 8) goto f0::@9 +Simple Condition (bool~) f0::$19 [107] if((byte) ba#17!=(byte) 9) goto f0::@return +Simple Condition (bool~) fa::$1 [128] if((byte) bb#27!=(byte) 0) goto fa::@1 +Simple Condition (bool~) fa::$3 [132] if((byte) bb#27!=(byte) 1) goto fa::@2 +Simple Condition (bool~) fa::$5 [141] if((byte) bb#27!=(byte) 2) goto fa::@3 +Simple Condition (bool~) fa::$7 [150] if((byte) bb#27!=(byte) 3) goto fa::@4 +Simple Condition (bool~) fa::$9 [159] if((byte) bb#27!=(byte) 4) goto fa::@5 +Simple Condition (bool~) fa::$11 [168] if((byte) bb#27!=(byte) 5) goto fa::@6 +Simple Condition (bool~) fa::$13 [177] if((byte) bb#27!=(byte) 6) goto fa::@7 +Simple Condition (bool~) fa::$15 [186] if((byte) bb#27!=(byte) 7) goto fa::@8 +Simple Condition (bool~) fa::$17 [195] if((byte) bb#27!=(byte) 8) goto fa::@9 +Simple Condition (bool~) fa::$19 [204] if((byte) bb#27!=(byte) 9) goto fa::@return +Simple Condition (bool~) fb::$1 [222] if((byte) bc#113!=(byte) 0) goto fb::@1 +Simple Condition (bool~) fb::$3 [226] if((byte) bc#113!=(byte) 1) goto fb::@2 +Simple Condition (bool~) fb::$5 [234] if((byte) bc#113!=(byte) 2) goto fb::@3 +Simple Condition (bool~) fb::$7 [242] if((byte) bc#113!=(byte) 3) goto fb::@4 +Simple Condition (bool~) fb::$9 [250] if((byte) bc#113!=(byte) 4) goto fb::@5 +Simple Condition (bool~) fb::$11 [258] if((byte) bc#113!=(byte) 5) goto fb::@6 +Simple Condition (bool~) fb::$13 [266] if((byte) bc#113!=(byte) 6) goto fb::@7 +Simple Condition (bool~) fb::$15 [274] if((byte) bc#113!=(byte) 7) goto fb::@8 +Simple Condition (bool~) fb::$17 [282] if((byte) bc#113!=(byte) 8) goto fb::@9 +Simple Condition (bool~) fb::$19 [290] if((byte) bc#113!=(byte) 9) goto fb::@return +Simple Condition (bool~) fc::$1 [304] if((byte) bd#117!=(byte) 0) goto fc::@1 +Simple Condition (bool~) fc::$3 [308] if((byte) bd#117!=(byte) 1) goto fc::@2 +Simple Condition (bool~) fc::$5 [313] if((byte) bd#117!=(byte) 2) goto fc::@3 +Simple Condition (bool~) fc::$7 [318] if((byte) bd#117!=(byte) 3) goto fc::@4 +Simple Condition (bool~) fc::$9 [323] if((byte) bd#117!=(byte) 4) goto fc::@5 +Simple Condition (bool~) fc::$11 [328] if((byte) bd#117!=(byte) 5) goto fc::@6 +Simple Condition (bool~) fc::$13 [333] if((byte) bd#117!=(byte) 6) goto fc::@7 +Simple Condition (bool~) fc::$15 [338] if((byte) bd#117!=(byte) 7) goto fc::@8 +Simple Condition (bool~) fc::$17 [343] if((byte) bd#117!=(byte) 8) goto fc::@9 +Simple Condition (bool~) fc::$19 [348] if((byte) bd#117!=(byte) 9) goto fc::@return Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) ba#0 = 0 Constant (const byte) bb#0 = 0 Constant (const byte) bc#0 = 0 Constant (const byte) bd#0 = 0 -Constant (const byte) be#0 = 0 Constant (const byte) bb#12 = 0 Constant (const byte) bc#23 = 0 Constant (const byte) bd#115 = 0 -Constant (const byte) be#45 = 0 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [7] if(true) goto main::@2 +if() condition always true - replacing block destination [6] if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -2341,20 +1887,16 @@ Inlining constant with var siblings (const byte) ba#0 Inlining constant with var siblings (const byte) bb#0 Inlining constant with var siblings (const byte) bc#0 Inlining constant with var siblings (const byte) bd#0 -Inlining constant with var siblings (const byte) be#0 Inlining constant with var siblings (const byte) bb#12 Inlining constant with var siblings (const byte) bc#23 Inlining constant with var siblings (const byte) bd#115 -Inlining constant with var siblings (const byte) be#45 Constant inlined bc#0 = (byte) 0 Constant inlined ba#0 = (byte) 0 Constant inlined bd#0 = (byte) 0 Constant inlined bc#23 = (byte) 0 -Constant inlined be#45 = (byte) 0 Constant inlined bb#0 = (byte) 0 Constant inlined bb#12 = (byte) 0 Constant inlined bd#115 = (byte) 0 -Constant inlined be#0 = (byte) 0 Successful SSA optimization Pass2ConstantInlining Added new block during phi lifting f0::@31(between f0 and f0::@1) Added new block during phi lifting f0::@32(between f0::@1 and f0::@2) @@ -2386,320 +1928,211 @@ Added new block during phi lifting fb::@37(between fb::@6 and fb::@7) Added new block during phi lifting fb::@38(between fb::@7 and fb::@8) Added new block during phi lifting fb::@39(between fb::@8 and fb::@9) Added new block during phi lifting fb::@40(between fb::@9 and fb::@return) -Added new block during phi lifting fc::@21(between fc and fc::@1) -Added new block during phi lifting fc::@22(between fc::@1 and fc::@2) -Added new block during phi lifting fc::@23(between fc::@2 and fc::@3) -Added new block during phi lifting fc::@24(between fc::@3 and fc::@4) -Added new block during phi lifting fc::@25(between fc::@4 and fc::@5) -Added new block during phi lifting fc::@26(between fc::@5 and fc::@6) -Added new block during phi lifting fc::@27(between fc::@6 and fc::@7) -Added new block during phi lifting fc::@28(between fc::@7 and fc::@8) -Added new block during phi lifting fc::@29(between fc::@8 and fc::@9) -Added new block during phi lifting fc::@30(between fc::@9 and fc::@return) Adding NOP phi() at start of @begin Adding NOP phi() at start of @5 Adding NOP phi() at start of @6 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@2 +Adding NOP phi() at start of fb::@20 +Adding NOP phi() at start of fb::@30 +Adding NOP phi() at start of fc::@11 +Adding NOP phi() at start of fc::@12 +Adding NOP phi() at start of fc::@13 +Adding NOP phi() at start of fc::@14 +Adding NOP phi() at start of fc::@15 +Adding NOP phi() at start of fc::@16 +Adding NOP phi() at start of fc::@17 +Adding NOP phi() at start of fc::@18 +Adding NOP phi() at start of fc::@19 Adding NOP phi() at start of fc::@20 CALL GRAPH Calls in [] to main:2 Calls in [main] to f0:8 -Calls in [f0] to fa:21 fa:33 fa:45 fa:57 fa:69 fa:81 fa:93 fa:105 fa:117 fa:127 -Calls in [fa] to fb:179 fb:189 fb:199 fb:209 fb:219 fb:229 fb:239 fb:249 fb:259 fb:267 -Calls in [fb] to fc:307 fc:315 fc:323 fc:331 fc:339 fc:347 fc:355 fc:363 fc:371 fc:377 +Calls in [f0] to fa:19 fa:29 fa:39 fa:49 fa:59 fa:69 fa:79 fa:89 fa:99 fa:107 +Calls in [fa] to fb:147 fb:155 fb:163 fb:171 fb:179 fb:187 fb:195 fb:203 fb:211 fb:217 +Calls in [fb] to fc:245 fc:251 fc:257 fc:263 fc:269 fc:275 fc:281 fc:287 fc:293 fc:298 -Created 114 initial phi equivalence classes +Created 70 initial phi equivalence classes Coalesced [10] bb#80 ← bb#13 Coalesced [11] bc#122 ← bc#13 Coalesced [12] bd#155 ← bd#13 -Coalesced [13] be#168 ← be#13 -Coalesced [14] ba#39 ← ba#1 -Not coalescing [17] bb#100 ← bb#3 -Coalesced [18] bc#143 ← bc#2 -Coalesced [19] bd#176 ← bd#2 -Coalesced [20] be#189 ← be#2 -Coalesced [22] bb#82 ← bb#3 -Coalesced [23] bc#124 ← bc#24 -Coalesced [24] bd#157 ← bd#24 -Coalesced [25] be#170 ← be#24 -Not coalescing [29] bb#101 ← bb#4 -Coalesced [30] bc#144 ← bc#63 -Coalesced [31] bd#177 ← bd#129 -Coalesced [32] be#190 ← be#142 -Coalesced [34] bb#84 ← bb#4 -Coalesced [35] bc#126 ← bc#24 -Coalesced [36] bd#159 ← bd#24 -Coalesced [37] be#172 ← be#24 -Not coalescing [41] bb#102 ← bb#5 -Coalesced (already) [42] bc#145 ← bc#64 -Coalesced (already) [43] bd#178 ← bd#130 -Coalesced (already) [44] be#191 ← be#143 -Coalesced [46] bb#86 ← bb#5 -Coalesced [47] bc#128 ← bc#24 -Coalesced [48] bd#161 ← bd#24 -Coalesced [49] be#174 ← be#24 -Not coalescing [53] bb#103 ← bb#6 -Coalesced (already) [54] bc#146 ← bc#65 -Coalesced (already) [55] bd#179 ← bd#131 -Coalesced (already) [56] be#192 ← be#144 -Coalesced [58] bb#87 ← bb#6 -Coalesced [59] bc#129 ← bc#24 -Coalesced [60] bd#162 ← bd#24 -Coalesced [61] be#175 ← be#24 -Not coalescing [65] bb#104 ← bb#66 -Coalesced (already) [66] bc#147 ← bc#66 -Coalesced (already) [67] bd#180 ← bd#132 -Coalesced (already) [68] be#193 ← be#100 -Coalesced [70] bb#89 ← bb#66 -Coalesced [71] bc#131 ← bc#24 -Coalesced [72] bd#164 ← bd#24 -Coalesced [73] be#177 ← be#24 -Not coalescing [77] bb#105 ← bb#67 -Coalesced (already) [78] bc#148 ← bc#100 -Coalesced (already) [79] bd#181 ← bd#133 -Coalesced (already) [80] be#194 ← be#101 -Coalesced [82] bb#91 ← bb#67 -Coalesced [83] bc#133 ← bc#24 -Coalesced [84] bd#166 ← bd#24 -Coalesced [85] be#179 ← be#24 -Not coalescing [89] bb#106 ← bb#68 -Coalesced (already) [90] bc#149 ← bc#101 -Coalesced (already) [91] bd#182 ← bd#134 -Coalesced (already) [92] be#195 ← be#102 -Coalesced [94] bb#93 ← bb#68 -Coalesced [95] bc#135 ← bc#24 -Coalesced [96] bd#168 ← bd#24 -Coalesced [97] be#181 ← be#24 -Not coalescing [101] bb#107 ← bb#10 -Coalesced (already) [102] bc#150 ← bc#102 -Coalesced (already) [103] bd#183 ← bd#135 -Coalesced (already) [104] be#196 ← be#103 -Coalesced [106] bb#95 ← bb#10 -Coalesced [107] bc#137 ← bc#24 -Coalesced [108] bd#170 ← bd#24 -Coalesced [109] be#183 ← be#24 -Not coalescing [113] bb#108 ← bb#11 -Coalesced (already) [114] bc#151 ← bc#103 -Coalesced (already) [115] bd#184 ← bd#136 -Coalesced (already) [116] be#197 ← be#104 -Coalesced [118] bb#97 ← bb#11 -Coalesced [119] bc#139 ← bc#24 -Coalesced [120] bd#172 ← bd#24 -Coalesced [121] be#185 ← be#24 -Coalesced (already) [124] bc#152 ← bc#71 -Coalesced (already) [125] bd#185 ← bd#93 -Coalesced (already) [126] be#198 ← be#105 -Coalesced (already) [128] bc#141 ← bc#24 -Coalesced (already) [129] bd#174 ← bd#24 -Coalesced (already) [130] be#187 ← be#24 -Coalesced [133] bb#99 ← bb#50 -Coalesced (already) [134] bc#142 ← bc#71 -Coalesced (already) [135] bd#175 ← bd#93 -Coalesced (already) [136] be#188 ← be#105 -Coalesced [137] bb#98 ← bb#25 -Coalesced (already) [138] bc#140 ← bc#103 -Coalesced (already) [139] bd#173 ← bd#136 -Coalesced (already) [140] be#186 ← be#104 -Coalesced [141] bb#96 ← bb#24 -Coalesced (already) [142] bc#138 ← bc#102 -Coalesced (already) [143] bd#171 ← bd#135 -Coalesced (already) [144] be#184 ← be#103 -Coalesced [145] bb#94 ← bb#23 -Coalesced (already) [146] bc#136 ← bc#101 -Coalesced (already) [147] bd#169 ← bd#134 -Coalesced (already) [148] be#182 ← be#102 -Coalesced [149] bb#92 ← bb#22 -Coalesced (already) [150] bc#134 ← bc#100 -Coalesced (already) [151] bd#167 ← bd#133 -Coalesced (already) [152] be#180 ← be#101 -Coalesced [153] bb#90 ← bb#21 -Coalesced (already) [154] bc#132 ← bc#66 -Coalesced (already) [155] bd#165 ← bd#132 -Coalesced (already) [156] be#178 ← be#100 -Coalesced [157] bb#88 ← bb#20 -Coalesced (already) [158] bc#130 ← bc#65 -Coalesced (already) [159] bd#163 ← bd#131 -Coalesced (already) [160] be#176 ← be#144 -Coalesced [161] bb#85 ← bb#19 -Coalesced (already) [162] bc#127 ← bc#64 -Coalesced (already) [163] bd#160 ← bd#130 -Coalesced (already) [164] be#173 ← be#143 -Coalesced [165] bb#83 ← bb#18 -Coalesced (already) [166] bc#125 ← bc#63 -Coalesced (already) [167] bd#158 ← bd#129 -Coalesced (already) [168] be#171 ← be#142 -Coalesced (already) [169] bb#81 ← bb#16 -Coalesced (already) [170] bc#123 ← bc#2 -Coalesced (already) [171] bd#156 ← bd#2 -Coalesced (already) [172] be#169 ← be#2 -Not coalescing [176] bc#172 ← bc#104 -Coalesced [177] bd#206 ← bd#137 -Coalesced [178] be#219 ← be#107 -Coalesced [180] bc#154 ← bc#104 -Coalesced [181] bd#187 ← bd#35 -Coalesced [182] be#200 ← be#35 -Not coalescing [186] bc#173 ← bc#105 -Coalesced [187] bd#207 ← bd#138 -Coalesced [188] be#220 ← be#108 -Coalesced [190] bc#156 ← bc#105 -Coalesced [191] bd#189 ← bd#35 -Coalesced [192] be#202 ← be#35 -Not coalescing [196] bc#174 ← bc#106 -Coalesced (already) [197] bd#208 ← bd#139 -Coalesced (already) [198] be#221 ← be#109 -Coalesced [200] bc#158 ← bc#106 -Coalesced [201] bd#191 ← bd#35 -Coalesced [202] be#204 ← be#35 -Not coalescing [206] bc#175 ← bc#107 -Coalesced (already) [207] bd#209 ← bd#140 -Coalesced (already) [208] be#222 ← be#110 -Coalesced [210] bc#159 ← bc#107 -Coalesced [211] bd#192 ← bd#35 -Coalesced [212] be#205 ← be#35 -Not coalescing [216] bc#176 ← bc#108 -Coalesced (already) [217] bd#210 ← bd#141 -Coalesced (already) [218] be#223 ← be#111 -Coalesced [220] bc#161 ← bc#108 -Coalesced [221] bd#194 ← bd#35 -Coalesced [222] be#207 ← be#35 -Not coalescing [226] bc#177 ← bc#109 -Coalesced (already) [227] bd#211 ← bd#100 -Coalesced (already) [228] be#224 ← be#112 -Coalesced [230] bc#163 ← bc#109 -Coalesced [231] bd#196 ← bd#35 -Coalesced [232] be#209 ← be#35 -Not coalescing [236] bc#178 ← bc#110 -Coalesced (already) [237] bd#212 ← bd#101 -Coalesced (already) [238] be#225 ← be#113 -Coalesced [240] bc#165 ← bc#110 -Coalesced [241] bd#198 ← bd#35 -Coalesced [242] be#211 ← be#35 -Not coalescing [246] bc#179 ← bc#111 -Coalesced (already) [247] bd#213 ← bd#102 -Coalesced (already) [248] be#226 ← be#114 -Coalesced [250] bc#167 ← bc#111 -Coalesced [251] bd#200 ← bd#35 -Coalesced [252] be#213 ← be#35 -Not coalescing [256] bc#180 ← bc#112 -Coalesced (already) [257] bd#214 ← bd#103 -Coalesced (already) [258] be#227 ← be#115 -Coalesced [260] bc#169 ← bc#112 -Coalesced [261] bd#202 ← bd#35 -Coalesced [262] be#215 ← be#35 -Coalesced (already) [265] bd#215 ← bd#104 -Coalesced (already) [266] be#228 ← be#116 -Coalesced (already) [268] bd#204 ← bd#35 -Coalesced (already) [269] be#217 ← be#35 -Coalesced [272] bc#171 ← bc#83 -Coalesced (already) [273] bd#205 ← bd#104 -Coalesced (already) [274] be#218 ← be#116 -Coalesced [275] bc#170 ← bc#47 -Coalesced (already) [276] bd#203 ← bd#103 -Coalesced (already) [277] be#216 ← be#115 -Coalesced [278] bc#168 ← bc#46 -Coalesced (already) [279] bd#201 ← bd#102 -Coalesced (already) [280] be#214 ← be#114 -Coalesced [281] bc#166 ← bc#45 -Coalesced (already) [282] bd#199 ← bd#101 -Coalesced (already) [283] be#212 ← be#113 -Coalesced [284] bc#164 ← bc#44 -Coalesced (already) [285] bd#197 ← bd#100 -Coalesced (already) [286] be#210 ← be#112 -Coalesced [287] bc#162 ← bc#43 -Coalesced (already) [288] bd#195 ← bd#141 -Coalesced (already) [289] be#208 ← be#111 -Coalesced [290] bc#160 ← bc#42 -Coalesced (already) [291] bd#193 ← bd#140 -Coalesced (already) [292] be#206 ← be#110 -Coalesced [293] bc#157 ← bc#41 -Coalesced (already) [294] bd#190 ← bd#139 -Coalesced (already) [295] be#203 ← be#109 -Coalesced [296] bc#155 ← bc#40 -Coalesced (already) [297] bd#188 ← bd#138 -Coalesced (already) [298] be#201 ← be#108 -Coalesced (already) [299] bc#153 ← bc#39 -Coalesced (already) [300] bd#186 ← bd#137 -Coalesced (already) [301] be#199 ← be#107 -Not coalescing [305] bd#235 ← bd#146 -Coalesced [306] be#249 ← be#118 -Coalesced [308] bd#217 ← bd#146 -Coalesced [309] be#230 ← be#46 -Not coalescing [313] bd#236 ← bd#147 -Coalesced [314] be#250 ← be#119 -Coalesced [316] bd#219 ← bd#147 -Coalesced [317] be#232 ← be#46 -Not coalescing [321] bd#237 ← bd#148 -Coalesced (already) [322] be#251 ← be#120 -Coalesced [324] bd#221 ← bd#148 -Coalesced [325] be#234 ← be#46 -Not coalescing [329] bd#238 ← bd#149 -Coalesced (already) [330] be#252 ← be#121 -Coalesced [332] bd#222 ← bd#149 -Coalesced [333] be#235 ← be#46 -Not coalescing [337] bd#239 ← bd#150 -Coalesced (already) [338] be#253 ← be#122 -Coalesced [340] bd#224 ← bd#150 -Coalesced [341] be#237 ← be#46 -Not coalescing [345] bd#240 ← bd#151 -Coalesced (already) [346] be#254 ← be#123 -Coalesced [348] bd#226 ← bd#151 -Coalesced [349] be#239 ← be#46 -Not coalescing [353] bd#241 ← bd#152 -Coalesced (already) [354] be#255 ← be#124 -Coalesced [356] bd#228 ← bd#152 -Coalesced [357] be#241 ← be#46 -Not coalescing [361] bd#242 ← bd#153 -Coalesced (already) [362] be#256 ← be#125 -Coalesced [364] bd#230 ← bd#153 -Coalesced [365] be#243 ← be#46 -Not coalescing [369] bd#243 ← bd#154 -Coalesced (already) [370] be#257 ← be#126 -Coalesced [372] bd#232 ← bd#154 -Coalesced [373] be#245 ← be#46 -Coalesced (already) [376] be#258 ← be#127 -Coalesced (already) [378] be#247 ← be#46 -Coalesced [381] bd#234 ← bd#116 -Coalesced (already) [382] be#248 ← be#127 -Coalesced [383] bd#233 ← bd#114 -Coalesced (already) [384] be#246 ← be#126 -Coalesced [385] bd#231 ← bd#113 -Coalesced (already) [386] be#244 ← be#125 -Coalesced [387] bd#229 ← bd#112 -Coalesced (already) [388] be#242 ← be#124 -Coalesced [389] bd#227 ← bd#111 -Coalesced (already) [390] be#240 ← be#123 -Coalesced [391] bd#225 ← bd#110 -Coalesced (already) [392] be#238 ← be#122 -Coalesced [393] bd#223 ← bd#109 -Coalesced (already) [394] be#236 ← be#121 -Coalesced [395] bd#220 ← bd#108 -Coalesced (already) [396] be#233 ← be#120 -Coalesced [397] bd#218 ← bd#107 -Coalesced (already) [398] be#231 ← be#119 -Coalesced (already) [399] bd#216 ← bd#106 -Coalesced (already) [400] be#229 ← be#118 -Coalesced [404] be#260 ← be#36 -Coalesced [408] be#262 ← be#37 -Coalesced [412] be#263 ← be#38 -Coalesced [416] be#265 ← be#39 -Coalesced [420] be#267 ← be#40 -Coalesced [424] be#269 ← be#41 -Coalesced [428] be#271 ← be#42 -Coalesced [432] be#273 ← be#43 -Coalesced [436] be#275 ← be#44 -Coalesced [442] be#277 ← be#138 -Coalesced [443] be#276 ← be#137 -Coalesced [444] be#274 ← be#136 -Coalesced [445] be#272 ← be#135 -Coalesced [446] be#270 ← be#134 -Coalesced [447] be#268 ← be#133 -Coalesced [448] be#266 ← be#132 -Coalesced [449] be#264 ← be#131 -Coalesced [450] be#261 ← be#130 -Coalesced (already) [451] be#259 ← be#129 -Coalesced down to 8 phi equivalence classes +Coalesced [13] ba#39 ← ba#1 +Not coalescing [16] bb#100 ← bb#3 +Coalesced [17] bc#143 ← bc#2 +Coalesced [18] bd#176 ← bd#2 +Coalesced [20] bb#82 ← bb#3 +Coalesced [21] bc#124 ← bc#24 +Coalesced [22] bd#157 ← bd#24 +Not coalescing [26] bb#101 ← bb#4 +Coalesced [27] bc#144 ← bc#63 +Coalesced [28] bd#177 ← bd#129 +Coalesced [30] bb#84 ← bb#4 +Coalesced [31] bc#126 ← bc#24 +Coalesced [32] bd#159 ← bd#24 +Not coalescing [36] bb#102 ← bb#5 +Coalesced (already) [37] bc#145 ← bc#64 +Coalesced (already) [38] bd#178 ← bd#130 +Coalesced [40] bb#86 ← bb#5 +Coalesced [41] bc#128 ← bc#24 +Coalesced [42] bd#161 ← bd#24 +Not coalescing [46] bb#103 ← bb#6 +Coalesced (already) [47] bc#146 ← bc#65 +Coalesced (already) [48] bd#179 ← bd#131 +Coalesced [50] bb#87 ← bb#6 +Coalesced [51] bc#129 ← bc#24 +Coalesced [52] bd#162 ← bd#24 +Not coalescing [56] bb#104 ← bb#66 +Coalesced (already) [57] bc#147 ← bc#66 +Coalesced (already) [58] bd#180 ← bd#132 +Coalesced [60] bb#89 ← bb#66 +Coalesced [61] bc#131 ← bc#24 +Coalesced [62] bd#164 ← bd#24 +Not coalescing [66] bb#105 ← bb#67 +Coalesced (already) [67] bc#148 ← bc#100 +Coalesced (already) [68] bd#181 ← bd#133 +Coalesced [70] bb#91 ← bb#67 +Coalesced [71] bc#133 ← bc#24 +Coalesced [72] bd#166 ← bd#24 +Not coalescing [76] bb#106 ← bb#68 +Coalesced (already) [77] bc#149 ← bc#101 +Coalesced (already) [78] bd#182 ← bd#134 +Coalesced [80] bb#93 ← bb#68 +Coalesced [81] bc#135 ← bc#24 +Coalesced [82] bd#168 ← bd#24 +Not coalescing [86] bb#107 ← bb#10 +Coalesced (already) [87] bc#150 ← bc#102 +Coalesced (already) [88] bd#183 ← bd#135 +Coalesced [90] bb#95 ← bb#10 +Coalesced [91] bc#137 ← bc#24 +Coalesced [92] bd#170 ← bd#24 +Not coalescing [96] bb#108 ← bb#11 +Coalesced (already) [97] bc#151 ← bc#103 +Coalesced (already) [98] bd#184 ← bd#136 +Coalesced [100] bb#97 ← bb#11 +Coalesced [101] bc#139 ← bc#24 +Coalesced [102] bd#172 ← bd#24 +Coalesced (already) [105] bc#152 ← bc#71 +Coalesced (already) [106] bd#185 ← bd#93 +Coalesced (already) [108] bc#141 ← bc#24 +Coalesced (already) [109] bd#174 ← bd#24 +Coalesced [112] bb#99 ← bb#50 +Coalesced (already) [113] bc#142 ← bc#71 +Coalesced (already) [114] bd#175 ← bd#93 +Coalesced [115] bb#98 ← bb#25 +Coalesced (already) [116] bc#140 ← bc#103 +Coalesced (already) [117] bd#173 ← bd#136 +Coalesced [118] bb#96 ← bb#24 +Coalesced (already) [119] bc#138 ← bc#102 +Coalesced (already) [120] bd#171 ← bd#135 +Coalesced [121] bb#94 ← bb#23 +Coalesced (already) [122] bc#136 ← bc#101 +Coalesced (already) [123] bd#169 ← bd#134 +Coalesced [124] bb#92 ← bb#22 +Coalesced (already) [125] bc#134 ← bc#100 +Coalesced (already) [126] bd#167 ← bd#133 +Coalesced [127] bb#90 ← bb#21 +Coalesced (already) [128] bc#132 ← bc#66 +Coalesced (already) [129] bd#165 ← bd#132 +Coalesced [130] bb#88 ← bb#20 +Coalesced (already) [131] bc#130 ← bc#65 +Coalesced (already) [132] bd#163 ← bd#131 +Coalesced [133] bb#85 ← bb#19 +Coalesced (already) [134] bc#127 ← bc#64 +Coalesced (already) [135] bd#160 ← bd#130 +Coalesced [136] bb#83 ← bb#18 +Coalesced (already) [137] bc#125 ← bc#63 +Coalesced (already) [138] bd#158 ← bd#129 +Coalesced (already) [139] bb#81 ← bb#16 +Coalesced (already) [140] bc#123 ← bc#2 +Coalesced (already) [141] bd#156 ← bd#2 +Not coalescing [145] bc#172 ← bc#104 +Coalesced [146] bd#206 ← bd#137 +Coalesced [148] bc#154 ← bc#104 +Coalesced [149] bd#187 ← bd#35 +Not coalescing [153] bc#173 ← bc#105 +Coalesced [154] bd#207 ← bd#138 +Coalesced [156] bc#156 ← bc#105 +Coalesced [157] bd#189 ← bd#35 +Not coalescing [161] bc#174 ← bc#106 +Coalesced (already) [162] bd#208 ← bd#139 +Coalesced [164] bc#158 ← bc#106 +Coalesced [165] bd#191 ← bd#35 +Not coalescing [169] bc#175 ← bc#107 +Coalesced (already) [170] bd#209 ← bd#140 +Coalesced [172] bc#159 ← bc#107 +Coalesced [173] bd#192 ← bd#35 +Not coalescing [177] bc#176 ← bc#108 +Coalesced (already) [178] bd#210 ← bd#141 +Coalesced [180] bc#161 ← bc#108 +Coalesced [181] bd#194 ← bd#35 +Not coalescing [185] bc#177 ← bc#109 +Coalesced (already) [186] bd#211 ← bd#100 +Coalesced [188] bc#163 ← bc#109 +Coalesced [189] bd#196 ← bd#35 +Not coalescing [193] bc#178 ← bc#110 +Coalesced (already) [194] bd#212 ← bd#101 +Coalesced [196] bc#165 ← bc#110 +Coalesced [197] bd#198 ← bd#35 +Not coalescing [201] bc#179 ← bc#111 +Coalesced (already) [202] bd#213 ← bd#102 +Coalesced [204] bc#167 ← bc#111 +Coalesced [205] bd#200 ← bd#35 +Not coalescing [209] bc#180 ← bc#112 +Coalesced (already) [210] bd#214 ← bd#103 +Coalesced [212] bc#169 ← bc#112 +Coalesced [213] bd#202 ← bd#35 +Coalesced (already) [216] bd#215 ← bd#104 +Coalesced (already) [218] bd#204 ← bd#35 +Coalesced [221] bc#171 ← bc#83 +Coalesced (already) [222] bd#205 ← bd#104 +Coalesced [223] bc#170 ← bc#47 +Coalesced (already) [224] bd#203 ← bd#103 +Coalesced [225] bc#168 ← bc#46 +Coalesced (already) [226] bd#201 ← bd#102 +Coalesced [227] bc#166 ← bc#45 +Coalesced (already) [228] bd#199 ← bd#101 +Coalesced [229] bc#164 ← bc#44 +Coalesced (already) [230] bd#197 ← bd#100 +Coalesced [231] bc#162 ← bc#43 +Coalesced (already) [232] bd#195 ← bd#141 +Coalesced [233] bc#160 ← bc#42 +Coalesced (already) [234] bd#193 ← bd#140 +Coalesced [235] bc#157 ← bc#41 +Coalesced (already) [236] bd#190 ← bd#139 +Coalesced [237] bc#155 ← bc#40 +Coalesced (already) [238] bd#188 ← bd#138 +Coalesced (already) [239] bc#153 ← bc#39 +Coalesced (already) [240] bd#186 ← bd#137 +Not coalescing [244] bd#235 ← bd#146 +Coalesced [246] bd#217 ← bd#146 +Not coalescing [250] bd#236 ← bd#147 +Coalesced [252] bd#219 ← bd#147 +Not coalescing [256] bd#237 ← bd#148 +Coalesced [258] bd#221 ← bd#148 +Not coalescing [262] bd#238 ← bd#149 +Coalesced [264] bd#222 ← bd#149 +Not coalescing [268] bd#239 ← bd#150 +Coalesced [270] bd#224 ← bd#150 +Not coalescing [274] bd#240 ← bd#151 +Coalesced [276] bd#226 ← bd#151 +Not coalescing [280] bd#241 ← bd#152 +Coalesced [282] bd#228 ← bd#152 +Not coalescing [286] bd#242 ← bd#153 +Coalesced [288] bd#230 ← bd#153 +Not coalescing [292] bd#243 ← bd#154 +Coalesced [294] bd#232 ← bd#154 +Coalesced [302] bd#234 ← bd#116 +Coalesced [303] bd#233 ← bd#114 +Coalesced [304] bd#231 ← bd#113 +Coalesced [305] bd#229 ← bd#112 +Coalesced [306] bd#227 ← bd#111 +Coalesced [307] bd#225 ← bd#110 +Coalesced [308] bd#223 ← bd#109 +Coalesced [309] bd#220 ← bd#108 +Coalesced [310] bd#218 ← bd#107 +Coalesced (already) [311] bd#216 ← bd#106 +Coalesced down to 7 phi equivalence classes Culled Empty Block (label) @6 Culled Empty Block (label) f0::@21 Culled Empty Block (label) f0::@22 @@ -2761,16 +2194,6 @@ Culled Empty Block (label) fb::@34 Culled Empty Block (label) fb::@33 Culled Empty Block (label) fb::@32 Culled Empty Block (label) fb::@31 -Culled Empty Block (label) fc::@20 -Culled Empty Block (label) fc::@29 -Culled Empty Block (label) fc::@28 -Culled Empty Block (label) fc::@27 -Culled Empty Block (label) fc::@26 -Culled Empty Block (label) fc::@25 -Culled Empty Block (label) fc::@24 -Culled Empty Block (label) fc::@23 -Culled Empty Block (label) fc::@22 -Culled Empty Block (label) fc::@21 Renumbering block @5 to @1 Renumbering block main::@7 to main::@3 Renumbering block f0::@11 to f0::@10 @@ -2812,7 +2235,7 @@ Renumbering block fc::@16 to fc::@15 Renumbering block fc::@17 to fc::@16 Renumbering block fc::@18 to fc::@17 Renumbering block fc::@19 to fc::@18 -Renumbering block fc::@30 to fc::@19 +Renumbering block fc::@20 to fc::@19 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end @@ -2821,6 +2244,15 @@ Adding NOP phi() at start of main::@2 Adding NOP phi() at start of f0::@19 Adding NOP phi() at start of fa::@19 Adding NOP phi() at start of fb::@19 +Adding NOP phi() at start of fc::@10 +Adding NOP phi() at start of fc::@11 +Adding NOP phi() at start of fc::@12 +Adding NOP phi() at start of fc::@13 +Adding NOP phi() at start of fc::@14 +Adding NOP phi() at start of fc::@15 +Adding NOP phi() at start of fc::@16 +Adding NOP phi() at start of fc::@17 +Adding NOP phi() at start of fc::@18 Adding NOP phi() at start of fc::@19 FINAL CONTROL FLOW GRAPH @@ -2840,7 +2272,6 @@ main: scope:[main] from @1 to:main::@1 main::@1: scope:[main] from main main::@3 [5] (byte) ba#17 ← phi( main/(byte) 0 main::@3/(byte) ba#1 ) - [5] (byte) be#2 ← phi( main/(byte) 0 main::@3/(byte) be#13 ) [5] (byte) bd#2 ← phi( main/(byte) 0 main::@3/(byte) bd#13 ) [5] (byte) bc#2 ← phi( main/(byte) 0 main::@3/(byte) bc#13 ) [5] (byte) bb#16 ← phi( main/(byte) 0 main::@3/(byte) bb#13 ) @@ -2863,7 +2294,6 @@ f0::@10: scope:[f0] from f0 [12] call fa to:f0::@1 f0::@1: scope:[f0] from f0 f0::@10 - [13] (byte) be#142 ← phi( f0/(byte) be#2 f0::@10/(byte) be#24 ) [13] (byte) bd#129 ← phi( f0/(byte) bd#2 f0::@10/(byte) bd#24 ) [13] (byte) bc#63 ← phi( f0/(byte) bc#2 f0::@10/(byte) bc#24 ) [13] (byte) bb#18 ← phi( f0/(byte) bb#16 f0::@10/(byte) bb#3 ) @@ -2875,7 +2305,6 @@ f0::@11: scope:[f0] from f0::@1 [17] call fa to:f0::@2 f0::@2: scope:[f0] from f0::@1 f0::@11 - [18] (byte) be#143 ← phi( f0::@1/(byte) be#142 f0::@11/(byte) be#24 ) [18] (byte) bd#130 ← phi( f0::@1/(byte) bd#129 f0::@11/(byte) bd#24 ) [18] (byte) bc#64 ← phi( f0::@1/(byte) bc#63 f0::@11/(byte) bc#24 ) [18] (byte) bb#19 ← phi( f0::@1/(byte) bb#18 f0::@11/(byte) bb#4 ) @@ -2887,7 +2316,6 @@ f0::@12: scope:[f0] from f0::@2 [22] call fa to:f0::@3 f0::@3: scope:[f0] from f0::@12 f0::@2 - [23] (byte) be#144 ← phi( f0::@2/(byte) be#143 f0::@12/(byte) be#24 ) [23] (byte) bd#131 ← phi( f0::@2/(byte) bd#130 f0::@12/(byte) bd#24 ) [23] (byte) bc#65 ← phi( f0::@2/(byte) bc#64 f0::@12/(byte) bc#24 ) [23] (byte) bb#20 ← phi( f0::@2/(byte) bb#19 f0::@12/(byte) bb#5 ) @@ -2899,7 +2327,6 @@ f0::@13: scope:[f0] from f0::@3 [27] call fa to:f0::@4 f0::@4: scope:[f0] from f0::@13 f0::@3 - [28] (byte) be#100 ← phi( f0::@13/(byte) be#24 f0::@3/(byte) be#144 ) [28] (byte) bd#132 ← phi( f0::@13/(byte) bd#24 f0::@3/(byte) bd#131 ) [28] (byte) bc#66 ← phi( f0::@13/(byte) bc#24 f0::@3/(byte) bc#65 ) [28] (byte) bb#21 ← phi( f0::@13/(byte) bb#6 f0::@3/(byte) bb#20 ) @@ -2911,7 +2338,6 @@ f0::@14: scope:[f0] from f0::@4 [32] call fa to:f0::@5 f0::@5: scope:[f0] from f0::@14 f0::@4 - [33] (byte) be#101 ← phi( f0::@14/(byte) be#24 f0::@4/(byte) be#100 ) [33] (byte) bd#133 ← phi( f0::@14/(byte) bd#24 f0::@4/(byte) bd#132 ) [33] (byte) bc#100 ← phi( f0::@14/(byte) bc#24 f0::@4/(byte) bc#66 ) [33] (byte) bb#22 ← phi( f0::@14/(byte) bb#66 f0::@4/(byte) bb#21 ) @@ -2923,7 +2349,6 @@ f0::@15: scope:[f0] from f0::@5 [37] call fa to:f0::@6 f0::@6: scope:[f0] from f0::@15 f0::@5 - [38] (byte) be#102 ← phi( f0::@15/(byte) be#24 f0::@5/(byte) be#101 ) [38] (byte) bd#134 ← phi( f0::@15/(byte) bd#24 f0::@5/(byte) bd#133 ) [38] (byte) bc#101 ← phi( f0::@15/(byte) bc#24 f0::@5/(byte) bc#100 ) [38] (byte) bb#23 ← phi( f0::@15/(byte) bb#67 f0::@5/(byte) bb#22 ) @@ -2935,7 +2360,6 @@ f0::@16: scope:[f0] from f0::@6 [42] call fa to:f0::@7 f0::@7: scope:[f0] from f0::@16 f0::@6 - [43] (byte) be#103 ← phi( f0::@16/(byte) be#24 f0::@6/(byte) be#102 ) [43] (byte) bd#135 ← phi( f0::@16/(byte) bd#24 f0::@6/(byte) bd#134 ) [43] (byte) bc#102 ← phi( f0::@16/(byte) bc#24 f0::@6/(byte) bc#101 ) [43] (byte) bb#24 ← phi( f0::@16/(byte) bb#68 f0::@6/(byte) bb#23 ) @@ -2947,7 +2371,6 @@ f0::@17: scope:[f0] from f0::@7 [47] call fa to:f0::@8 f0::@8: scope:[f0] from f0::@17 f0::@7 - [48] (byte) be#104 ← phi( f0::@17/(byte) be#24 f0::@7/(byte) be#103 ) [48] (byte) bd#136 ← phi( f0::@17/(byte) bd#24 f0::@7/(byte) bd#135 ) [48] (byte) bc#103 ← phi( f0::@17/(byte) bc#24 f0::@7/(byte) bc#102 ) [48] (byte) bb#25 ← phi( f0::@17/(byte) bb#10 f0::@7/(byte) bb#24 ) @@ -2959,7 +2382,6 @@ f0::@18: scope:[f0] from f0::@8 [52] call fa to:f0::@9 f0::@9: scope:[f0] from f0::@18 f0::@8 - [53] (byte) be#105 ← phi( f0::@18/(byte) be#24 f0::@8/(byte) be#104 ) [53] (byte) bd#93 ← phi( f0::@18/(byte) bd#24 f0::@8/(byte) bd#136 ) [53] (byte) bc#71 ← phi( f0::@18/(byte) bc#24 f0::@8/(byte) bc#103 ) [53] (byte) bb#50 ← phi( f0::@18/(byte) bb#11 f0::@8/(byte) bb#25 ) @@ -2970,7 +2392,6 @@ f0::@19: scope:[f0] from f0::@9 [56] call fa to:f0::@return f0::@return: scope:[f0] from f0::@19 f0::@9 - [57] (byte) be#13 ← phi( f0::@19/(byte) be#24 f0::@9/(byte) be#105 ) [57] (byte) bd#13 ← phi( f0::@19/(byte) bd#24 f0::@9/(byte) bd#93 ) [57] (byte) bc#13 ← phi( f0::@19/(byte) bc#24 f0::@9/(byte) bc#71 ) [57] (byte) bb#13 ← phi( f0::@19/(byte) 0 f0::@9/(byte) bb#50 ) @@ -2979,7 +2400,6 @@ f0::@return: scope:[f0] from f0::@19 f0::@9 (void()) fa() fa: scope:[fa] from f0::@10 f0::@11 f0::@12 f0::@13 f0::@14 f0::@15 f0::@16 f0::@17 f0::@18 f0::@19 - [59] (byte) be#107 ← phi( f0::@10/(byte) be#2 f0::@11/(byte) be#142 f0::@12/(byte) be#143 f0::@13/(byte) be#144 f0::@14/(byte) be#100 f0::@15/(byte) be#101 f0::@16/(byte) be#102 f0::@17/(byte) be#103 f0::@18/(byte) be#104 f0::@19/(byte) be#105 ) [59] (byte) bd#137 ← phi( f0::@10/(byte) bd#2 f0::@11/(byte) bd#129 f0::@12/(byte) bd#130 f0::@13/(byte) bd#131 f0::@14/(byte) bd#132 f0::@15/(byte) bd#133 f0::@16/(byte) bd#134 f0::@17/(byte) bd#135 f0::@18/(byte) bd#136 f0::@19/(byte) bd#93 ) [59] (byte) bc#39 ← phi( f0::@10/(byte) bc#2 f0::@11/(byte) bc#63 f0::@12/(byte) bc#64 f0::@13/(byte) bc#65 f0::@14/(byte) bc#66 f0::@15/(byte) bc#100 f0::@16/(byte) bc#101 f0::@17/(byte) bc#102 f0::@18/(byte) bc#103 f0::@19/(byte) bc#71 ) [59] (byte) bb#27 ← phi( f0::@10/(byte) bb#100 f0::@11/(byte) bb#101 f0::@12/(byte) bb#102 f0::@13/(byte) bb#103 f0::@14/(byte) bb#104 f0::@15/(byte) bb#105 f0::@16/(byte) bb#106 f0::@17/(byte) bb#107 f0::@18/(byte) bb#108 f0::@19/(byte) 0 ) @@ -2991,7 +2411,6 @@ fa::@10: scope:[fa] from fa [63] call fb to:fa::@1 fa::@1: scope:[fa] from fa fa::@10 - [64] (byte) be#108 ← phi( fa/(byte) be#107 fa::@10/(byte) be#35 ) [64] (byte) bd#138 ← phi( fa/(byte) bd#137 fa::@10/(byte) bd#35 ) [64] (byte) bc#40 ← phi( fa/(byte) bc#39 fa::@10/(byte) bc#104 ) [65] if((byte) bb#27!=(byte) 1) goto fa::@2 @@ -3002,7 +2421,6 @@ fa::@11: scope:[fa] from fa::@1 [68] call fb to:fa::@2 fa::@2: scope:[fa] from fa::@1 fa::@11 - [69] (byte) be#109 ← phi( fa::@1/(byte) be#108 fa::@11/(byte) be#35 ) [69] (byte) bd#139 ← phi( fa::@1/(byte) bd#138 fa::@11/(byte) bd#35 ) [69] (byte) bc#41 ← phi( fa::@1/(byte) bc#40 fa::@11/(byte) bc#105 ) [70] if((byte) bb#27!=(byte) 2) goto fa::@3 @@ -3013,7 +2431,6 @@ fa::@12: scope:[fa] from fa::@2 [73] call fb to:fa::@3 fa::@3: scope:[fa] from fa::@12 fa::@2 - [74] (byte) be#110 ← phi( fa::@2/(byte) be#109 fa::@12/(byte) be#35 ) [74] (byte) bd#140 ← phi( fa::@2/(byte) bd#139 fa::@12/(byte) bd#35 ) [74] (byte) bc#42 ← phi( fa::@2/(byte) bc#41 fa::@12/(byte) bc#106 ) [75] if((byte) bb#27!=(byte) 3) goto fa::@4 @@ -3024,7 +2441,6 @@ fa::@13: scope:[fa] from fa::@3 [78] call fb to:fa::@4 fa::@4: scope:[fa] from fa::@13 fa::@3 - [79] (byte) be#111 ← phi( fa::@13/(byte) be#35 fa::@3/(byte) be#110 ) [79] (byte) bd#141 ← phi( fa::@13/(byte) bd#35 fa::@3/(byte) bd#140 ) [79] (byte) bc#43 ← phi( fa::@13/(byte) bc#107 fa::@3/(byte) bc#42 ) [80] if((byte) bb#27!=(byte) 4) goto fa::@5 @@ -3035,7 +2451,6 @@ fa::@14: scope:[fa] from fa::@4 [83] call fb to:fa::@5 fa::@5: scope:[fa] from fa::@14 fa::@4 - [84] (byte) be#112 ← phi( fa::@14/(byte) be#35 fa::@4/(byte) be#111 ) [84] (byte) bd#100 ← phi( fa::@14/(byte) bd#35 fa::@4/(byte) bd#141 ) [84] (byte) bc#44 ← phi( fa::@14/(byte) bc#108 fa::@4/(byte) bc#43 ) [85] if((byte) bb#27!=(byte) 5) goto fa::@6 @@ -3046,7 +2461,6 @@ fa::@15: scope:[fa] from fa::@5 [88] call fb to:fa::@6 fa::@6: scope:[fa] from fa::@15 fa::@5 - [89] (byte) be#113 ← phi( fa::@15/(byte) be#35 fa::@5/(byte) be#112 ) [89] (byte) bd#101 ← phi( fa::@15/(byte) bd#35 fa::@5/(byte) bd#100 ) [89] (byte) bc#45 ← phi( fa::@15/(byte) bc#109 fa::@5/(byte) bc#44 ) [90] if((byte) bb#27!=(byte) 6) goto fa::@7 @@ -3057,7 +2471,6 @@ fa::@16: scope:[fa] from fa::@6 [93] call fb to:fa::@7 fa::@7: scope:[fa] from fa::@16 fa::@6 - [94] (byte) be#114 ← phi( fa::@16/(byte) be#35 fa::@6/(byte) be#113 ) [94] (byte) bd#102 ← phi( fa::@16/(byte) bd#35 fa::@6/(byte) bd#101 ) [94] (byte) bc#46 ← phi( fa::@16/(byte) bc#110 fa::@6/(byte) bc#45 ) [95] if((byte) bb#27!=(byte) 7) goto fa::@8 @@ -3068,7 +2481,6 @@ fa::@17: scope:[fa] from fa::@7 [98] call fb to:fa::@8 fa::@8: scope:[fa] from fa::@17 fa::@7 - [99] (byte) be#115 ← phi( fa::@17/(byte) be#35 fa::@7/(byte) be#114 ) [99] (byte) bd#103 ← phi( fa::@17/(byte) bd#35 fa::@7/(byte) bd#102 ) [99] (byte) bc#47 ← phi( fa::@17/(byte) bc#111 fa::@7/(byte) bc#46 ) [100] if((byte) bb#27!=(byte) 8) goto fa::@9 @@ -3079,7 +2491,6 @@ fa::@18: scope:[fa] from fa::@8 [103] call fb to:fa::@9 fa::@9: scope:[fa] from fa::@18 fa::@8 - [104] (byte) be#116 ← phi( fa::@18/(byte) be#35 fa::@8/(byte) be#115 ) [104] (byte) bd#104 ← phi( fa::@18/(byte) bd#35 fa::@8/(byte) bd#103 ) [104] (byte) bc#83 ← phi( fa::@18/(byte) bc#112 fa::@8/(byte) bc#47 ) [105] if((byte) bb#27!=(byte) 9) goto fa::@return @@ -3089,7 +2500,6 @@ fa::@19: scope:[fa] from fa::@9 [107] call fb to:fa::@return fa::@return: scope:[fa] from fa::@19 fa::@9 - [108] (byte) be#24 ← phi( fa::@19/(byte) be#35 fa::@9/(byte) be#116 ) [108] (byte) bd#24 ← phi( fa::@19/(byte) bd#35 fa::@9/(byte) bd#104 ) [108] (byte) bc#24 ← phi( fa::@19/(byte) 0 fa::@9/(byte) bc#83 ) [109] return @@ -3097,7 +2507,6 @@ fa::@return: scope:[fa] from fa::@19 fa::@9 (void()) fb() fb: scope:[fb] from fa::@10 fa::@11 fa::@12 fa::@13 fa::@14 fa::@15 fa::@16 fa::@17 fa::@18 fa::@19 - [110] (byte) be#118 ← phi( fa::@10/(byte) be#107 fa::@11/(byte) be#108 fa::@12/(byte) be#109 fa::@13/(byte) be#110 fa::@14/(byte) be#111 fa::@15/(byte) be#112 fa::@16/(byte) be#113 fa::@17/(byte) be#114 fa::@18/(byte) be#115 fa::@19/(byte) be#116 ) [110] (byte) bd#106 ← phi( fa::@10/(byte) bd#137 fa::@11/(byte) bd#138 fa::@12/(byte) bd#139 fa::@13/(byte) bd#140 fa::@14/(byte) bd#141 fa::@15/(byte) bd#100 fa::@16/(byte) bd#101 fa::@17/(byte) bd#102 fa::@18/(byte) bd#103 fa::@19/(byte) bd#104 ) [110] (byte) bc#113 ← phi( fa::@10/(byte) bc#172 fa::@11/(byte) bc#173 fa::@12/(byte) bc#174 fa::@13/(byte) bc#175 fa::@14/(byte) bc#176 fa::@15/(byte) bc#177 fa::@16/(byte) bc#178 fa::@17/(byte) bc#179 fa::@18/(byte) bc#180 fa::@19/(byte) 0 ) [111] if((byte) bc#113!=(byte) 0) goto fb::@1 @@ -3108,7 +2517,6 @@ fb::@10: scope:[fb] from fb [114] call fc to:fb::@1 fb::@1: scope:[fb] from fb fb::@10 - [115] (byte) be#119 ← phi( fb/(byte) be#118 fb::@10/(byte) be#46 ) [115] (byte) bd#107 ← phi( fb/(byte) bd#106 fb::@10/(byte) bd#146 ) [116] if((byte) bc#113!=(byte) 1) goto fb::@2 to:fb::@11 @@ -3118,7 +2526,6 @@ fb::@11: scope:[fb] from fb::@1 [119] call fc to:fb::@2 fb::@2: scope:[fb] from fb::@1 fb::@11 - [120] (byte) be#120 ← phi( fb::@1/(byte) be#119 fb::@11/(byte) be#46 ) [120] (byte) bd#108 ← phi( fb::@1/(byte) bd#107 fb::@11/(byte) bd#147 ) [121] if((byte) bc#113!=(byte) 2) goto fb::@3 to:fb::@12 @@ -3128,7 +2535,6 @@ fb::@12: scope:[fb] from fb::@2 [124] call fc to:fb::@3 fb::@3: scope:[fb] from fb::@12 fb::@2 - [125] (byte) be#121 ← phi( fb::@2/(byte) be#120 fb::@12/(byte) be#46 ) [125] (byte) bd#109 ← phi( fb::@2/(byte) bd#108 fb::@12/(byte) bd#148 ) [126] if((byte) bc#113!=(byte) 3) goto fb::@4 to:fb::@13 @@ -3138,7 +2544,6 @@ fb::@13: scope:[fb] from fb::@3 [129] call fc to:fb::@4 fb::@4: scope:[fb] from fb::@13 fb::@3 - [130] (byte) be#122 ← phi( fb::@13/(byte) be#46 fb::@3/(byte) be#121 ) [130] (byte) bd#110 ← phi( fb::@13/(byte) bd#149 fb::@3/(byte) bd#109 ) [131] if((byte) bc#113!=(byte) 4) goto fb::@5 to:fb::@14 @@ -3148,7 +2553,6 @@ fb::@14: scope:[fb] from fb::@4 [134] call fc to:fb::@5 fb::@5: scope:[fb] from fb::@14 fb::@4 - [135] (byte) be#123 ← phi( fb::@14/(byte) be#46 fb::@4/(byte) be#122 ) [135] (byte) bd#111 ← phi( fb::@14/(byte) bd#150 fb::@4/(byte) bd#110 ) [136] if((byte) bc#113!=(byte) 5) goto fb::@6 to:fb::@15 @@ -3158,7 +2562,6 @@ fb::@15: scope:[fb] from fb::@5 [139] call fc to:fb::@6 fb::@6: scope:[fb] from fb::@15 fb::@5 - [140] (byte) be#124 ← phi( fb::@15/(byte) be#46 fb::@5/(byte) be#123 ) [140] (byte) bd#112 ← phi( fb::@15/(byte) bd#151 fb::@5/(byte) bd#111 ) [141] if((byte) bc#113!=(byte) 6) goto fb::@7 to:fb::@16 @@ -3168,7 +2571,6 @@ fb::@16: scope:[fb] from fb::@6 [144] call fc to:fb::@7 fb::@7: scope:[fb] from fb::@16 fb::@6 - [145] (byte) be#125 ← phi( fb::@16/(byte) be#46 fb::@6/(byte) be#124 ) [145] (byte) bd#113 ← phi( fb::@16/(byte) bd#152 fb::@6/(byte) bd#112 ) [146] if((byte) bc#113!=(byte) 7) goto fb::@8 to:fb::@17 @@ -3178,7 +2580,6 @@ fb::@17: scope:[fb] from fb::@7 [149] call fc to:fb::@8 fb::@8: scope:[fb] from fb::@17 fb::@7 - [150] (byte) be#126 ← phi( fb::@17/(byte) be#46 fb::@7/(byte) be#125 ) [150] (byte) bd#114 ← phi( fb::@17/(byte) bd#153 fb::@7/(byte) bd#113 ) [151] if((byte) bc#113!=(byte) 8) goto fb::@9 to:fb::@18 @@ -3188,7 +2589,6 @@ fb::@18: scope:[fb] from fb::@8 [154] call fc to:fb::@9 fb::@9: scope:[fb] from fb::@18 fb::@8 - [155] (byte) be#127 ← phi( fb::@18/(byte) be#46 fb::@8/(byte) be#126 ) [155] (byte) bd#116 ← phi( fb::@18/(byte) bd#154 fb::@8/(byte) bd#114 ) [156] if((byte) bc#113!=(byte) 9) goto fb::@return to:fb::@19 @@ -3197,86 +2597,74 @@ fb::@19: scope:[fb] from fb::@9 [158] call fc to:fb::@return fb::@return: scope:[fb] from fb::@19 fb::@9 - [159] (byte) be#35 ← phi( fb::@19/(byte) be#46 fb::@9/(byte) be#127 ) [159] (byte) bd#35 ← phi( fb::@19/(byte) 0 fb::@9/(byte) bd#116 ) [160] return to:@return (void()) fc() fc: scope:[fc] from fb::@10 fb::@11 fb::@12 fb::@13 fb::@14 fb::@15 fb::@16 fb::@17 fb::@18 fb::@19 - [161] (byte) be#129 ← phi( fb::@10/(byte) be#118 fb::@11/(byte) be#119 fb::@12/(byte) be#120 fb::@13/(byte) be#121 fb::@14/(byte) be#122 fb::@15/(byte) be#123 fb::@16/(byte) be#124 fb::@17/(byte) be#125 fb::@18/(byte) be#126 fb::@19/(byte) be#127 ) [161] (byte) bd#117 ← phi( fb::@10/(byte) bd#235 fb::@11/(byte) bd#236 fb::@12/(byte) bd#237 fb::@13/(byte) bd#238 fb::@14/(byte) bd#239 fb::@15/(byte) bd#240 fb::@16/(byte) bd#241 fb::@17/(byte) bd#242 fb::@18/(byte) bd#243 fb::@19/(byte) 0 ) [162] if((byte) bd#117!=(byte) 0) goto fc::@1 to:fc::@10 fc::@10: scope:[fc] from fc - [163] (byte) be#36 ← ++ (byte) be#129 + [163] phi() to:fc::@1 fc::@1: scope:[fc] from fc fc::@10 - [164] (byte) be#130 ← phi( fc/(byte) be#129 fc::@10/(byte) be#36 ) - [165] if((byte) bd#117!=(byte) 1) goto fc::@2 + [164] if((byte) bd#117!=(byte) 1) goto fc::@2 to:fc::@11 fc::@11: scope:[fc] from fc::@1 - [166] (byte) be#37 ← ++ (byte) be#130 + [165] phi() to:fc::@2 fc::@2: scope:[fc] from fc::@1 fc::@11 - [167] (byte) be#131 ← phi( fc::@1/(byte) be#130 fc::@11/(byte) be#37 ) - [168] if((byte) bd#117!=(byte) 2) goto fc::@3 + [166] if((byte) bd#117!=(byte) 2) goto fc::@3 to:fc::@12 fc::@12: scope:[fc] from fc::@2 - [169] (byte) be#38 ← ++ (byte) be#131 + [167] phi() to:fc::@3 fc::@3: scope:[fc] from fc::@12 fc::@2 - [170] (byte) be#132 ← phi( fc::@12/(byte) be#38 fc::@2/(byte) be#131 ) - [171] if((byte) bd#117!=(byte) 3) goto fc::@4 + [168] if((byte) bd#117!=(byte) 3) goto fc::@4 to:fc::@13 fc::@13: scope:[fc] from fc::@3 - [172] (byte) be#39 ← ++ (byte) be#132 + [169] phi() to:fc::@4 fc::@4: scope:[fc] from fc::@13 fc::@3 - [173] (byte) be#133 ← phi( fc::@13/(byte) be#39 fc::@3/(byte) be#132 ) - [174] if((byte) bd#117!=(byte) 4) goto fc::@5 + [170] if((byte) bd#117!=(byte) 4) goto fc::@5 to:fc::@14 fc::@14: scope:[fc] from fc::@4 - [175] (byte) be#40 ← ++ (byte) be#133 + [171] phi() to:fc::@5 fc::@5: scope:[fc] from fc::@14 fc::@4 - [176] (byte) be#134 ← phi( fc::@14/(byte) be#40 fc::@4/(byte) be#133 ) - [177] if((byte) bd#117!=(byte) 5) goto fc::@6 + [172] if((byte) bd#117!=(byte) 5) goto fc::@6 to:fc::@15 fc::@15: scope:[fc] from fc::@5 - [178] (byte) be#41 ← ++ (byte) be#134 + [173] phi() to:fc::@6 fc::@6: scope:[fc] from fc::@15 fc::@5 - [179] (byte) be#135 ← phi( fc::@15/(byte) be#41 fc::@5/(byte) be#134 ) - [180] if((byte) bd#117!=(byte) 6) goto fc::@7 + [174] if((byte) bd#117!=(byte) 6) goto fc::@7 to:fc::@16 fc::@16: scope:[fc] from fc::@6 - [181] (byte) be#42 ← ++ (byte) be#135 + [175] phi() to:fc::@7 fc::@7: scope:[fc] from fc::@16 fc::@6 - [182] (byte) be#136 ← phi( fc::@16/(byte) be#42 fc::@6/(byte) be#135 ) - [183] if((byte) bd#117!=(byte) 7) goto fc::@8 + [176] if((byte) bd#117!=(byte) 7) goto fc::@8 to:fc::@17 fc::@17: scope:[fc] from fc::@7 - [184] (byte) be#43 ← ++ (byte) be#136 + [177] phi() to:fc::@8 fc::@8: scope:[fc] from fc::@17 fc::@7 - [185] (byte) be#137 ← phi( fc::@17/(byte) be#43 fc::@7/(byte) be#136 ) - [186] if((byte) bd#117!=(byte) 8) goto fc::@9 + [178] if((byte) bd#117!=(byte) 8) goto fc::@9 to:fc::@18 fc::@18: scope:[fc] from fc::@8 - [187] (byte) be#44 ← ++ (byte) be#137 + [179] phi() to:fc::@9 fc::@9: scope:[fc] from fc::@18 fc::@8 - [188] (byte) be#138 ← phi( fc::@18/(byte) be#44 fc::@8/(byte) be#137 ) - [189] if((byte) bd#117!=(byte) 9) goto fc::@19 - to:fc::@return + [180] if((byte) bd#117!=(byte) 9) goto fc::@return + to:fc::@19 fc::@19: scope:[fc] from fc::@9 - [190] phi() + [181] phi() to:fc::@return fc::@return: scope:[fc] from fc::@19 fc::@9 - [191] (byte) be#46 ← phi( fc::@9/(byte) 0 fc::@19/(byte) be#138 ) - [192] return + [182] return to:@return @@ -3373,7 +2761,7 @@ VARIABLE REGISTER WEIGHTS (byte) bd#113 4.0 (byte) bd#114 4.0 (byte) bd#116 3.0 -(byte) bd#117 1.3571428571428568 +(byte) bd#117 1.9999999999999991 (byte) bd#129 2.0 (byte) bd#13 3.75 (byte) bd#130 2.0 @@ -3410,60 +2798,6 @@ VARIABLE REGISTER WEIGHTS (byte) bd#243 4.0 (byte) bd#35 1.8333333333333335 (byte) bd#93 2.6666666666666665 -(byte) be -(byte) be#100 2.0 -(byte) be#101 2.0 -(byte) be#102 2.0 -(byte) be#103 2.0 -(byte) be#104 2.0 -(byte) be#105 2.6666666666666665 -(byte) be#107 6.0 -(byte) be#108 2.0 -(byte) be#109 2.0 -(byte) be#110 2.0 -(byte) be#111 2.0 -(byte) be#112 2.0 -(byte) be#113 2.0 -(byte) be#114 2.0 -(byte) be#115 2.0 -(byte) be#116 2.6666666666666665 -(byte) be#118 6.0 -(byte) be#119 2.0 -(byte) be#120 2.0 -(byte) be#121 2.0 -(byte) be#122 2.0 -(byte) be#123 2.0 -(byte) be#124 2.0 -(byte) be#125 2.0 -(byte) be#126 2.0 -(byte) be#127 2.6666666666666665 -(byte) be#129 12.0 -(byte) be#13 3.75 -(byte) be#130 4.0 -(byte) be#131 4.0 -(byte) be#132 4.0 -(byte) be#133 4.0 -(byte) be#134 4.0 -(byte) be#135 4.0 -(byte) be#136 4.0 -(byte) be#137 4.0 -(byte) be#138 2.0 -(byte) be#142 2.0 -(byte) be#143 2.0 -(byte) be#144 2.0 -(byte) be#2 3.0 -(byte) be#24 2.0 -(byte) be#35 2.0 -(byte) be#36 4.0 -(byte) be#37 4.0 -(byte) be#38 4.0 -(byte) be#39 4.0 -(byte) be#40 4.0 -(byte) be#41 4.0 -(byte) be#42 4.0 -(byte) be#43 4.0 -(byte) be#44 4.0 -(byte) be#46 1.8333333333333335 (void()) f0() (void()) fa() (void()) fb() @@ -3478,7 +2812,6 @@ Initial phi equivalence classes [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] -[ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] Complete equivalence classes [ ba#17 ba#1 ] [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] @@ -3487,7 +2820,6 @@ Complete equivalence classes [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] -[ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] Allocated zp[1]:2 [ ba#17 ba#1 ] Allocated zp[1]:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] Allocated zp[1]:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] @@ -3495,7 +2827,6 @@ Allocated zp[1]:5 [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#109 bc#44 bc Allocated zp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] Allocated zp[1]:7 [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] Allocated zp[1]:8 [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] -Allocated zp[1]:9 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] INITIAL ASM Target platform is c64basic / MOS6502X @@ -3508,7 +2839,6 @@ Target platform is c64basic / MOS6502X .label ba = 2 .label bc = 5 .label bd = 7 - .label be = 9 .label bb = 3 .label bb_1 = 4 .label bd_1 = 8 @@ -3536,16 +2866,13 @@ main: { // [5] phi (byte) ba#17 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z ba - // [5] phi (byte) be#2 = (byte) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z be - // [5] phi (byte) bd#2 = (byte) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 + // [5] phi (byte) bd#2 = (byte) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 lda #0 sta.z bd - // [5] phi (byte) bc#2 = (byte) 0 [phi:main->main::@1#3] -- vbuz1=vbuc1 + // [5] phi (byte) bc#2 = (byte) 0 [phi:main->main::@1#2] -- vbuz1=vbuc1 lda #0 sta.z bc - // [5] phi (byte) bb#16 = (byte) 0 [phi:main->main::@1#4] -- vbuz1=vbuc1 + // [5] phi (byte) bb#16 = (byte) 0 [phi:main->main::@1#3] -- vbuz1=vbuc1 lda #0 sta.z bb jmp __b1 @@ -3566,10 +2893,9 @@ main: { // [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1] __b1_from___b3: // [5] phi (byte) ba#17 = (byte) ba#1 [phi:main::@3->main::@1#0] -- register_copy - // [5] phi (byte) be#2 = (byte) be#13 [phi:main::@3->main::@1#1] -- register_copy - // [5] phi (byte) bd#2 = (byte) bd#13 [phi:main::@3->main::@1#2] -- register_copy - // [5] phi (byte) bc#2 = (byte) bc#13 [phi:main::@3->main::@1#3] -- register_copy - // [5] phi (byte) bb#16 = (byte) bb#13 [phi:main::@3->main::@1#4] -- register_copy + // [5] phi (byte) bd#2 = (byte) bd#13 [phi:main::@3->main::@1#1] -- register_copy + // [5] phi (byte) bc#2 = (byte) bc#13 [phi:main::@3->main::@1#2] -- register_copy + // [5] phi (byte) bb#16 = (byte) bb#13 [phi:main::@3->main::@1#3] -- register_copy jmp __b1 } // f0 @@ -3589,18 +2915,16 @@ f0: { // [12] call fa // [59] phi from f0::@10 to fa [phi:f0::@10->fa] fa_from___b10: - // [59] phi (byte) be#107 = (byte) be#2 [phi:f0::@10->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#2 [phi:f0::@10->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#2 [phi:f0::@10->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#100 [phi:f0::@10->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#2 [phi:f0::@10->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#2 [phi:f0::@10->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#100 [phi:f0::@10->fa#2] -- register_copy jsr fa // [13] phi from f0 f0::@10 to f0::@1 [phi:f0/f0::@10->f0::@1] __b1_from_f0: __b1_from___b10: - // [13] phi (byte) be#142 = (byte) be#2 [phi:f0/f0::@10->f0::@1#0] -- register_copy - // [13] phi (byte) bd#129 = (byte) bd#2 [phi:f0/f0::@10->f0::@1#1] -- register_copy - // [13] phi (byte) bc#63 = (byte) bc#2 [phi:f0/f0::@10->f0::@1#2] -- register_copy - // [13] phi (byte) bb#18 = (byte) bb#16 [phi:f0/f0::@10->f0::@1#3] -- register_copy + // [13] phi (byte) bd#129 = (byte) bd#2 [phi:f0/f0::@10->f0::@1#0] -- register_copy + // [13] phi (byte) bc#63 = (byte) bc#2 [phi:f0/f0::@10->f0::@1#1] -- register_copy + // [13] phi (byte) bb#18 = (byte) bb#16 [phi:f0/f0::@10->f0::@1#2] -- register_copy jmp __b1 // f0::@1 __b1: @@ -3619,18 +2943,16 @@ f0: { // [17] call fa // [59] phi from f0::@11 to fa [phi:f0::@11->fa] fa_from___b11: - // [59] phi (byte) be#107 = (byte) be#142 [phi:f0::@11->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#129 [phi:f0::@11->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#63 [phi:f0::@11->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#101 [phi:f0::@11->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#129 [phi:f0::@11->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#63 [phi:f0::@11->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#101 [phi:f0::@11->fa#2] -- register_copy jsr fa // [18] phi from f0::@1 f0::@11 to f0::@2 [phi:f0::@1/f0::@11->f0::@2] __b2_from___b1: __b2_from___b11: - // [18] phi (byte) be#143 = (byte) be#142 [phi:f0::@1/f0::@11->f0::@2#0] -- register_copy - // [18] phi (byte) bd#130 = (byte) bd#129 [phi:f0::@1/f0::@11->f0::@2#1] -- register_copy - // [18] phi (byte) bc#64 = (byte) bc#63 [phi:f0::@1/f0::@11->f0::@2#2] -- register_copy - // [18] phi (byte) bb#19 = (byte) bb#18 [phi:f0::@1/f0::@11->f0::@2#3] -- register_copy + // [18] phi (byte) bd#130 = (byte) bd#129 [phi:f0::@1/f0::@11->f0::@2#0] -- register_copy + // [18] phi (byte) bc#64 = (byte) bc#63 [phi:f0::@1/f0::@11->f0::@2#1] -- register_copy + // [18] phi (byte) bb#19 = (byte) bb#18 [phi:f0::@1/f0::@11->f0::@2#2] -- register_copy jmp __b2 // f0::@2 __b2: @@ -3649,18 +2971,16 @@ f0: { // [22] call fa // [59] phi from f0::@12 to fa [phi:f0::@12->fa] fa_from___b12: - // [59] phi (byte) be#107 = (byte) be#143 [phi:f0::@12->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#130 [phi:f0::@12->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#64 [phi:f0::@12->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#102 [phi:f0::@12->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#130 [phi:f0::@12->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#64 [phi:f0::@12->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#102 [phi:f0::@12->fa#2] -- register_copy jsr fa // [23] phi from f0::@12 f0::@2 to f0::@3 [phi:f0::@12/f0::@2->f0::@3] __b3_from___b12: __b3_from___b2: - // [23] phi (byte) be#144 = (byte) be#24 [phi:f0::@12/f0::@2->f0::@3#0] -- register_copy - // [23] phi (byte) bd#131 = (byte) bd#24 [phi:f0::@12/f0::@2->f0::@3#1] -- register_copy - // [23] phi (byte) bc#65 = (byte) bc#24 [phi:f0::@12/f0::@2->f0::@3#2] -- register_copy - // [23] phi (byte) bb#20 = (byte) bb#5 [phi:f0::@12/f0::@2->f0::@3#3] -- register_copy + // [23] phi (byte) bd#131 = (byte) bd#24 [phi:f0::@12/f0::@2->f0::@3#0] -- register_copy + // [23] phi (byte) bc#65 = (byte) bc#24 [phi:f0::@12/f0::@2->f0::@3#1] -- register_copy + // [23] phi (byte) bb#20 = (byte) bb#5 [phi:f0::@12/f0::@2->f0::@3#2] -- register_copy jmp __b3 // f0::@3 __b3: @@ -3679,18 +2999,16 @@ f0: { // [27] call fa // [59] phi from f0::@13 to fa [phi:f0::@13->fa] fa_from___b13: - // [59] phi (byte) be#107 = (byte) be#144 [phi:f0::@13->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#131 [phi:f0::@13->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#65 [phi:f0::@13->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#103 [phi:f0::@13->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#131 [phi:f0::@13->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#65 [phi:f0::@13->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#103 [phi:f0::@13->fa#2] -- register_copy jsr fa // [28] phi from f0::@13 f0::@3 to f0::@4 [phi:f0::@13/f0::@3->f0::@4] __b4_from___b13: __b4_from___b3: - // [28] phi (byte) be#100 = (byte) be#24 [phi:f0::@13/f0::@3->f0::@4#0] -- register_copy - // [28] phi (byte) bd#132 = (byte) bd#24 [phi:f0::@13/f0::@3->f0::@4#1] -- register_copy - // [28] phi (byte) bc#66 = (byte) bc#24 [phi:f0::@13/f0::@3->f0::@4#2] -- register_copy - // [28] phi (byte) bb#21 = (byte) bb#6 [phi:f0::@13/f0::@3->f0::@4#3] -- register_copy + // [28] phi (byte) bd#132 = (byte) bd#24 [phi:f0::@13/f0::@3->f0::@4#0] -- register_copy + // [28] phi (byte) bc#66 = (byte) bc#24 [phi:f0::@13/f0::@3->f0::@4#1] -- register_copy + // [28] phi (byte) bb#21 = (byte) bb#6 [phi:f0::@13/f0::@3->f0::@4#2] -- register_copy jmp __b4 // f0::@4 __b4: @@ -3709,18 +3027,16 @@ f0: { // [32] call fa // [59] phi from f0::@14 to fa [phi:f0::@14->fa] fa_from___b14: - // [59] phi (byte) be#107 = (byte) be#100 [phi:f0::@14->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#132 [phi:f0::@14->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#66 [phi:f0::@14->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#104 [phi:f0::@14->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#132 [phi:f0::@14->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#66 [phi:f0::@14->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#104 [phi:f0::@14->fa#2] -- register_copy jsr fa // [33] phi from f0::@14 f0::@4 to f0::@5 [phi:f0::@14/f0::@4->f0::@5] __b5_from___b14: __b5_from___b4: - // [33] phi (byte) be#101 = (byte) be#24 [phi:f0::@14/f0::@4->f0::@5#0] -- register_copy - // [33] phi (byte) bd#133 = (byte) bd#24 [phi:f0::@14/f0::@4->f0::@5#1] -- register_copy - // [33] phi (byte) bc#100 = (byte) bc#24 [phi:f0::@14/f0::@4->f0::@5#2] -- register_copy - // [33] phi (byte) bb#22 = (byte) bb#66 [phi:f0::@14/f0::@4->f0::@5#3] -- register_copy + // [33] phi (byte) bd#133 = (byte) bd#24 [phi:f0::@14/f0::@4->f0::@5#0] -- register_copy + // [33] phi (byte) bc#100 = (byte) bc#24 [phi:f0::@14/f0::@4->f0::@5#1] -- register_copy + // [33] phi (byte) bb#22 = (byte) bb#66 [phi:f0::@14/f0::@4->f0::@5#2] -- register_copy jmp __b5 // f0::@5 __b5: @@ -3739,18 +3055,16 @@ f0: { // [37] call fa // [59] phi from f0::@15 to fa [phi:f0::@15->fa] fa_from___b15: - // [59] phi (byte) be#107 = (byte) be#101 [phi:f0::@15->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#133 [phi:f0::@15->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#100 [phi:f0::@15->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#105 [phi:f0::@15->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#133 [phi:f0::@15->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#100 [phi:f0::@15->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#105 [phi:f0::@15->fa#2] -- register_copy jsr fa // [38] phi from f0::@15 f0::@5 to f0::@6 [phi:f0::@15/f0::@5->f0::@6] __b6_from___b15: __b6_from___b5: - // [38] phi (byte) be#102 = (byte) be#24 [phi:f0::@15/f0::@5->f0::@6#0] -- register_copy - // [38] phi (byte) bd#134 = (byte) bd#24 [phi:f0::@15/f0::@5->f0::@6#1] -- register_copy - // [38] phi (byte) bc#101 = (byte) bc#24 [phi:f0::@15/f0::@5->f0::@6#2] -- register_copy - // [38] phi (byte) bb#23 = (byte) bb#67 [phi:f0::@15/f0::@5->f0::@6#3] -- register_copy + // [38] phi (byte) bd#134 = (byte) bd#24 [phi:f0::@15/f0::@5->f0::@6#0] -- register_copy + // [38] phi (byte) bc#101 = (byte) bc#24 [phi:f0::@15/f0::@5->f0::@6#1] -- register_copy + // [38] phi (byte) bb#23 = (byte) bb#67 [phi:f0::@15/f0::@5->f0::@6#2] -- register_copy jmp __b6 // f0::@6 __b6: @@ -3769,18 +3083,16 @@ f0: { // [42] call fa // [59] phi from f0::@16 to fa [phi:f0::@16->fa] fa_from___b16: - // [59] phi (byte) be#107 = (byte) be#102 [phi:f0::@16->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#134 [phi:f0::@16->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#101 [phi:f0::@16->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#106 [phi:f0::@16->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#134 [phi:f0::@16->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#101 [phi:f0::@16->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#106 [phi:f0::@16->fa#2] -- register_copy jsr fa // [43] phi from f0::@16 f0::@6 to f0::@7 [phi:f0::@16/f0::@6->f0::@7] __b7_from___b16: __b7_from___b6: - // [43] phi (byte) be#103 = (byte) be#24 [phi:f0::@16/f0::@6->f0::@7#0] -- register_copy - // [43] phi (byte) bd#135 = (byte) bd#24 [phi:f0::@16/f0::@6->f0::@7#1] -- register_copy - // [43] phi (byte) bc#102 = (byte) bc#24 [phi:f0::@16/f0::@6->f0::@7#2] -- register_copy - // [43] phi (byte) bb#24 = (byte) bb#68 [phi:f0::@16/f0::@6->f0::@7#3] -- register_copy + // [43] phi (byte) bd#135 = (byte) bd#24 [phi:f0::@16/f0::@6->f0::@7#0] -- register_copy + // [43] phi (byte) bc#102 = (byte) bc#24 [phi:f0::@16/f0::@6->f0::@7#1] -- register_copy + // [43] phi (byte) bb#24 = (byte) bb#68 [phi:f0::@16/f0::@6->f0::@7#2] -- register_copy jmp __b7 // f0::@7 __b7: @@ -3799,18 +3111,16 @@ f0: { // [47] call fa // [59] phi from f0::@17 to fa [phi:f0::@17->fa] fa_from___b17: - // [59] phi (byte) be#107 = (byte) be#103 [phi:f0::@17->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#135 [phi:f0::@17->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#102 [phi:f0::@17->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#107 [phi:f0::@17->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#135 [phi:f0::@17->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#102 [phi:f0::@17->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#107 [phi:f0::@17->fa#2] -- register_copy jsr fa // [48] phi from f0::@17 f0::@7 to f0::@8 [phi:f0::@17/f0::@7->f0::@8] __b8_from___b17: __b8_from___b7: - // [48] phi (byte) be#104 = (byte) be#24 [phi:f0::@17/f0::@7->f0::@8#0] -- register_copy - // [48] phi (byte) bd#136 = (byte) bd#24 [phi:f0::@17/f0::@7->f0::@8#1] -- register_copy - // [48] phi (byte) bc#103 = (byte) bc#24 [phi:f0::@17/f0::@7->f0::@8#2] -- register_copy - // [48] phi (byte) bb#25 = (byte) bb#10 [phi:f0::@17/f0::@7->f0::@8#3] -- register_copy + // [48] phi (byte) bd#136 = (byte) bd#24 [phi:f0::@17/f0::@7->f0::@8#0] -- register_copy + // [48] phi (byte) bc#103 = (byte) bc#24 [phi:f0::@17/f0::@7->f0::@8#1] -- register_copy + // [48] phi (byte) bb#25 = (byte) bb#10 [phi:f0::@17/f0::@7->f0::@8#2] -- register_copy jmp __b8 // f0::@8 __b8: @@ -3829,18 +3139,16 @@ f0: { // [52] call fa // [59] phi from f0::@18 to fa [phi:f0::@18->fa] fa_from___b18: - // [59] phi (byte) be#107 = (byte) be#104 [phi:f0::@18->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#136 [phi:f0::@18->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#103 [phi:f0::@18->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#108 [phi:f0::@18->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#136 [phi:f0::@18->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#103 [phi:f0::@18->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#108 [phi:f0::@18->fa#2] -- register_copy jsr fa // [53] phi from f0::@18 f0::@8 to f0::@9 [phi:f0::@18/f0::@8->f0::@9] __b9_from___b18: __b9_from___b8: - // [53] phi (byte) be#105 = (byte) be#24 [phi:f0::@18/f0::@8->f0::@9#0] -- register_copy - // [53] phi (byte) bd#93 = (byte) bd#24 [phi:f0::@18/f0::@8->f0::@9#1] -- register_copy - // [53] phi (byte) bc#71 = (byte) bc#24 [phi:f0::@18/f0::@8->f0::@9#2] -- register_copy - // [53] phi (byte) bb#50 = (byte) bb#11 [phi:f0::@18/f0::@8->f0::@9#3] -- register_copy + // [53] phi (byte) bd#93 = (byte) bd#24 [phi:f0::@18/f0::@8->f0::@9#0] -- register_copy + // [53] phi (byte) bc#71 = (byte) bc#24 [phi:f0::@18/f0::@8->f0::@9#1] -- register_copy + // [53] phi (byte) bb#50 = (byte) bb#11 [phi:f0::@18/f0::@8->f0::@9#2] -- register_copy jmp __b9 // f0::@9 __b9: @@ -3856,28 +3164,25 @@ f0: { // [56] call fa // [59] phi from f0::@19 to fa [phi:f0::@19->fa] fa_from___b19: - // [59] phi (byte) be#107 = (byte) be#105 [phi:f0::@19->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#93 [phi:f0::@19->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#71 [phi:f0::@19->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) 0 [phi:f0::@19->fa#3] -- vbuz1=vbuc1 + // [59] phi (byte) bd#137 = (byte) bd#93 [phi:f0::@19->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#71 [phi:f0::@19->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) 0 [phi:f0::@19->fa#2] -- vbuz1=vbuc1 lda #0 sta.z bb_1 jsr fa // [57] phi from f0::@19 to f0::@return [phi:f0::@19->f0::@return] __breturn_from___b19: - // [57] phi (byte) be#13 = (byte) be#24 [phi:f0::@19->f0::@return#0] -- register_copy - // [57] phi (byte) bd#13 = (byte) bd#24 [phi:f0::@19->f0::@return#1] -- register_copy - // [57] phi (byte) bc#13 = (byte) bc#24 [phi:f0::@19->f0::@return#2] -- register_copy - // [57] phi (byte) bb#13 = (byte) 0 [phi:f0::@19->f0::@return#3] -- vbuz1=vbuc1 + // [57] phi (byte) bd#13 = (byte) bd#24 [phi:f0::@19->f0::@return#0] -- register_copy + // [57] phi (byte) bc#13 = (byte) bc#24 [phi:f0::@19->f0::@return#1] -- register_copy + // [57] phi (byte) bb#13 = (byte) 0 [phi:f0::@19->f0::@return#2] -- vbuz1=vbuc1 lda #0 sta.z bb jmp __breturn // [57] phi from f0::@9 to f0::@return [phi:f0::@9->f0::@return] __breturn_from___b9: - // [57] phi (byte) be#13 = (byte) be#105 [phi:f0::@9->f0::@return#0] -- register_copy - // [57] phi (byte) bd#13 = (byte) bd#93 [phi:f0::@9->f0::@return#1] -- register_copy - // [57] phi (byte) bc#13 = (byte) bc#71 [phi:f0::@9->f0::@return#2] -- register_copy - // [57] phi (byte) bb#13 = (byte) bb#50 [phi:f0::@9->f0::@return#3] -- register_copy + // [57] phi (byte) bd#13 = (byte) bd#93 [phi:f0::@9->f0::@return#0] -- register_copy + // [57] phi (byte) bc#13 = (byte) bc#71 [phi:f0::@9->f0::@return#1] -- register_copy + // [57] phi (byte) bb#13 = (byte) bb#50 [phi:f0::@9->f0::@return#2] -- register_copy jmp __breturn // f0::@return __breturn: @@ -3901,16 +3206,14 @@ fa: { // [63] call fb // [110] phi from fa::@10 to fb [phi:fa::@10->fb] fb_from___b10: - // [110] phi (byte) be#118 = (byte) be#107 [phi:fa::@10->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#137 [phi:fa::@10->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#172 [phi:fa::@10->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#137 [phi:fa::@10->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#172 [phi:fa::@10->fb#1] -- register_copy jsr fb // [64] phi from fa fa::@10 to fa::@1 [phi:fa/fa::@10->fa::@1] __b1_from_fa: __b1_from___b10: - // [64] phi (byte) be#108 = (byte) be#107 [phi:fa/fa::@10->fa::@1#0] -- register_copy - // [64] phi (byte) bd#138 = (byte) bd#137 [phi:fa/fa::@10->fa::@1#1] -- register_copy - // [64] phi (byte) bc#40 = (byte) bc#39 [phi:fa/fa::@10->fa::@1#2] -- register_copy + // [64] phi (byte) bd#138 = (byte) bd#137 [phi:fa/fa::@10->fa::@1#0] -- register_copy + // [64] phi (byte) bc#40 = (byte) bc#39 [phi:fa/fa::@10->fa::@1#1] -- register_copy jmp __b1 // fa::@1 __b1: @@ -3929,16 +3232,14 @@ fa: { // [68] call fb // [110] phi from fa::@11 to fb [phi:fa::@11->fb] fb_from___b11: - // [110] phi (byte) be#118 = (byte) be#108 [phi:fa::@11->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#138 [phi:fa::@11->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#173 [phi:fa::@11->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#138 [phi:fa::@11->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#173 [phi:fa::@11->fb#1] -- register_copy jsr fb // [69] phi from fa::@1 fa::@11 to fa::@2 [phi:fa::@1/fa::@11->fa::@2] __b2_from___b1: __b2_from___b11: - // [69] phi (byte) be#109 = (byte) be#108 [phi:fa::@1/fa::@11->fa::@2#0] -- register_copy - // [69] phi (byte) bd#139 = (byte) bd#138 [phi:fa::@1/fa::@11->fa::@2#1] -- register_copy - // [69] phi (byte) bc#41 = (byte) bc#40 [phi:fa::@1/fa::@11->fa::@2#2] -- register_copy + // [69] phi (byte) bd#139 = (byte) bd#138 [phi:fa::@1/fa::@11->fa::@2#0] -- register_copy + // [69] phi (byte) bc#41 = (byte) bc#40 [phi:fa::@1/fa::@11->fa::@2#1] -- register_copy jmp __b2 // fa::@2 __b2: @@ -3957,16 +3258,14 @@ fa: { // [73] call fb // [110] phi from fa::@12 to fb [phi:fa::@12->fb] fb_from___b12: - // [110] phi (byte) be#118 = (byte) be#109 [phi:fa::@12->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#139 [phi:fa::@12->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#174 [phi:fa::@12->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#139 [phi:fa::@12->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#174 [phi:fa::@12->fb#1] -- register_copy jsr fb // [74] phi from fa::@12 fa::@2 to fa::@3 [phi:fa::@12/fa::@2->fa::@3] __b3_from___b12: __b3_from___b2: - // [74] phi (byte) be#110 = (byte) be#35 [phi:fa::@12/fa::@2->fa::@3#0] -- register_copy - // [74] phi (byte) bd#140 = (byte) bd#35 [phi:fa::@12/fa::@2->fa::@3#1] -- register_copy - // [74] phi (byte) bc#42 = (byte) bc#106 [phi:fa::@12/fa::@2->fa::@3#2] -- register_copy + // [74] phi (byte) bd#140 = (byte) bd#35 [phi:fa::@12/fa::@2->fa::@3#0] -- register_copy + // [74] phi (byte) bc#42 = (byte) bc#106 [phi:fa::@12/fa::@2->fa::@3#1] -- register_copy jmp __b3 // fa::@3 __b3: @@ -3985,16 +3284,14 @@ fa: { // [78] call fb // [110] phi from fa::@13 to fb [phi:fa::@13->fb] fb_from___b13: - // [110] phi (byte) be#118 = (byte) be#110 [phi:fa::@13->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#140 [phi:fa::@13->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#175 [phi:fa::@13->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#140 [phi:fa::@13->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#175 [phi:fa::@13->fb#1] -- register_copy jsr fb // [79] phi from fa::@13 fa::@3 to fa::@4 [phi:fa::@13/fa::@3->fa::@4] __b4_from___b13: __b4_from___b3: - // [79] phi (byte) be#111 = (byte) be#35 [phi:fa::@13/fa::@3->fa::@4#0] -- register_copy - // [79] phi (byte) bd#141 = (byte) bd#35 [phi:fa::@13/fa::@3->fa::@4#1] -- register_copy - // [79] phi (byte) bc#43 = (byte) bc#107 [phi:fa::@13/fa::@3->fa::@4#2] -- register_copy + // [79] phi (byte) bd#141 = (byte) bd#35 [phi:fa::@13/fa::@3->fa::@4#0] -- register_copy + // [79] phi (byte) bc#43 = (byte) bc#107 [phi:fa::@13/fa::@3->fa::@4#1] -- register_copy jmp __b4 // fa::@4 __b4: @@ -4013,16 +3310,14 @@ fa: { // [83] call fb // [110] phi from fa::@14 to fb [phi:fa::@14->fb] fb_from___b14: - // [110] phi (byte) be#118 = (byte) be#111 [phi:fa::@14->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#141 [phi:fa::@14->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#176 [phi:fa::@14->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#141 [phi:fa::@14->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#176 [phi:fa::@14->fb#1] -- register_copy jsr fb // [84] phi from fa::@14 fa::@4 to fa::@5 [phi:fa::@14/fa::@4->fa::@5] __b5_from___b14: __b5_from___b4: - // [84] phi (byte) be#112 = (byte) be#35 [phi:fa::@14/fa::@4->fa::@5#0] -- register_copy - // [84] phi (byte) bd#100 = (byte) bd#35 [phi:fa::@14/fa::@4->fa::@5#1] -- register_copy - // [84] phi (byte) bc#44 = (byte) bc#108 [phi:fa::@14/fa::@4->fa::@5#2] -- register_copy + // [84] phi (byte) bd#100 = (byte) bd#35 [phi:fa::@14/fa::@4->fa::@5#0] -- register_copy + // [84] phi (byte) bc#44 = (byte) bc#108 [phi:fa::@14/fa::@4->fa::@5#1] -- register_copy jmp __b5 // fa::@5 __b5: @@ -4041,16 +3336,14 @@ fa: { // [88] call fb // [110] phi from fa::@15 to fb [phi:fa::@15->fb] fb_from___b15: - // [110] phi (byte) be#118 = (byte) be#112 [phi:fa::@15->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#100 [phi:fa::@15->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#177 [phi:fa::@15->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#100 [phi:fa::@15->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#177 [phi:fa::@15->fb#1] -- register_copy jsr fb // [89] phi from fa::@15 fa::@5 to fa::@6 [phi:fa::@15/fa::@5->fa::@6] __b6_from___b15: __b6_from___b5: - // [89] phi (byte) be#113 = (byte) be#35 [phi:fa::@15/fa::@5->fa::@6#0] -- register_copy - // [89] phi (byte) bd#101 = (byte) bd#35 [phi:fa::@15/fa::@5->fa::@6#1] -- register_copy - // [89] phi (byte) bc#45 = (byte) bc#109 [phi:fa::@15/fa::@5->fa::@6#2] -- register_copy + // [89] phi (byte) bd#101 = (byte) bd#35 [phi:fa::@15/fa::@5->fa::@6#0] -- register_copy + // [89] phi (byte) bc#45 = (byte) bc#109 [phi:fa::@15/fa::@5->fa::@6#1] -- register_copy jmp __b6 // fa::@6 __b6: @@ -4069,16 +3362,14 @@ fa: { // [93] call fb // [110] phi from fa::@16 to fb [phi:fa::@16->fb] fb_from___b16: - // [110] phi (byte) be#118 = (byte) be#113 [phi:fa::@16->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#101 [phi:fa::@16->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#178 [phi:fa::@16->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#101 [phi:fa::@16->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#178 [phi:fa::@16->fb#1] -- register_copy jsr fb // [94] phi from fa::@16 fa::@6 to fa::@7 [phi:fa::@16/fa::@6->fa::@7] __b7_from___b16: __b7_from___b6: - // [94] phi (byte) be#114 = (byte) be#35 [phi:fa::@16/fa::@6->fa::@7#0] -- register_copy - // [94] phi (byte) bd#102 = (byte) bd#35 [phi:fa::@16/fa::@6->fa::@7#1] -- register_copy - // [94] phi (byte) bc#46 = (byte) bc#110 [phi:fa::@16/fa::@6->fa::@7#2] -- register_copy + // [94] phi (byte) bd#102 = (byte) bd#35 [phi:fa::@16/fa::@6->fa::@7#0] -- register_copy + // [94] phi (byte) bc#46 = (byte) bc#110 [phi:fa::@16/fa::@6->fa::@7#1] -- register_copy jmp __b7 // fa::@7 __b7: @@ -4097,16 +3388,14 @@ fa: { // [98] call fb // [110] phi from fa::@17 to fb [phi:fa::@17->fb] fb_from___b17: - // [110] phi (byte) be#118 = (byte) be#114 [phi:fa::@17->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#102 [phi:fa::@17->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#179 [phi:fa::@17->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#102 [phi:fa::@17->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#179 [phi:fa::@17->fb#1] -- register_copy jsr fb // [99] phi from fa::@17 fa::@7 to fa::@8 [phi:fa::@17/fa::@7->fa::@8] __b8_from___b17: __b8_from___b7: - // [99] phi (byte) be#115 = (byte) be#35 [phi:fa::@17/fa::@7->fa::@8#0] -- register_copy - // [99] phi (byte) bd#103 = (byte) bd#35 [phi:fa::@17/fa::@7->fa::@8#1] -- register_copy - // [99] phi (byte) bc#47 = (byte) bc#111 [phi:fa::@17/fa::@7->fa::@8#2] -- register_copy + // [99] phi (byte) bd#103 = (byte) bd#35 [phi:fa::@17/fa::@7->fa::@8#0] -- register_copy + // [99] phi (byte) bc#47 = (byte) bc#111 [phi:fa::@17/fa::@7->fa::@8#1] -- register_copy jmp __b8 // fa::@8 __b8: @@ -4125,16 +3414,14 @@ fa: { // [103] call fb // [110] phi from fa::@18 to fb [phi:fa::@18->fb] fb_from___b18: - // [110] phi (byte) be#118 = (byte) be#115 [phi:fa::@18->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#103 [phi:fa::@18->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#180 [phi:fa::@18->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#103 [phi:fa::@18->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#180 [phi:fa::@18->fb#1] -- register_copy jsr fb // [104] phi from fa::@18 fa::@8 to fa::@9 [phi:fa::@18/fa::@8->fa::@9] __b9_from___b18: __b9_from___b8: - // [104] phi (byte) be#116 = (byte) be#35 [phi:fa::@18/fa::@8->fa::@9#0] -- register_copy - // [104] phi (byte) bd#104 = (byte) bd#35 [phi:fa::@18/fa::@8->fa::@9#1] -- register_copy - // [104] phi (byte) bc#83 = (byte) bc#112 [phi:fa::@18/fa::@8->fa::@9#2] -- register_copy + // [104] phi (byte) bd#104 = (byte) bd#35 [phi:fa::@18/fa::@8->fa::@9#0] -- register_copy + // [104] phi (byte) bc#83 = (byte) bc#112 [phi:fa::@18/fa::@8->fa::@9#1] -- register_copy jmp __b9 // fa::@9 __b9: @@ -4150,25 +3437,22 @@ fa: { // [107] call fb // [110] phi from fa::@19 to fb [phi:fa::@19->fb] fb_from___b19: - // [110] phi (byte) be#118 = (byte) be#116 [phi:fa::@19->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#104 [phi:fa::@19->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) 0 [phi:fa::@19->fb#2] -- vbuz1=vbuc1 + // [110] phi (byte) bd#106 = (byte) bd#104 [phi:fa::@19->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) 0 [phi:fa::@19->fb#1] -- vbuz1=vbuc1 lda #0 sta.z bc_1 jsr fb // [108] phi from fa::@19 to fa::@return [phi:fa::@19->fa::@return] __breturn_from___b19: - // [108] phi (byte) be#24 = (byte) be#35 [phi:fa::@19->fa::@return#0] -- register_copy - // [108] phi (byte) bd#24 = (byte) bd#35 [phi:fa::@19->fa::@return#1] -- register_copy - // [108] phi (byte) bc#24 = (byte) 0 [phi:fa::@19->fa::@return#2] -- vbuz1=vbuc1 + // [108] phi (byte) bd#24 = (byte) bd#35 [phi:fa::@19->fa::@return#0] -- register_copy + // [108] phi (byte) bc#24 = (byte) 0 [phi:fa::@19->fa::@return#1] -- vbuz1=vbuc1 lda #0 sta.z bc jmp __breturn // [108] phi from fa::@9 to fa::@return [phi:fa::@9->fa::@return] __breturn_from___b9: - // [108] phi (byte) be#24 = (byte) be#116 [phi:fa::@9->fa::@return#0] -- register_copy - // [108] phi (byte) bd#24 = (byte) bd#104 [phi:fa::@9->fa::@return#1] -- register_copy - // [108] phi (byte) bc#24 = (byte) bc#83 [phi:fa::@9->fa::@return#2] -- register_copy + // [108] phi (byte) bd#24 = (byte) bd#104 [phi:fa::@9->fa::@return#0] -- register_copy + // [108] phi (byte) bc#24 = (byte) bc#83 [phi:fa::@9->fa::@return#1] -- register_copy jmp __breturn // fa::@return __breturn: @@ -4192,14 +3476,12 @@ fb: { // [114] call fc // [161] phi from fb::@10 to fc [phi:fb::@10->fc] fc_from___b10: - // [161] phi (byte) be#129 = (byte) be#118 [phi:fb::@10->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#235 [phi:fb::@10->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#235 [phi:fb::@10->fc#0] -- register_copy jsr fc // [115] phi from fb fb::@10 to fb::@1 [phi:fb/fb::@10->fb::@1] __b1_from_fb: __b1_from___b10: - // [115] phi (byte) be#119 = (byte) be#118 [phi:fb/fb::@10->fb::@1#0] -- register_copy - // [115] phi (byte) bd#107 = (byte) bd#106 [phi:fb/fb::@10->fb::@1#1] -- register_copy + // [115] phi (byte) bd#107 = (byte) bd#106 [phi:fb/fb::@10->fb::@1#0] -- register_copy jmp __b1 // fb::@1 __b1: @@ -4218,14 +3500,12 @@ fb: { // [119] call fc // [161] phi from fb::@11 to fc [phi:fb::@11->fc] fc_from___b11: - // [161] phi (byte) be#129 = (byte) be#119 [phi:fb::@11->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#236 [phi:fb::@11->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#236 [phi:fb::@11->fc#0] -- register_copy jsr fc // [120] phi from fb::@1 fb::@11 to fb::@2 [phi:fb::@1/fb::@11->fb::@2] __b2_from___b1: __b2_from___b11: - // [120] phi (byte) be#120 = (byte) be#119 [phi:fb::@1/fb::@11->fb::@2#0] -- register_copy - // [120] phi (byte) bd#108 = (byte) bd#107 [phi:fb::@1/fb::@11->fb::@2#1] -- register_copy + // [120] phi (byte) bd#108 = (byte) bd#107 [phi:fb::@1/fb::@11->fb::@2#0] -- register_copy jmp __b2 // fb::@2 __b2: @@ -4244,14 +3524,12 @@ fb: { // [124] call fc // [161] phi from fb::@12 to fc [phi:fb::@12->fc] fc_from___b12: - // [161] phi (byte) be#129 = (byte) be#120 [phi:fb::@12->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#237 [phi:fb::@12->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#237 [phi:fb::@12->fc#0] -- register_copy jsr fc // [125] phi from fb::@12 fb::@2 to fb::@3 [phi:fb::@12/fb::@2->fb::@3] __b3_from___b12: __b3_from___b2: - // [125] phi (byte) be#121 = (byte) be#46 [phi:fb::@12/fb::@2->fb::@3#0] -- register_copy - // [125] phi (byte) bd#109 = (byte) bd#148 [phi:fb::@12/fb::@2->fb::@3#1] -- register_copy + // [125] phi (byte) bd#109 = (byte) bd#148 [phi:fb::@12/fb::@2->fb::@3#0] -- register_copy jmp __b3 // fb::@3 __b3: @@ -4270,14 +3548,12 @@ fb: { // [129] call fc // [161] phi from fb::@13 to fc [phi:fb::@13->fc] fc_from___b13: - // [161] phi (byte) be#129 = (byte) be#121 [phi:fb::@13->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#238 [phi:fb::@13->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#238 [phi:fb::@13->fc#0] -- register_copy jsr fc // [130] phi from fb::@13 fb::@3 to fb::@4 [phi:fb::@13/fb::@3->fb::@4] __b4_from___b13: __b4_from___b3: - // [130] phi (byte) be#122 = (byte) be#46 [phi:fb::@13/fb::@3->fb::@4#0] -- register_copy - // [130] phi (byte) bd#110 = (byte) bd#149 [phi:fb::@13/fb::@3->fb::@4#1] -- register_copy + // [130] phi (byte) bd#110 = (byte) bd#149 [phi:fb::@13/fb::@3->fb::@4#0] -- register_copy jmp __b4 // fb::@4 __b4: @@ -4296,14 +3572,12 @@ fb: { // [134] call fc // [161] phi from fb::@14 to fc [phi:fb::@14->fc] fc_from___b14: - // [161] phi (byte) be#129 = (byte) be#122 [phi:fb::@14->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#239 [phi:fb::@14->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#239 [phi:fb::@14->fc#0] -- register_copy jsr fc // [135] phi from fb::@14 fb::@4 to fb::@5 [phi:fb::@14/fb::@4->fb::@5] __b5_from___b14: __b5_from___b4: - // [135] phi (byte) be#123 = (byte) be#46 [phi:fb::@14/fb::@4->fb::@5#0] -- register_copy - // [135] phi (byte) bd#111 = (byte) bd#150 [phi:fb::@14/fb::@4->fb::@5#1] -- register_copy + // [135] phi (byte) bd#111 = (byte) bd#150 [phi:fb::@14/fb::@4->fb::@5#0] -- register_copy jmp __b5 // fb::@5 __b5: @@ -4322,14 +3596,12 @@ fb: { // [139] call fc // [161] phi from fb::@15 to fc [phi:fb::@15->fc] fc_from___b15: - // [161] phi (byte) be#129 = (byte) be#123 [phi:fb::@15->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#240 [phi:fb::@15->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#240 [phi:fb::@15->fc#0] -- register_copy jsr fc // [140] phi from fb::@15 fb::@5 to fb::@6 [phi:fb::@15/fb::@5->fb::@6] __b6_from___b15: __b6_from___b5: - // [140] phi (byte) be#124 = (byte) be#46 [phi:fb::@15/fb::@5->fb::@6#0] -- register_copy - // [140] phi (byte) bd#112 = (byte) bd#151 [phi:fb::@15/fb::@5->fb::@6#1] -- register_copy + // [140] phi (byte) bd#112 = (byte) bd#151 [phi:fb::@15/fb::@5->fb::@6#0] -- register_copy jmp __b6 // fb::@6 __b6: @@ -4348,14 +3620,12 @@ fb: { // [144] call fc // [161] phi from fb::@16 to fc [phi:fb::@16->fc] fc_from___b16: - // [161] phi (byte) be#129 = (byte) be#124 [phi:fb::@16->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#241 [phi:fb::@16->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#241 [phi:fb::@16->fc#0] -- register_copy jsr fc // [145] phi from fb::@16 fb::@6 to fb::@7 [phi:fb::@16/fb::@6->fb::@7] __b7_from___b16: __b7_from___b6: - // [145] phi (byte) be#125 = (byte) be#46 [phi:fb::@16/fb::@6->fb::@7#0] -- register_copy - // [145] phi (byte) bd#113 = (byte) bd#152 [phi:fb::@16/fb::@6->fb::@7#1] -- register_copy + // [145] phi (byte) bd#113 = (byte) bd#152 [phi:fb::@16/fb::@6->fb::@7#0] -- register_copy jmp __b7 // fb::@7 __b7: @@ -4374,14 +3644,12 @@ fb: { // [149] call fc // [161] phi from fb::@17 to fc [phi:fb::@17->fc] fc_from___b17: - // [161] phi (byte) be#129 = (byte) be#125 [phi:fb::@17->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#242 [phi:fb::@17->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#242 [phi:fb::@17->fc#0] -- register_copy jsr fc // [150] phi from fb::@17 fb::@7 to fb::@8 [phi:fb::@17/fb::@7->fb::@8] __b8_from___b17: __b8_from___b7: - // [150] phi (byte) be#126 = (byte) be#46 [phi:fb::@17/fb::@7->fb::@8#0] -- register_copy - // [150] phi (byte) bd#114 = (byte) bd#153 [phi:fb::@17/fb::@7->fb::@8#1] -- register_copy + // [150] phi (byte) bd#114 = (byte) bd#153 [phi:fb::@17/fb::@7->fb::@8#0] -- register_copy jmp __b8 // fb::@8 __b8: @@ -4400,14 +3668,12 @@ fb: { // [154] call fc // [161] phi from fb::@18 to fc [phi:fb::@18->fc] fc_from___b18: - // [161] phi (byte) be#129 = (byte) be#126 [phi:fb::@18->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#243 [phi:fb::@18->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#243 [phi:fb::@18->fc#0] -- register_copy jsr fc // [155] phi from fb::@18 fb::@8 to fb::@9 [phi:fb::@18/fb::@8->fb::@9] __b9_from___b18: __b9_from___b8: - // [155] phi (byte) be#127 = (byte) be#46 [phi:fb::@18/fb::@8->fb::@9#0] -- register_copy - // [155] phi (byte) bd#116 = (byte) bd#154 [phi:fb::@18/fb::@8->fb::@9#1] -- register_copy + // [155] phi (byte) bd#116 = (byte) bd#154 [phi:fb::@18/fb::@8->fb::@9#0] -- register_copy jmp __b9 // fb::@9 __b9: @@ -4423,22 +3689,19 @@ fb: { // [158] call fc // [161] phi from fb::@19 to fc [phi:fb::@19->fc] fc_from___b19: - // [161] phi (byte) be#129 = (byte) be#127 [phi:fb::@19->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) 0 [phi:fb::@19->fc#1] -- vbuz1=vbuc1 + // [161] phi (byte) bd#117 = (byte) 0 [phi:fb::@19->fc#0] -- vbuz1=vbuc1 lda #0 sta.z bd_1 jsr fc // [159] phi from fb::@19 to fb::@return [phi:fb::@19->fb::@return] __breturn_from___b19: - // [159] phi (byte) be#35 = (byte) be#46 [phi:fb::@19->fb::@return#0] -- register_copy - // [159] phi (byte) bd#35 = (byte) 0 [phi:fb::@19->fb::@return#1] -- vbuz1=vbuc1 + // [159] phi (byte) bd#35 = (byte) 0 [phi:fb::@19->fb::@return#0] -- vbuz1=vbuc1 lda #0 sta.z bd jmp __breturn // [159] phi from fb::@9 to fb::@return [phi:fb::@9->fb::@return] __breturn_from___b9: - // [159] phi (byte) be#35 = (byte) be#127 [phi:fb::@9->fb::@return#0] -- register_copy - // [159] phi (byte) bd#35 = (byte) bd#116 [phi:fb::@9->fb::@return#1] -- register_copy + // [159] phi (byte) bd#35 = (byte) bd#116 [phi:fb::@9->fb::@return#0] -- register_copy jmp __breturn // fb::@return __breturn: @@ -4450,169 +3713,124 @@ fc: { // [162] if((byte) bd#117!=(byte) 0) goto fc::@1 -- vbuz1_neq_0_then_la1 lda.z bd_1 cmp #0 - bne __b1_from_fc + bne __b1 + // [163] phi from fc to fc::@10 [phi:fc->fc::@10] + __b10_from_fc: jmp __b10 // fc::@10 __b10: - // [163] (byte) be#36 ← ++ (byte) be#129 -- vbuz1=_inc_vbuz1 - inc.z be - // [164] phi from fc fc::@10 to fc::@1 [phi:fc/fc::@10->fc::@1] - __b1_from_fc: - __b1_from___b10: - // [164] phi (byte) be#130 = (byte) be#129 [phi:fc/fc::@10->fc::@1#0] -- register_copy jmp __b1 // fc::@1 __b1: - // [165] if((byte) bd#117!=(byte) 1) goto fc::@2 -- vbuz1_neq_vbuc1_then_la1 + // [164] if((byte) bd#117!=(byte) 1) goto fc::@2 -- vbuz1_neq_vbuc1_then_la1 lda #1 cmp.z bd_1 - bne __b2_from___b1 + bne __b2 + // [165] phi from fc::@1 to fc::@11 [phi:fc::@1->fc::@11] + __b11_from___b1: jmp __b11 // fc::@11 __b11: - // [166] (byte) be#37 ← ++ (byte) be#130 -- vbuz1=_inc_vbuz1 - inc.z be - // [167] phi from fc::@1 fc::@11 to fc::@2 [phi:fc::@1/fc::@11->fc::@2] - __b2_from___b1: - __b2_from___b11: - // [167] phi (byte) be#131 = (byte) be#130 [phi:fc::@1/fc::@11->fc::@2#0] -- register_copy jmp __b2 // fc::@2 __b2: - // [168] if((byte) bd#117!=(byte) 2) goto fc::@3 -- vbuz1_neq_vbuc1_then_la1 + // [166] if((byte) bd#117!=(byte) 2) goto fc::@3 -- vbuz1_neq_vbuc1_then_la1 lda #2 cmp.z bd_1 - bne __b3_from___b2 + bne __b3 + // [167] phi from fc::@2 to fc::@12 [phi:fc::@2->fc::@12] + __b12_from___b2: jmp __b12 // fc::@12 __b12: - // [169] (byte) be#38 ← ++ (byte) be#131 -- vbuz1=_inc_vbuz1 - inc.z be - // [170] phi from fc::@12 fc::@2 to fc::@3 [phi:fc::@12/fc::@2->fc::@3] - __b3_from___b12: - __b3_from___b2: - // [170] phi (byte) be#132 = (byte) be#38 [phi:fc::@12/fc::@2->fc::@3#0] -- register_copy jmp __b3 // fc::@3 __b3: - // [171] if((byte) bd#117!=(byte) 3) goto fc::@4 -- vbuz1_neq_vbuc1_then_la1 + // [168] if((byte) bd#117!=(byte) 3) goto fc::@4 -- vbuz1_neq_vbuc1_then_la1 lda #3 cmp.z bd_1 - bne __b4_from___b3 + bne __b4 + // [169] phi from fc::@3 to fc::@13 [phi:fc::@3->fc::@13] + __b13_from___b3: jmp __b13 // fc::@13 __b13: - // [172] (byte) be#39 ← ++ (byte) be#132 -- vbuz1=_inc_vbuz1 - inc.z be - // [173] phi from fc::@13 fc::@3 to fc::@4 [phi:fc::@13/fc::@3->fc::@4] - __b4_from___b13: - __b4_from___b3: - // [173] phi (byte) be#133 = (byte) be#39 [phi:fc::@13/fc::@3->fc::@4#0] -- register_copy jmp __b4 // fc::@4 __b4: - // [174] if((byte) bd#117!=(byte) 4) goto fc::@5 -- vbuz1_neq_vbuc1_then_la1 + // [170] if((byte) bd#117!=(byte) 4) goto fc::@5 -- vbuz1_neq_vbuc1_then_la1 lda #4 cmp.z bd_1 - bne __b5_from___b4 + bne __b5 + // [171] phi from fc::@4 to fc::@14 [phi:fc::@4->fc::@14] + __b14_from___b4: jmp __b14 // fc::@14 __b14: - // [175] (byte) be#40 ← ++ (byte) be#133 -- vbuz1=_inc_vbuz1 - inc.z be - // [176] phi from fc::@14 fc::@4 to fc::@5 [phi:fc::@14/fc::@4->fc::@5] - __b5_from___b14: - __b5_from___b4: - // [176] phi (byte) be#134 = (byte) be#40 [phi:fc::@14/fc::@4->fc::@5#0] -- register_copy jmp __b5 // fc::@5 __b5: - // [177] if((byte) bd#117!=(byte) 5) goto fc::@6 -- vbuz1_neq_vbuc1_then_la1 + // [172] if((byte) bd#117!=(byte) 5) goto fc::@6 -- vbuz1_neq_vbuc1_then_la1 lda #5 cmp.z bd_1 - bne __b6_from___b5 + bne __b6 + // [173] phi from fc::@5 to fc::@15 [phi:fc::@5->fc::@15] + __b15_from___b5: jmp __b15 // fc::@15 __b15: - // [178] (byte) be#41 ← ++ (byte) be#134 -- vbuz1=_inc_vbuz1 - inc.z be - // [179] phi from fc::@15 fc::@5 to fc::@6 [phi:fc::@15/fc::@5->fc::@6] - __b6_from___b15: - __b6_from___b5: - // [179] phi (byte) be#135 = (byte) be#41 [phi:fc::@15/fc::@5->fc::@6#0] -- register_copy jmp __b6 // fc::@6 __b6: - // [180] if((byte) bd#117!=(byte) 6) goto fc::@7 -- vbuz1_neq_vbuc1_then_la1 + // [174] if((byte) bd#117!=(byte) 6) goto fc::@7 -- vbuz1_neq_vbuc1_then_la1 lda #6 cmp.z bd_1 - bne __b7_from___b6 + bne __b7 + // [175] phi from fc::@6 to fc::@16 [phi:fc::@6->fc::@16] + __b16_from___b6: jmp __b16 // fc::@16 __b16: - // [181] (byte) be#42 ← ++ (byte) be#135 -- vbuz1=_inc_vbuz1 - inc.z be - // [182] phi from fc::@16 fc::@6 to fc::@7 [phi:fc::@16/fc::@6->fc::@7] - __b7_from___b16: - __b7_from___b6: - // [182] phi (byte) be#136 = (byte) be#42 [phi:fc::@16/fc::@6->fc::@7#0] -- register_copy jmp __b7 // fc::@7 __b7: - // [183] if((byte) bd#117!=(byte) 7) goto fc::@8 -- vbuz1_neq_vbuc1_then_la1 + // [176] if((byte) bd#117!=(byte) 7) goto fc::@8 -- vbuz1_neq_vbuc1_then_la1 lda #7 cmp.z bd_1 - bne __b8_from___b7 + bne __b8 + // [177] phi from fc::@7 to fc::@17 [phi:fc::@7->fc::@17] + __b17_from___b7: jmp __b17 // fc::@17 __b17: - // [184] (byte) be#43 ← ++ (byte) be#136 -- vbuz1=_inc_vbuz1 - inc.z be - // [185] phi from fc::@17 fc::@7 to fc::@8 [phi:fc::@17/fc::@7->fc::@8] - __b8_from___b17: - __b8_from___b7: - // [185] phi (byte) be#137 = (byte) be#43 [phi:fc::@17/fc::@7->fc::@8#0] -- register_copy jmp __b8 // fc::@8 __b8: - // [186] if((byte) bd#117!=(byte) 8) goto fc::@9 -- vbuz1_neq_vbuc1_then_la1 + // [178] if((byte) bd#117!=(byte) 8) goto fc::@9 -- vbuz1_neq_vbuc1_then_la1 lda #8 cmp.z bd_1 - bne __b9_from___b8 + bne __b9 + // [179] phi from fc::@8 to fc::@18 [phi:fc::@8->fc::@18] + __b18_from___b8: jmp __b18 // fc::@18 __b18: - // [187] (byte) be#44 ← ++ (byte) be#137 -- vbuz1=_inc_vbuz1 - inc.z be - // [188] phi from fc::@18 fc::@8 to fc::@9 [phi:fc::@18/fc::@8->fc::@9] - __b9_from___b18: - __b9_from___b8: - // [188] phi (byte) be#138 = (byte) be#44 [phi:fc::@18/fc::@8->fc::@9#0] -- register_copy jmp __b9 // fc::@9 __b9: - // [189] if((byte) bd#117!=(byte) 9) goto fc::@19 -- vbuz1_neq_vbuc1_then_la1 + // [180] if((byte) bd#117!=(byte) 9) goto fc::@return -- vbuz1_neq_vbuc1_then_la1 lda #9 cmp.z bd_1 - bne __b19_from___b9 - // [191] phi from fc::@9 to fc::@return [phi:fc::@9->fc::@return] - __breturn_from___b9: - // [191] phi (byte) be#46 = (byte) 0 [phi:fc::@9->fc::@return#0] -- vbuz1=vbuc1 - lda #0 - sta.z be - jmp __breturn - // [190] phi from fc::@9 to fc::@19 [phi:fc::@9->fc::@19] + bne __breturn + // [181] phi from fc::@9 to fc::@19 [phi:fc::@9->fc::@19] __b19_from___b9: jmp __b19 // fc::@19 __b19: - // [191] phi from fc::@19 to fc::@return [phi:fc::@19->fc::@return] - __breturn_from___b19: - // [191] phi (byte) be#46 = (byte) be#138 [phi:fc::@19->fc::@return#0] -- register_copy jmp __breturn // fc::@return __breturn: - // [192] return + // [182] return rts } // File Data @@ -4625,37 +3843,31 @@ Potential registers zp[1]:5 [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#10 Potential registers zp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] : zp[1]:6 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:7 [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] : zp[1]:7 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:8 [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] : zp[1]:8 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:9 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] : zp[1]:9 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [] 162.58: zp[1]:9 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] 118.92: zp[1]:7 [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] 92.25: zp[1]:5 [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#109 bc#44 bc#108 bc#43 bc#107 bc#42 bc#41 bc#40 bc#39 bc#71 bc#103 bc#102 bc#101 bc#100 bc#66 bc#65 bc#64 bc#63 bc#2 bc#13 bc#24 bc#104 bc#105 bc#106 ] 61.25: zp[1]:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] 37.36: zp[1]:8 [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] 36.83: zp[1]:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] 36.83: zp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] 22.79: zp[1]:2 [ ba#17 ba#1 ] +Uplift Scope [] 118.92: zp[1]:7 [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] 92.25: zp[1]:5 [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#109 bc#44 bc#108 bc#43 bc#107 bc#42 bc#41 bc#40 bc#39 bc#71 bc#103 bc#102 bc#101 bc#100 bc#66 bc#65 bc#64 bc#63 bc#2 bc#13 bc#24 bc#104 bc#105 bc#106 ] 61.25: zp[1]:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] 38: zp[1]:8 [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] 36.83: zp[1]:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] 36.83: zp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] 22.79: zp[1]:2 [ ba#17 ba#1 ] Uplift Scope [main] Uplift Scope [f0] Uplift Scope [fa] Uplift Scope [fb] Uplift Scope [fc] -Uplifting [] best 1431 combination zp[1]:9 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] reg byte y [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] reg byte x [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#109 bc#44 bc#108 bc#43 bc#107 bc#42 bc#41 bc#40 bc#39 bc#71 bc#103 bc#102 bc#101 bc#100 bc#66 bc#65 bc#64 bc#63 bc#2 bc#13 bc#24 bc#104 bc#105 bc#106 ] zp[1]:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] zp[1]:8 [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] zp[1]:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] zp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] zp[1]:2 [ ba#17 ba#1 ] -Limited combination testing to 100 combinations of 65536 possible. -Uplifting [main] best 1431 combination -Uplifting [f0] best 1431 combination -Uplifting [fa] best 1431 combination -Uplifting [fb] best 1431 combination -Uplifting [fc] best 1431 combination -Attempting to uplift remaining variables inzp[1]:9 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] -Uplifting [] best 1431 combination zp[1]:9 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] +Uplifting [] best 1556 combination reg byte y [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] reg byte x [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#109 bc#44 bc#108 bc#43 bc#107 bc#42 bc#41 bc#40 bc#39 bc#71 bc#103 bc#102 bc#101 bc#100 bc#66 bc#65 bc#64 bc#63 bc#2 bc#13 bc#24 bc#104 bc#105 bc#106 ] zp[1]:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] reg byte a [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] zp[1]:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] zp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] zp[1]:2 [ ba#17 ba#1 ] +Limited combination testing to 100 combinations of 16384 possible. +Uplifting [main] best 1556 combination +Uplifting [f0] best 1556 combination +Uplifting [fa] best 1556 combination +Uplifting [fb] best 1556 combination +Uplifting [fc] best 1556 combination Attempting to uplift remaining variables inzp[1]:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] -Uplifting [] best 1431 combination zp[1]:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] -Attempting to uplift remaining variables inzp[1]:8 [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] -Uplifting [] best 1389 combination reg byte a [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] +Uplifting [] best 1556 combination zp[1]:3 [ bb#50 bb#11 bb#25 bb#10 bb#24 bb#68 bb#23 bb#67 bb#22 bb#66 bb#21 bb#6 bb#20 bb#19 bb#18 bb#16 bb#13 bb#3 bb#4 bb#5 ] Attempting to uplift remaining variables inzp[1]:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] -Uplifting [] best 1389 combination zp[1]:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] +Uplifting [] best 1556 combination zp[1]:4 [ bb#27 bb#100 bb#101 bb#102 bb#103 bb#104 bb#105 bb#106 bb#107 bb#108 ] Attempting to uplift remaining variables inzp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] -Uplifting [] best 1389 combination zp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] +Uplifting [] best 1556 combination zp[1]:6 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] Attempting to uplift remaining variables inzp[1]:2 [ ba#17 ba#1 ] -Uplifting [] best 1389 combination zp[1]:2 [ ba#17 ba#1 ] +Uplifting [] best 1556 combination zp[1]:2 [ ba#17 ba#1 ] Allocated (was zp[1]:6) zp[1]:5 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] -Allocated (was zp[1]:9) zp[1]:6 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -4665,7 +3877,6 @@ ASSEMBLER BEFORE OPTIMIZATION .pc = $80d "Program" // Global Constants & labels .label ba = 2 - .label be = 6 .label bb = 3 .label bb_1 = 4 .label bc = 5 @@ -4692,14 +3903,11 @@ main: { // [5] phi (byte) ba#17 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z ba - // [5] phi (byte) be#2 = (byte) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 - lda #0 - sta.z be - // [5] phi (byte) bd#2 = (byte) 0 [phi:main->main::@1#2] -- vbuyy=vbuc1 + // [5] phi (byte) bd#2 = (byte) 0 [phi:main->main::@1#1] -- vbuyy=vbuc1 ldy #0 - // [5] phi (byte) bc#2 = (byte) 0 [phi:main->main::@1#3] -- vbuxx=vbuc1 + // [5] phi (byte) bc#2 = (byte) 0 [phi:main->main::@1#2] -- vbuxx=vbuc1 ldx #0 - // [5] phi (byte) bb#16 = (byte) 0 [phi:main->main::@1#4] -- vbuz1=vbuc1 + // [5] phi (byte) bb#16 = (byte) 0 [phi:main->main::@1#3] -- vbuz1=vbuc1 lda #0 sta.z bb jmp __b1 @@ -4720,10 +3928,9 @@ main: { // [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1] __b1_from___b3: // [5] phi (byte) ba#17 = (byte) ba#1 [phi:main::@3->main::@1#0] -- register_copy - // [5] phi (byte) be#2 = (byte) be#13 [phi:main::@3->main::@1#1] -- register_copy - // [5] phi (byte) bd#2 = (byte) bd#13 [phi:main::@3->main::@1#2] -- register_copy - // [5] phi (byte) bc#2 = (byte) bc#13 [phi:main::@3->main::@1#3] -- register_copy - // [5] phi (byte) bb#16 = (byte) bb#13 [phi:main::@3->main::@1#4] -- register_copy + // [5] phi (byte) bd#2 = (byte) bd#13 [phi:main::@3->main::@1#1] -- register_copy + // [5] phi (byte) bc#2 = (byte) bc#13 [phi:main::@3->main::@1#2] -- register_copy + // [5] phi (byte) bb#16 = (byte) bb#13 [phi:main::@3->main::@1#3] -- register_copy jmp __b1 } // f0 @@ -4743,18 +3950,16 @@ f0: { // [12] call fa // [59] phi from f0::@10 to fa [phi:f0::@10->fa] fa_from___b10: - // [59] phi (byte) be#107 = (byte) be#2 [phi:f0::@10->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#2 [phi:f0::@10->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#2 [phi:f0::@10->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#100 [phi:f0::@10->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#2 [phi:f0::@10->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#2 [phi:f0::@10->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#100 [phi:f0::@10->fa#2] -- register_copy jsr fa // [13] phi from f0 f0::@10 to f0::@1 [phi:f0/f0::@10->f0::@1] __b1_from_f0: __b1_from___b10: - // [13] phi (byte) be#142 = (byte) be#2 [phi:f0/f0::@10->f0::@1#0] -- register_copy - // [13] phi (byte) bd#129 = (byte) bd#2 [phi:f0/f0::@10->f0::@1#1] -- register_copy - // [13] phi (byte) bc#63 = (byte) bc#2 [phi:f0/f0::@10->f0::@1#2] -- register_copy - // [13] phi (byte) bb#18 = (byte) bb#16 [phi:f0/f0::@10->f0::@1#3] -- register_copy + // [13] phi (byte) bd#129 = (byte) bd#2 [phi:f0/f0::@10->f0::@1#0] -- register_copy + // [13] phi (byte) bc#63 = (byte) bc#2 [phi:f0/f0::@10->f0::@1#1] -- register_copy + // [13] phi (byte) bb#18 = (byte) bb#16 [phi:f0/f0::@10->f0::@1#2] -- register_copy jmp __b1 // f0::@1 __b1: @@ -4773,18 +3978,16 @@ f0: { // [17] call fa // [59] phi from f0::@11 to fa [phi:f0::@11->fa] fa_from___b11: - // [59] phi (byte) be#107 = (byte) be#142 [phi:f0::@11->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#129 [phi:f0::@11->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#63 [phi:f0::@11->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#101 [phi:f0::@11->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#129 [phi:f0::@11->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#63 [phi:f0::@11->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#101 [phi:f0::@11->fa#2] -- register_copy jsr fa // [18] phi from f0::@1 f0::@11 to f0::@2 [phi:f0::@1/f0::@11->f0::@2] __b2_from___b1: __b2_from___b11: - // [18] phi (byte) be#143 = (byte) be#142 [phi:f0::@1/f0::@11->f0::@2#0] -- register_copy - // [18] phi (byte) bd#130 = (byte) bd#129 [phi:f0::@1/f0::@11->f0::@2#1] -- register_copy - // [18] phi (byte) bc#64 = (byte) bc#63 [phi:f0::@1/f0::@11->f0::@2#2] -- register_copy - // [18] phi (byte) bb#19 = (byte) bb#18 [phi:f0::@1/f0::@11->f0::@2#3] -- register_copy + // [18] phi (byte) bd#130 = (byte) bd#129 [phi:f0::@1/f0::@11->f0::@2#0] -- register_copy + // [18] phi (byte) bc#64 = (byte) bc#63 [phi:f0::@1/f0::@11->f0::@2#1] -- register_copy + // [18] phi (byte) bb#19 = (byte) bb#18 [phi:f0::@1/f0::@11->f0::@2#2] -- register_copy jmp __b2 // f0::@2 __b2: @@ -4803,18 +4006,16 @@ f0: { // [22] call fa // [59] phi from f0::@12 to fa [phi:f0::@12->fa] fa_from___b12: - // [59] phi (byte) be#107 = (byte) be#143 [phi:f0::@12->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#130 [phi:f0::@12->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#64 [phi:f0::@12->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#102 [phi:f0::@12->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#130 [phi:f0::@12->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#64 [phi:f0::@12->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#102 [phi:f0::@12->fa#2] -- register_copy jsr fa // [23] phi from f0::@12 f0::@2 to f0::@3 [phi:f0::@12/f0::@2->f0::@3] __b3_from___b12: __b3_from___b2: - // [23] phi (byte) be#144 = (byte) be#24 [phi:f0::@12/f0::@2->f0::@3#0] -- register_copy - // [23] phi (byte) bd#131 = (byte) bd#24 [phi:f0::@12/f0::@2->f0::@3#1] -- register_copy - // [23] phi (byte) bc#65 = (byte) bc#24 [phi:f0::@12/f0::@2->f0::@3#2] -- register_copy - // [23] phi (byte) bb#20 = (byte) bb#5 [phi:f0::@12/f0::@2->f0::@3#3] -- register_copy + // [23] phi (byte) bd#131 = (byte) bd#24 [phi:f0::@12/f0::@2->f0::@3#0] -- register_copy + // [23] phi (byte) bc#65 = (byte) bc#24 [phi:f0::@12/f0::@2->f0::@3#1] -- register_copy + // [23] phi (byte) bb#20 = (byte) bb#5 [phi:f0::@12/f0::@2->f0::@3#2] -- register_copy jmp __b3 // f0::@3 __b3: @@ -4833,18 +4034,16 @@ f0: { // [27] call fa // [59] phi from f0::@13 to fa [phi:f0::@13->fa] fa_from___b13: - // [59] phi (byte) be#107 = (byte) be#144 [phi:f0::@13->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#131 [phi:f0::@13->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#65 [phi:f0::@13->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#103 [phi:f0::@13->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#131 [phi:f0::@13->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#65 [phi:f0::@13->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#103 [phi:f0::@13->fa#2] -- register_copy jsr fa // [28] phi from f0::@13 f0::@3 to f0::@4 [phi:f0::@13/f0::@3->f0::@4] __b4_from___b13: __b4_from___b3: - // [28] phi (byte) be#100 = (byte) be#24 [phi:f0::@13/f0::@3->f0::@4#0] -- register_copy - // [28] phi (byte) bd#132 = (byte) bd#24 [phi:f0::@13/f0::@3->f0::@4#1] -- register_copy - // [28] phi (byte) bc#66 = (byte) bc#24 [phi:f0::@13/f0::@3->f0::@4#2] -- register_copy - // [28] phi (byte) bb#21 = (byte) bb#6 [phi:f0::@13/f0::@3->f0::@4#3] -- register_copy + // [28] phi (byte) bd#132 = (byte) bd#24 [phi:f0::@13/f0::@3->f0::@4#0] -- register_copy + // [28] phi (byte) bc#66 = (byte) bc#24 [phi:f0::@13/f0::@3->f0::@4#1] -- register_copy + // [28] phi (byte) bb#21 = (byte) bb#6 [phi:f0::@13/f0::@3->f0::@4#2] -- register_copy jmp __b4 // f0::@4 __b4: @@ -4863,18 +4062,16 @@ f0: { // [32] call fa // [59] phi from f0::@14 to fa [phi:f0::@14->fa] fa_from___b14: - // [59] phi (byte) be#107 = (byte) be#100 [phi:f0::@14->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#132 [phi:f0::@14->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#66 [phi:f0::@14->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#104 [phi:f0::@14->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#132 [phi:f0::@14->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#66 [phi:f0::@14->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#104 [phi:f0::@14->fa#2] -- register_copy jsr fa // [33] phi from f0::@14 f0::@4 to f0::@5 [phi:f0::@14/f0::@4->f0::@5] __b5_from___b14: __b5_from___b4: - // [33] phi (byte) be#101 = (byte) be#24 [phi:f0::@14/f0::@4->f0::@5#0] -- register_copy - // [33] phi (byte) bd#133 = (byte) bd#24 [phi:f0::@14/f0::@4->f0::@5#1] -- register_copy - // [33] phi (byte) bc#100 = (byte) bc#24 [phi:f0::@14/f0::@4->f0::@5#2] -- register_copy - // [33] phi (byte) bb#22 = (byte) bb#66 [phi:f0::@14/f0::@4->f0::@5#3] -- register_copy + // [33] phi (byte) bd#133 = (byte) bd#24 [phi:f0::@14/f0::@4->f0::@5#0] -- register_copy + // [33] phi (byte) bc#100 = (byte) bc#24 [phi:f0::@14/f0::@4->f0::@5#1] -- register_copy + // [33] phi (byte) bb#22 = (byte) bb#66 [phi:f0::@14/f0::@4->f0::@5#2] -- register_copy jmp __b5 // f0::@5 __b5: @@ -4893,18 +4090,16 @@ f0: { // [37] call fa // [59] phi from f0::@15 to fa [phi:f0::@15->fa] fa_from___b15: - // [59] phi (byte) be#107 = (byte) be#101 [phi:f0::@15->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#133 [phi:f0::@15->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#100 [phi:f0::@15->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#105 [phi:f0::@15->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#133 [phi:f0::@15->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#100 [phi:f0::@15->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#105 [phi:f0::@15->fa#2] -- register_copy jsr fa // [38] phi from f0::@15 f0::@5 to f0::@6 [phi:f0::@15/f0::@5->f0::@6] __b6_from___b15: __b6_from___b5: - // [38] phi (byte) be#102 = (byte) be#24 [phi:f0::@15/f0::@5->f0::@6#0] -- register_copy - // [38] phi (byte) bd#134 = (byte) bd#24 [phi:f0::@15/f0::@5->f0::@6#1] -- register_copy - // [38] phi (byte) bc#101 = (byte) bc#24 [phi:f0::@15/f0::@5->f0::@6#2] -- register_copy - // [38] phi (byte) bb#23 = (byte) bb#67 [phi:f0::@15/f0::@5->f0::@6#3] -- register_copy + // [38] phi (byte) bd#134 = (byte) bd#24 [phi:f0::@15/f0::@5->f0::@6#0] -- register_copy + // [38] phi (byte) bc#101 = (byte) bc#24 [phi:f0::@15/f0::@5->f0::@6#1] -- register_copy + // [38] phi (byte) bb#23 = (byte) bb#67 [phi:f0::@15/f0::@5->f0::@6#2] -- register_copy jmp __b6 // f0::@6 __b6: @@ -4923,18 +4118,16 @@ f0: { // [42] call fa // [59] phi from f0::@16 to fa [phi:f0::@16->fa] fa_from___b16: - // [59] phi (byte) be#107 = (byte) be#102 [phi:f0::@16->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#134 [phi:f0::@16->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#101 [phi:f0::@16->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#106 [phi:f0::@16->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#134 [phi:f0::@16->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#101 [phi:f0::@16->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#106 [phi:f0::@16->fa#2] -- register_copy jsr fa // [43] phi from f0::@16 f0::@6 to f0::@7 [phi:f0::@16/f0::@6->f0::@7] __b7_from___b16: __b7_from___b6: - // [43] phi (byte) be#103 = (byte) be#24 [phi:f0::@16/f0::@6->f0::@7#0] -- register_copy - // [43] phi (byte) bd#135 = (byte) bd#24 [phi:f0::@16/f0::@6->f0::@7#1] -- register_copy - // [43] phi (byte) bc#102 = (byte) bc#24 [phi:f0::@16/f0::@6->f0::@7#2] -- register_copy - // [43] phi (byte) bb#24 = (byte) bb#68 [phi:f0::@16/f0::@6->f0::@7#3] -- register_copy + // [43] phi (byte) bd#135 = (byte) bd#24 [phi:f0::@16/f0::@6->f0::@7#0] -- register_copy + // [43] phi (byte) bc#102 = (byte) bc#24 [phi:f0::@16/f0::@6->f0::@7#1] -- register_copy + // [43] phi (byte) bb#24 = (byte) bb#68 [phi:f0::@16/f0::@6->f0::@7#2] -- register_copy jmp __b7 // f0::@7 __b7: @@ -4953,18 +4146,16 @@ f0: { // [47] call fa // [59] phi from f0::@17 to fa [phi:f0::@17->fa] fa_from___b17: - // [59] phi (byte) be#107 = (byte) be#103 [phi:f0::@17->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#135 [phi:f0::@17->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#102 [phi:f0::@17->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#107 [phi:f0::@17->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#135 [phi:f0::@17->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#102 [phi:f0::@17->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#107 [phi:f0::@17->fa#2] -- register_copy jsr fa // [48] phi from f0::@17 f0::@7 to f0::@8 [phi:f0::@17/f0::@7->f0::@8] __b8_from___b17: __b8_from___b7: - // [48] phi (byte) be#104 = (byte) be#24 [phi:f0::@17/f0::@7->f0::@8#0] -- register_copy - // [48] phi (byte) bd#136 = (byte) bd#24 [phi:f0::@17/f0::@7->f0::@8#1] -- register_copy - // [48] phi (byte) bc#103 = (byte) bc#24 [phi:f0::@17/f0::@7->f0::@8#2] -- register_copy - // [48] phi (byte) bb#25 = (byte) bb#10 [phi:f0::@17/f0::@7->f0::@8#3] -- register_copy + // [48] phi (byte) bd#136 = (byte) bd#24 [phi:f0::@17/f0::@7->f0::@8#0] -- register_copy + // [48] phi (byte) bc#103 = (byte) bc#24 [phi:f0::@17/f0::@7->f0::@8#1] -- register_copy + // [48] phi (byte) bb#25 = (byte) bb#10 [phi:f0::@17/f0::@7->f0::@8#2] -- register_copy jmp __b8 // f0::@8 __b8: @@ -4983,18 +4174,16 @@ f0: { // [52] call fa // [59] phi from f0::@18 to fa [phi:f0::@18->fa] fa_from___b18: - // [59] phi (byte) be#107 = (byte) be#104 [phi:f0::@18->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#136 [phi:f0::@18->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#103 [phi:f0::@18->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#108 [phi:f0::@18->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#136 [phi:f0::@18->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#103 [phi:f0::@18->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#108 [phi:f0::@18->fa#2] -- register_copy jsr fa // [53] phi from f0::@18 f0::@8 to f0::@9 [phi:f0::@18/f0::@8->f0::@9] __b9_from___b18: __b9_from___b8: - // [53] phi (byte) be#105 = (byte) be#24 [phi:f0::@18/f0::@8->f0::@9#0] -- register_copy - // [53] phi (byte) bd#93 = (byte) bd#24 [phi:f0::@18/f0::@8->f0::@9#1] -- register_copy - // [53] phi (byte) bc#71 = (byte) bc#24 [phi:f0::@18/f0::@8->f0::@9#2] -- register_copy - // [53] phi (byte) bb#50 = (byte) bb#11 [phi:f0::@18/f0::@8->f0::@9#3] -- register_copy + // [53] phi (byte) bd#93 = (byte) bd#24 [phi:f0::@18/f0::@8->f0::@9#0] -- register_copy + // [53] phi (byte) bc#71 = (byte) bc#24 [phi:f0::@18/f0::@8->f0::@9#1] -- register_copy + // [53] phi (byte) bb#50 = (byte) bb#11 [phi:f0::@18/f0::@8->f0::@9#2] -- register_copy jmp __b9 // f0::@9 __b9: @@ -5010,28 +4199,25 @@ f0: { // [56] call fa // [59] phi from f0::@19 to fa [phi:f0::@19->fa] fa_from___b19: - // [59] phi (byte) be#107 = (byte) be#105 [phi:f0::@19->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#93 [phi:f0::@19->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#71 [phi:f0::@19->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) 0 [phi:f0::@19->fa#3] -- vbuz1=vbuc1 + // [59] phi (byte) bd#137 = (byte) bd#93 [phi:f0::@19->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#71 [phi:f0::@19->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) 0 [phi:f0::@19->fa#2] -- vbuz1=vbuc1 lda #0 sta.z bb_1 jsr fa // [57] phi from f0::@19 to f0::@return [phi:f0::@19->f0::@return] __breturn_from___b19: - // [57] phi (byte) be#13 = (byte) be#24 [phi:f0::@19->f0::@return#0] -- register_copy - // [57] phi (byte) bd#13 = (byte) bd#24 [phi:f0::@19->f0::@return#1] -- register_copy - // [57] phi (byte) bc#13 = (byte) bc#24 [phi:f0::@19->f0::@return#2] -- register_copy - // [57] phi (byte) bb#13 = (byte) 0 [phi:f0::@19->f0::@return#3] -- vbuz1=vbuc1 + // [57] phi (byte) bd#13 = (byte) bd#24 [phi:f0::@19->f0::@return#0] -- register_copy + // [57] phi (byte) bc#13 = (byte) bc#24 [phi:f0::@19->f0::@return#1] -- register_copy + // [57] phi (byte) bb#13 = (byte) 0 [phi:f0::@19->f0::@return#2] -- vbuz1=vbuc1 lda #0 sta.z bb jmp __breturn // [57] phi from f0::@9 to f0::@return [phi:f0::@9->f0::@return] __breturn_from___b9: - // [57] phi (byte) be#13 = (byte) be#105 [phi:f0::@9->f0::@return#0] -- register_copy - // [57] phi (byte) bd#13 = (byte) bd#93 [phi:f0::@9->f0::@return#1] -- register_copy - // [57] phi (byte) bc#13 = (byte) bc#71 [phi:f0::@9->f0::@return#2] -- register_copy - // [57] phi (byte) bb#13 = (byte) bb#50 [phi:f0::@9->f0::@return#3] -- register_copy + // [57] phi (byte) bd#13 = (byte) bd#93 [phi:f0::@9->f0::@return#0] -- register_copy + // [57] phi (byte) bc#13 = (byte) bc#71 [phi:f0::@9->f0::@return#1] -- register_copy + // [57] phi (byte) bb#13 = (byte) bb#50 [phi:f0::@9->f0::@return#2] -- register_copy jmp __breturn // f0::@return __breturn: @@ -5054,16 +4240,14 @@ fa: { // [63] call fb // [110] phi from fa::@10 to fb [phi:fa::@10->fb] fb_from___b10: - // [110] phi (byte) be#118 = (byte) be#107 [phi:fa::@10->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#137 [phi:fa::@10->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#172 [phi:fa::@10->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#137 [phi:fa::@10->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#172 [phi:fa::@10->fb#1] -- register_copy jsr fb // [64] phi from fa fa::@10 to fa::@1 [phi:fa/fa::@10->fa::@1] __b1_from_fa: __b1_from___b10: - // [64] phi (byte) be#108 = (byte) be#107 [phi:fa/fa::@10->fa::@1#0] -- register_copy - // [64] phi (byte) bd#138 = (byte) bd#137 [phi:fa/fa::@10->fa::@1#1] -- register_copy - // [64] phi (byte) bc#40 = (byte) bc#39 [phi:fa/fa::@10->fa::@1#2] -- register_copy + // [64] phi (byte) bd#138 = (byte) bd#137 [phi:fa/fa::@10->fa::@1#0] -- register_copy + // [64] phi (byte) bc#40 = (byte) bc#39 [phi:fa/fa::@10->fa::@1#1] -- register_copy jmp __b1 // fa::@1 __b1: @@ -5081,16 +4265,14 @@ fa: { // [68] call fb // [110] phi from fa::@11 to fb [phi:fa::@11->fb] fb_from___b11: - // [110] phi (byte) be#118 = (byte) be#108 [phi:fa::@11->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#138 [phi:fa::@11->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#173 [phi:fa::@11->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#138 [phi:fa::@11->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#173 [phi:fa::@11->fb#1] -- register_copy jsr fb // [69] phi from fa::@1 fa::@11 to fa::@2 [phi:fa::@1/fa::@11->fa::@2] __b2_from___b1: __b2_from___b11: - // [69] phi (byte) be#109 = (byte) be#108 [phi:fa::@1/fa::@11->fa::@2#0] -- register_copy - // [69] phi (byte) bd#139 = (byte) bd#138 [phi:fa::@1/fa::@11->fa::@2#1] -- register_copy - // [69] phi (byte) bc#41 = (byte) bc#40 [phi:fa::@1/fa::@11->fa::@2#2] -- register_copy + // [69] phi (byte) bd#139 = (byte) bd#138 [phi:fa::@1/fa::@11->fa::@2#0] -- register_copy + // [69] phi (byte) bc#41 = (byte) bc#40 [phi:fa::@1/fa::@11->fa::@2#1] -- register_copy jmp __b2 // fa::@2 __b2: @@ -5108,16 +4290,14 @@ fa: { // [73] call fb // [110] phi from fa::@12 to fb [phi:fa::@12->fb] fb_from___b12: - // [110] phi (byte) be#118 = (byte) be#109 [phi:fa::@12->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#139 [phi:fa::@12->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#174 [phi:fa::@12->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#139 [phi:fa::@12->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#174 [phi:fa::@12->fb#1] -- register_copy jsr fb // [74] phi from fa::@12 fa::@2 to fa::@3 [phi:fa::@12/fa::@2->fa::@3] __b3_from___b12: __b3_from___b2: - // [74] phi (byte) be#110 = (byte) be#35 [phi:fa::@12/fa::@2->fa::@3#0] -- register_copy - // [74] phi (byte) bd#140 = (byte) bd#35 [phi:fa::@12/fa::@2->fa::@3#1] -- register_copy - // [74] phi (byte) bc#42 = (byte) bc#106 [phi:fa::@12/fa::@2->fa::@3#2] -- register_copy + // [74] phi (byte) bd#140 = (byte) bd#35 [phi:fa::@12/fa::@2->fa::@3#0] -- register_copy + // [74] phi (byte) bc#42 = (byte) bc#106 [phi:fa::@12/fa::@2->fa::@3#1] -- register_copy jmp __b3 // fa::@3 __b3: @@ -5135,16 +4315,14 @@ fa: { // [78] call fb // [110] phi from fa::@13 to fb [phi:fa::@13->fb] fb_from___b13: - // [110] phi (byte) be#118 = (byte) be#110 [phi:fa::@13->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#140 [phi:fa::@13->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#175 [phi:fa::@13->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#140 [phi:fa::@13->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#175 [phi:fa::@13->fb#1] -- register_copy jsr fb // [79] phi from fa::@13 fa::@3 to fa::@4 [phi:fa::@13/fa::@3->fa::@4] __b4_from___b13: __b4_from___b3: - // [79] phi (byte) be#111 = (byte) be#35 [phi:fa::@13/fa::@3->fa::@4#0] -- register_copy - // [79] phi (byte) bd#141 = (byte) bd#35 [phi:fa::@13/fa::@3->fa::@4#1] -- register_copy - // [79] phi (byte) bc#43 = (byte) bc#107 [phi:fa::@13/fa::@3->fa::@4#2] -- register_copy + // [79] phi (byte) bd#141 = (byte) bd#35 [phi:fa::@13/fa::@3->fa::@4#0] -- register_copy + // [79] phi (byte) bc#43 = (byte) bc#107 [phi:fa::@13/fa::@3->fa::@4#1] -- register_copy jmp __b4 // fa::@4 __b4: @@ -5162,16 +4340,14 @@ fa: { // [83] call fb // [110] phi from fa::@14 to fb [phi:fa::@14->fb] fb_from___b14: - // [110] phi (byte) be#118 = (byte) be#111 [phi:fa::@14->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#141 [phi:fa::@14->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#176 [phi:fa::@14->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#141 [phi:fa::@14->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#176 [phi:fa::@14->fb#1] -- register_copy jsr fb // [84] phi from fa::@14 fa::@4 to fa::@5 [phi:fa::@14/fa::@4->fa::@5] __b5_from___b14: __b5_from___b4: - // [84] phi (byte) be#112 = (byte) be#35 [phi:fa::@14/fa::@4->fa::@5#0] -- register_copy - // [84] phi (byte) bd#100 = (byte) bd#35 [phi:fa::@14/fa::@4->fa::@5#1] -- register_copy - // [84] phi (byte) bc#44 = (byte) bc#108 [phi:fa::@14/fa::@4->fa::@5#2] -- register_copy + // [84] phi (byte) bd#100 = (byte) bd#35 [phi:fa::@14/fa::@4->fa::@5#0] -- register_copy + // [84] phi (byte) bc#44 = (byte) bc#108 [phi:fa::@14/fa::@4->fa::@5#1] -- register_copy jmp __b5 // fa::@5 __b5: @@ -5189,16 +4365,14 @@ fa: { // [88] call fb // [110] phi from fa::@15 to fb [phi:fa::@15->fb] fb_from___b15: - // [110] phi (byte) be#118 = (byte) be#112 [phi:fa::@15->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#100 [phi:fa::@15->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#177 [phi:fa::@15->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#100 [phi:fa::@15->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#177 [phi:fa::@15->fb#1] -- register_copy jsr fb // [89] phi from fa::@15 fa::@5 to fa::@6 [phi:fa::@15/fa::@5->fa::@6] __b6_from___b15: __b6_from___b5: - // [89] phi (byte) be#113 = (byte) be#35 [phi:fa::@15/fa::@5->fa::@6#0] -- register_copy - // [89] phi (byte) bd#101 = (byte) bd#35 [phi:fa::@15/fa::@5->fa::@6#1] -- register_copy - // [89] phi (byte) bc#45 = (byte) bc#109 [phi:fa::@15/fa::@5->fa::@6#2] -- register_copy + // [89] phi (byte) bd#101 = (byte) bd#35 [phi:fa::@15/fa::@5->fa::@6#0] -- register_copy + // [89] phi (byte) bc#45 = (byte) bc#109 [phi:fa::@15/fa::@5->fa::@6#1] -- register_copy jmp __b6 // fa::@6 __b6: @@ -5216,16 +4390,14 @@ fa: { // [93] call fb // [110] phi from fa::@16 to fb [phi:fa::@16->fb] fb_from___b16: - // [110] phi (byte) be#118 = (byte) be#113 [phi:fa::@16->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#101 [phi:fa::@16->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#178 [phi:fa::@16->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#101 [phi:fa::@16->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#178 [phi:fa::@16->fb#1] -- register_copy jsr fb // [94] phi from fa::@16 fa::@6 to fa::@7 [phi:fa::@16/fa::@6->fa::@7] __b7_from___b16: __b7_from___b6: - // [94] phi (byte) be#114 = (byte) be#35 [phi:fa::@16/fa::@6->fa::@7#0] -- register_copy - // [94] phi (byte) bd#102 = (byte) bd#35 [phi:fa::@16/fa::@6->fa::@7#1] -- register_copy - // [94] phi (byte) bc#46 = (byte) bc#110 [phi:fa::@16/fa::@6->fa::@7#2] -- register_copy + // [94] phi (byte) bd#102 = (byte) bd#35 [phi:fa::@16/fa::@6->fa::@7#0] -- register_copy + // [94] phi (byte) bc#46 = (byte) bc#110 [phi:fa::@16/fa::@6->fa::@7#1] -- register_copy jmp __b7 // fa::@7 __b7: @@ -5243,16 +4415,14 @@ fa: { // [98] call fb // [110] phi from fa::@17 to fb [phi:fa::@17->fb] fb_from___b17: - // [110] phi (byte) be#118 = (byte) be#114 [phi:fa::@17->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#102 [phi:fa::@17->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#179 [phi:fa::@17->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#102 [phi:fa::@17->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#179 [phi:fa::@17->fb#1] -- register_copy jsr fb // [99] phi from fa::@17 fa::@7 to fa::@8 [phi:fa::@17/fa::@7->fa::@8] __b8_from___b17: __b8_from___b7: - // [99] phi (byte) be#115 = (byte) be#35 [phi:fa::@17/fa::@7->fa::@8#0] -- register_copy - // [99] phi (byte) bd#103 = (byte) bd#35 [phi:fa::@17/fa::@7->fa::@8#1] -- register_copy - // [99] phi (byte) bc#47 = (byte) bc#111 [phi:fa::@17/fa::@7->fa::@8#2] -- register_copy + // [99] phi (byte) bd#103 = (byte) bd#35 [phi:fa::@17/fa::@7->fa::@8#0] -- register_copy + // [99] phi (byte) bc#47 = (byte) bc#111 [phi:fa::@17/fa::@7->fa::@8#1] -- register_copy jmp __b8 // fa::@8 __b8: @@ -5270,16 +4440,14 @@ fa: { // [103] call fb // [110] phi from fa::@18 to fb [phi:fa::@18->fb] fb_from___b18: - // [110] phi (byte) be#118 = (byte) be#115 [phi:fa::@18->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#103 [phi:fa::@18->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#180 [phi:fa::@18->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#103 [phi:fa::@18->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#180 [phi:fa::@18->fb#1] -- register_copy jsr fb // [104] phi from fa::@18 fa::@8 to fa::@9 [phi:fa::@18/fa::@8->fa::@9] __b9_from___b18: __b9_from___b8: - // [104] phi (byte) be#116 = (byte) be#35 [phi:fa::@18/fa::@8->fa::@9#0] -- register_copy - // [104] phi (byte) bd#104 = (byte) bd#35 [phi:fa::@18/fa::@8->fa::@9#1] -- register_copy - // [104] phi (byte) bc#83 = (byte) bc#112 [phi:fa::@18/fa::@8->fa::@9#2] -- register_copy + // [104] phi (byte) bd#104 = (byte) bd#35 [phi:fa::@18/fa::@8->fa::@9#0] -- register_copy + // [104] phi (byte) bc#83 = (byte) bc#112 [phi:fa::@18/fa::@8->fa::@9#1] -- register_copy jmp __b9 // fa::@9 __b9: @@ -5295,24 +4463,21 @@ fa: { // [107] call fb // [110] phi from fa::@19 to fb [phi:fa::@19->fb] fb_from___b19: - // [110] phi (byte) be#118 = (byte) be#116 [phi:fa::@19->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#104 [phi:fa::@19->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) 0 [phi:fa::@19->fb#2] -- vbuz1=vbuc1 + // [110] phi (byte) bd#106 = (byte) bd#104 [phi:fa::@19->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) 0 [phi:fa::@19->fb#1] -- vbuz1=vbuc1 lda #0 sta.z bc jsr fb // [108] phi from fa::@19 to fa::@return [phi:fa::@19->fa::@return] __breturn_from___b19: - // [108] phi (byte) be#24 = (byte) be#35 [phi:fa::@19->fa::@return#0] -- register_copy - // [108] phi (byte) bd#24 = (byte) bd#35 [phi:fa::@19->fa::@return#1] -- register_copy - // [108] phi (byte) bc#24 = (byte) 0 [phi:fa::@19->fa::@return#2] -- vbuxx=vbuc1 + // [108] phi (byte) bd#24 = (byte) bd#35 [phi:fa::@19->fa::@return#0] -- register_copy + // [108] phi (byte) bc#24 = (byte) 0 [phi:fa::@19->fa::@return#1] -- vbuxx=vbuc1 ldx #0 jmp __breturn // [108] phi from fa::@9 to fa::@return [phi:fa::@9->fa::@return] __breturn_from___b9: - // [108] phi (byte) be#24 = (byte) be#116 [phi:fa::@9->fa::@return#0] -- register_copy - // [108] phi (byte) bd#24 = (byte) bd#104 [phi:fa::@9->fa::@return#1] -- register_copy - // [108] phi (byte) bc#24 = (byte) bc#83 [phi:fa::@9->fa::@return#2] -- register_copy + // [108] phi (byte) bd#24 = (byte) bd#104 [phi:fa::@9->fa::@return#0] -- register_copy + // [108] phi (byte) bc#24 = (byte) bc#83 [phi:fa::@9->fa::@return#1] -- register_copy jmp __breturn // fa::@return __breturn: @@ -5335,14 +4500,12 @@ fb: { // [114] call fc // [161] phi from fb::@10 to fc [phi:fb::@10->fc] fc_from___b10: - // [161] phi (byte) be#129 = (byte) be#118 [phi:fb::@10->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#235 [phi:fb::@10->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#235 [phi:fb::@10->fc#0] -- register_copy jsr fc // [115] phi from fb fb::@10 to fb::@1 [phi:fb/fb::@10->fb::@1] __b1_from_fb: __b1_from___b10: - // [115] phi (byte) be#119 = (byte) be#118 [phi:fb/fb::@10->fb::@1#0] -- register_copy - // [115] phi (byte) bd#107 = (byte) bd#106 [phi:fb/fb::@10->fb::@1#1] -- register_copy + // [115] phi (byte) bd#107 = (byte) bd#106 [phi:fb/fb::@10->fb::@1#0] -- register_copy jmp __b1 // fb::@1 __b1: @@ -5360,14 +4523,12 @@ fb: { // [119] call fc // [161] phi from fb::@11 to fc [phi:fb::@11->fc] fc_from___b11: - // [161] phi (byte) be#129 = (byte) be#119 [phi:fb::@11->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#236 [phi:fb::@11->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#236 [phi:fb::@11->fc#0] -- register_copy jsr fc // [120] phi from fb::@1 fb::@11 to fb::@2 [phi:fb::@1/fb::@11->fb::@2] __b2_from___b1: __b2_from___b11: - // [120] phi (byte) be#120 = (byte) be#119 [phi:fb::@1/fb::@11->fb::@2#0] -- register_copy - // [120] phi (byte) bd#108 = (byte) bd#107 [phi:fb::@1/fb::@11->fb::@2#1] -- register_copy + // [120] phi (byte) bd#108 = (byte) bd#107 [phi:fb::@1/fb::@11->fb::@2#0] -- register_copy jmp __b2 // fb::@2 __b2: @@ -5385,14 +4546,12 @@ fb: { // [124] call fc // [161] phi from fb::@12 to fc [phi:fb::@12->fc] fc_from___b12: - // [161] phi (byte) be#129 = (byte) be#120 [phi:fb::@12->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#237 [phi:fb::@12->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#237 [phi:fb::@12->fc#0] -- register_copy jsr fc // [125] phi from fb::@12 fb::@2 to fb::@3 [phi:fb::@12/fb::@2->fb::@3] __b3_from___b12: __b3_from___b2: - // [125] phi (byte) be#121 = (byte) be#46 [phi:fb::@12/fb::@2->fb::@3#0] -- register_copy - // [125] phi (byte) bd#109 = (byte) bd#148 [phi:fb::@12/fb::@2->fb::@3#1] -- register_copy + // [125] phi (byte) bd#109 = (byte) bd#148 [phi:fb::@12/fb::@2->fb::@3#0] -- register_copy jmp __b3 // fb::@3 __b3: @@ -5410,14 +4569,12 @@ fb: { // [129] call fc // [161] phi from fb::@13 to fc [phi:fb::@13->fc] fc_from___b13: - // [161] phi (byte) be#129 = (byte) be#121 [phi:fb::@13->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#238 [phi:fb::@13->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#238 [phi:fb::@13->fc#0] -- register_copy jsr fc // [130] phi from fb::@13 fb::@3 to fb::@4 [phi:fb::@13/fb::@3->fb::@4] __b4_from___b13: __b4_from___b3: - // [130] phi (byte) be#122 = (byte) be#46 [phi:fb::@13/fb::@3->fb::@4#0] -- register_copy - // [130] phi (byte) bd#110 = (byte) bd#149 [phi:fb::@13/fb::@3->fb::@4#1] -- register_copy + // [130] phi (byte) bd#110 = (byte) bd#149 [phi:fb::@13/fb::@3->fb::@4#0] -- register_copy jmp __b4 // fb::@4 __b4: @@ -5435,14 +4592,12 @@ fb: { // [134] call fc // [161] phi from fb::@14 to fc [phi:fb::@14->fc] fc_from___b14: - // [161] phi (byte) be#129 = (byte) be#122 [phi:fb::@14->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#239 [phi:fb::@14->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#239 [phi:fb::@14->fc#0] -- register_copy jsr fc // [135] phi from fb::@14 fb::@4 to fb::@5 [phi:fb::@14/fb::@4->fb::@5] __b5_from___b14: __b5_from___b4: - // [135] phi (byte) be#123 = (byte) be#46 [phi:fb::@14/fb::@4->fb::@5#0] -- register_copy - // [135] phi (byte) bd#111 = (byte) bd#150 [phi:fb::@14/fb::@4->fb::@5#1] -- register_copy + // [135] phi (byte) bd#111 = (byte) bd#150 [phi:fb::@14/fb::@4->fb::@5#0] -- register_copy jmp __b5 // fb::@5 __b5: @@ -5460,14 +4615,12 @@ fb: { // [139] call fc // [161] phi from fb::@15 to fc [phi:fb::@15->fc] fc_from___b15: - // [161] phi (byte) be#129 = (byte) be#123 [phi:fb::@15->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#240 [phi:fb::@15->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#240 [phi:fb::@15->fc#0] -- register_copy jsr fc // [140] phi from fb::@15 fb::@5 to fb::@6 [phi:fb::@15/fb::@5->fb::@6] __b6_from___b15: __b6_from___b5: - // [140] phi (byte) be#124 = (byte) be#46 [phi:fb::@15/fb::@5->fb::@6#0] -- register_copy - // [140] phi (byte) bd#112 = (byte) bd#151 [phi:fb::@15/fb::@5->fb::@6#1] -- register_copy + // [140] phi (byte) bd#112 = (byte) bd#151 [phi:fb::@15/fb::@5->fb::@6#0] -- register_copy jmp __b6 // fb::@6 __b6: @@ -5485,14 +4638,12 @@ fb: { // [144] call fc // [161] phi from fb::@16 to fc [phi:fb::@16->fc] fc_from___b16: - // [161] phi (byte) be#129 = (byte) be#124 [phi:fb::@16->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#241 [phi:fb::@16->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#241 [phi:fb::@16->fc#0] -- register_copy jsr fc // [145] phi from fb::@16 fb::@6 to fb::@7 [phi:fb::@16/fb::@6->fb::@7] __b7_from___b16: __b7_from___b6: - // [145] phi (byte) be#125 = (byte) be#46 [phi:fb::@16/fb::@6->fb::@7#0] -- register_copy - // [145] phi (byte) bd#113 = (byte) bd#152 [phi:fb::@16/fb::@6->fb::@7#1] -- register_copy + // [145] phi (byte) bd#113 = (byte) bd#152 [phi:fb::@16/fb::@6->fb::@7#0] -- register_copy jmp __b7 // fb::@7 __b7: @@ -5510,14 +4661,12 @@ fb: { // [149] call fc // [161] phi from fb::@17 to fc [phi:fb::@17->fc] fc_from___b17: - // [161] phi (byte) be#129 = (byte) be#125 [phi:fb::@17->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#242 [phi:fb::@17->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#242 [phi:fb::@17->fc#0] -- register_copy jsr fc // [150] phi from fb::@17 fb::@7 to fb::@8 [phi:fb::@17/fb::@7->fb::@8] __b8_from___b17: __b8_from___b7: - // [150] phi (byte) be#126 = (byte) be#46 [phi:fb::@17/fb::@7->fb::@8#0] -- register_copy - // [150] phi (byte) bd#114 = (byte) bd#153 [phi:fb::@17/fb::@7->fb::@8#1] -- register_copy + // [150] phi (byte) bd#114 = (byte) bd#153 [phi:fb::@17/fb::@7->fb::@8#0] -- register_copy jmp __b8 // fb::@8 __b8: @@ -5535,14 +4684,12 @@ fb: { // [154] call fc // [161] phi from fb::@18 to fc [phi:fb::@18->fc] fc_from___b18: - // [161] phi (byte) be#129 = (byte) be#126 [phi:fb::@18->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#243 [phi:fb::@18->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#243 [phi:fb::@18->fc#0] -- register_copy jsr fc // [155] phi from fb::@18 fb::@8 to fb::@9 [phi:fb::@18/fb::@8->fb::@9] __b9_from___b18: __b9_from___b8: - // [155] phi (byte) be#127 = (byte) be#46 [phi:fb::@18/fb::@8->fb::@9#0] -- register_copy - // [155] phi (byte) bd#116 = (byte) bd#154 [phi:fb::@18/fb::@8->fb::@9#1] -- register_copy + // [155] phi (byte) bd#116 = (byte) bd#154 [phi:fb::@18/fb::@8->fb::@9#0] -- register_copy jmp __b9 // fb::@9 __b9: @@ -5558,20 +4705,17 @@ fb: { // [158] call fc // [161] phi from fb::@19 to fc [phi:fb::@19->fc] fc_from___b19: - // [161] phi (byte) be#129 = (byte) be#127 [phi:fb::@19->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) 0 [phi:fb::@19->fc#1] -- vbuaa=vbuc1 + // [161] phi (byte) bd#117 = (byte) 0 [phi:fb::@19->fc#0] -- vbuaa=vbuc1 lda #0 jsr fc // [159] phi from fb::@19 to fb::@return [phi:fb::@19->fb::@return] __breturn_from___b19: - // [159] phi (byte) be#35 = (byte) be#46 [phi:fb::@19->fb::@return#0] -- register_copy - // [159] phi (byte) bd#35 = (byte) 0 [phi:fb::@19->fb::@return#1] -- vbuyy=vbuc1 + // [159] phi (byte) bd#35 = (byte) 0 [phi:fb::@19->fb::@return#0] -- vbuyy=vbuc1 ldy #0 jmp __breturn // [159] phi from fb::@9 to fb::@return [phi:fb::@9->fb::@return] __breturn_from___b9: - // [159] phi (byte) be#35 = (byte) be#127 [phi:fb::@9->fb::@return#0] -- register_copy - // [159] phi (byte) bd#35 = (byte) bd#116 [phi:fb::@9->fb::@return#1] -- register_copy + // [159] phi (byte) bd#35 = (byte) bd#116 [phi:fb::@9->fb::@return#0] -- register_copy jmp __breturn // fb::@return __breturn: @@ -5582,160 +4726,115 @@ fb: { fc: { // [162] if((byte) bd#117!=(byte) 0) goto fc::@1 -- vbuaa_neq_0_then_la1 cmp #0 - bne __b1_from_fc + bne __b1 + // [163] phi from fc to fc::@10 [phi:fc->fc::@10] + __b10_from_fc: jmp __b10 // fc::@10 __b10: - // [163] (byte) be#36 ← ++ (byte) be#129 -- vbuz1=_inc_vbuz1 - inc.z be - // [164] phi from fc fc::@10 to fc::@1 [phi:fc/fc::@10->fc::@1] - __b1_from_fc: - __b1_from___b10: - // [164] phi (byte) be#130 = (byte) be#129 [phi:fc/fc::@10->fc::@1#0] -- register_copy jmp __b1 // fc::@1 __b1: - // [165] if((byte) bd#117!=(byte) 1) goto fc::@2 -- vbuaa_neq_vbuc1_then_la1 + // [164] if((byte) bd#117!=(byte) 1) goto fc::@2 -- vbuaa_neq_vbuc1_then_la1 cmp #1 - bne __b2_from___b1 + bne __b2 + // [165] phi from fc::@1 to fc::@11 [phi:fc::@1->fc::@11] + __b11_from___b1: jmp __b11 // fc::@11 __b11: - // [166] (byte) be#37 ← ++ (byte) be#130 -- vbuz1=_inc_vbuz1 - inc.z be - // [167] phi from fc::@1 fc::@11 to fc::@2 [phi:fc::@1/fc::@11->fc::@2] - __b2_from___b1: - __b2_from___b11: - // [167] phi (byte) be#131 = (byte) be#130 [phi:fc::@1/fc::@11->fc::@2#0] -- register_copy jmp __b2 // fc::@2 __b2: - // [168] if((byte) bd#117!=(byte) 2) goto fc::@3 -- vbuaa_neq_vbuc1_then_la1 + // [166] if((byte) bd#117!=(byte) 2) goto fc::@3 -- vbuaa_neq_vbuc1_then_la1 cmp #2 - bne __b3_from___b2 + bne __b3 + // [167] phi from fc::@2 to fc::@12 [phi:fc::@2->fc::@12] + __b12_from___b2: jmp __b12 // fc::@12 __b12: - // [169] (byte) be#38 ← ++ (byte) be#131 -- vbuz1=_inc_vbuz1 - inc.z be - // [170] phi from fc::@12 fc::@2 to fc::@3 [phi:fc::@12/fc::@2->fc::@3] - __b3_from___b12: - __b3_from___b2: - // [170] phi (byte) be#132 = (byte) be#38 [phi:fc::@12/fc::@2->fc::@3#0] -- register_copy jmp __b3 // fc::@3 __b3: - // [171] if((byte) bd#117!=(byte) 3) goto fc::@4 -- vbuaa_neq_vbuc1_then_la1 + // [168] if((byte) bd#117!=(byte) 3) goto fc::@4 -- vbuaa_neq_vbuc1_then_la1 cmp #3 - bne __b4_from___b3 + bne __b4 + // [169] phi from fc::@3 to fc::@13 [phi:fc::@3->fc::@13] + __b13_from___b3: jmp __b13 // fc::@13 __b13: - // [172] (byte) be#39 ← ++ (byte) be#132 -- vbuz1=_inc_vbuz1 - inc.z be - // [173] phi from fc::@13 fc::@3 to fc::@4 [phi:fc::@13/fc::@3->fc::@4] - __b4_from___b13: - __b4_from___b3: - // [173] phi (byte) be#133 = (byte) be#39 [phi:fc::@13/fc::@3->fc::@4#0] -- register_copy jmp __b4 // fc::@4 __b4: - // [174] if((byte) bd#117!=(byte) 4) goto fc::@5 -- vbuaa_neq_vbuc1_then_la1 + // [170] if((byte) bd#117!=(byte) 4) goto fc::@5 -- vbuaa_neq_vbuc1_then_la1 cmp #4 - bne __b5_from___b4 + bne __b5 + // [171] phi from fc::@4 to fc::@14 [phi:fc::@4->fc::@14] + __b14_from___b4: jmp __b14 // fc::@14 __b14: - // [175] (byte) be#40 ← ++ (byte) be#133 -- vbuz1=_inc_vbuz1 - inc.z be - // [176] phi from fc::@14 fc::@4 to fc::@5 [phi:fc::@14/fc::@4->fc::@5] - __b5_from___b14: - __b5_from___b4: - // [176] phi (byte) be#134 = (byte) be#40 [phi:fc::@14/fc::@4->fc::@5#0] -- register_copy jmp __b5 // fc::@5 __b5: - // [177] if((byte) bd#117!=(byte) 5) goto fc::@6 -- vbuaa_neq_vbuc1_then_la1 + // [172] if((byte) bd#117!=(byte) 5) goto fc::@6 -- vbuaa_neq_vbuc1_then_la1 cmp #5 - bne __b6_from___b5 + bne __b6 + // [173] phi from fc::@5 to fc::@15 [phi:fc::@5->fc::@15] + __b15_from___b5: jmp __b15 // fc::@15 __b15: - // [178] (byte) be#41 ← ++ (byte) be#134 -- vbuz1=_inc_vbuz1 - inc.z be - // [179] phi from fc::@15 fc::@5 to fc::@6 [phi:fc::@15/fc::@5->fc::@6] - __b6_from___b15: - __b6_from___b5: - // [179] phi (byte) be#135 = (byte) be#41 [phi:fc::@15/fc::@5->fc::@6#0] -- register_copy jmp __b6 // fc::@6 __b6: - // [180] if((byte) bd#117!=(byte) 6) goto fc::@7 -- vbuaa_neq_vbuc1_then_la1 + // [174] if((byte) bd#117!=(byte) 6) goto fc::@7 -- vbuaa_neq_vbuc1_then_la1 cmp #6 - bne __b7_from___b6 + bne __b7 + // [175] phi from fc::@6 to fc::@16 [phi:fc::@6->fc::@16] + __b16_from___b6: jmp __b16 // fc::@16 __b16: - // [181] (byte) be#42 ← ++ (byte) be#135 -- vbuz1=_inc_vbuz1 - inc.z be - // [182] phi from fc::@16 fc::@6 to fc::@7 [phi:fc::@16/fc::@6->fc::@7] - __b7_from___b16: - __b7_from___b6: - // [182] phi (byte) be#136 = (byte) be#42 [phi:fc::@16/fc::@6->fc::@7#0] -- register_copy jmp __b7 // fc::@7 __b7: - // [183] if((byte) bd#117!=(byte) 7) goto fc::@8 -- vbuaa_neq_vbuc1_then_la1 + // [176] if((byte) bd#117!=(byte) 7) goto fc::@8 -- vbuaa_neq_vbuc1_then_la1 cmp #7 - bne __b8_from___b7 + bne __b8 + // [177] phi from fc::@7 to fc::@17 [phi:fc::@7->fc::@17] + __b17_from___b7: jmp __b17 // fc::@17 __b17: - // [184] (byte) be#43 ← ++ (byte) be#136 -- vbuz1=_inc_vbuz1 - inc.z be - // [185] phi from fc::@17 fc::@7 to fc::@8 [phi:fc::@17/fc::@7->fc::@8] - __b8_from___b17: - __b8_from___b7: - // [185] phi (byte) be#137 = (byte) be#43 [phi:fc::@17/fc::@7->fc::@8#0] -- register_copy jmp __b8 // fc::@8 __b8: - // [186] if((byte) bd#117!=(byte) 8) goto fc::@9 -- vbuaa_neq_vbuc1_then_la1 + // [178] if((byte) bd#117!=(byte) 8) goto fc::@9 -- vbuaa_neq_vbuc1_then_la1 cmp #8 - bne __b9_from___b8 + bne __b9 + // [179] phi from fc::@8 to fc::@18 [phi:fc::@8->fc::@18] + __b18_from___b8: jmp __b18 // fc::@18 __b18: - // [187] (byte) be#44 ← ++ (byte) be#137 -- vbuz1=_inc_vbuz1 - inc.z be - // [188] phi from fc::@18 fc::@8 to fc::@9 [phi:fc::@18/fc::@8->fc::@9] - __b9_from___b18: - __b9_from___b8: - // [188] phi (byte) be#138 = (byte) be#44 [phi:fc::@18/fc::@8->fc::@9#0] -- register_copy jmp __b9 // fc::@9 __b9: - // [189] if((byte) bd#117!=(byte) 9) goto fc::@19 -- vbuaa_neq_vbuc1_then_la1 + // [180] if((byte) bd#117!=(byte) 9) goto fc::@return -- vbuaa_neq_vbuc1_then_la1 cmp #9 - bne __b19_from___b9 - // [191] phi from fc::@9 to fc::@return [phi:fc::@9->fc::@return] - __breturn_from___b9: - // [191] phi (byte) be#46 = (byte) 0 [phi:fc::@9->fc::@return#0] -- vbuz1=vbuc1 - lda #0 - sta.z be - jmp __breturn - // [190] phi from fc::@9 to fc::@19 [phi:fc::@9->fc::@19] + bne __breturn + // [181] phi from fc::@9 to fc::@19 [phi:fc::@9->fc::@19] __b19_from___b9: jmp __b19 // fc::@19 __b19: - // [191] phi from fc::@19 to fc::@return [phi:fc::@19->fc::@return] - __breturn_from___b19: - // [191] phi (byte) be#46 = (byte) be#138 [phi:fc::@19->fc::@return#0] -- register_copy jmp __breturn // fc::@return __breturn: - // [192] return + // [182] return rts } // File Data @@ -5827,7 +4926,6 @@ Removing instruction jmp __b9 Removing instruction jmp __b19 Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination -Removing instruction lda #0 Replacing instruction ldy #0 with TAY Replacing instruction ldx #0 with TAX Removing instruction lda #0 @@ -5864,16 +4962,6 @@ Replacing label __b7_from___b6 with __b7 Replacing label __b8_from___b7 with __b8 Replacing label __b9_from___b8 with __b9 Replacing label __breturn_from___b9 with __breturn -Replacing label __b1_from_fc with __b1 -Replacing label __b2_from___b1 with __b2 -Replacing label __b3_from___b2 with __b3 -Replacing label __b4_from___b3 with __b4 -Replacing label __b5_from___b4 with __b5 -Replacing label __b6_from___b5 with __b6 -Replacing label __b7_from___b6 with __b7 -Replacing label __b8_from___b7 with __b8 -Replacing label __b9_from___b8 with __b9 -Replacing label __b19_from___b9 with __b19 Replacing label __breturn with __b19 Removing instruction __bbegin: Removing instruction __b1_from___bbegin: @@ -5944,26 +5032,25 @@ Removing instruction __b9_from___b8: Removing instruction __b19_from___b9: Removing instruction fc_from___b19: Removing instruction __breturn_from___b9: -Removing instruction __b1_from_fc: -Removing instruction __b1_from___b10: -Removing instruction __b2_from___b1: -Removing instruction __b2_from___b11: -Removing instruction __b3_from___b12: -Removing instruction __b3_from___b2: -Removing instruction __b4_from___b13: -Removing instruction __b4_from___b3: -Removing instruction __b5_from___b14: -Removing instruction __b5_from___b4: -Removing instruction __b6_from___b15: -Removing instruction __b6_from___b5: -Removing instruction __b7_from___b16: -Removing instruction __b7_from___b6: -Removing instruction __b8_from___b17: -Removing instruction __b8_from___b7: -Removing instruction __b9_from___b18: -Removing instruction __b9_from___b8: +Removing instruction __b10_from_fc: +Removing instruction __b10: +Removing instruction __b11_from___b1: +Removing instruction __b11: +Removing instruction __b12_from___b2: +Removing instruction __b12: +Removing instruction __b13_from___b3: +Removing instruction __b13: +Removing instruction __b14_from___b4: +Removing instruction __b14: +Removing instruction __b15_from___b5: +Removing instruction __b15: +Removing instruction __b16_from___b6: +Removing instruction __b16: +Removing instruction __b17_from___b7: +Removing instruction __b17: +Removing instruction __b18_from___b8: +Removing instruction __b18: Removing instruction __b19_from___b9: -Removing instruction __breturn_from___b19: Removing instruction __breturn: Succesful ASM optimization Pass5RedundantLabelElimination Removing instruction __bend: @@ -6030,16 +5117,6 @@ Removing instruction __b18: Removing instruction fc_from___b18: Removing instruction __b19: Removing instruction __breturn_from___b19: -Removing instruction __b10: -Removing instruction __b11: -Removing instruction __b12: -Removing instruction __b13: -Removing instruction __b14: -Removing instruction __b15: -Removing instruction __b16: -Removing instruction __b17: -Removing instruction __b18: -Removing instruction __breturn_from___b9: Succesful ASM optimization Pass5UnusedLabelElimination Updating BasicUpstart to call main directly Removing instruction jsr main @@ -6047,9 +5124,29 @@ Succesful ASM optimization Pass5SkipBegin Replacing jump to rts with rts in jmp __breturn Replacing jump to rts with rts in jmp __breturn Replacing jump to rts with rts in jmp __breturn -Replacing jump to rts with rts in jmp __b19 Succesful ASM optimization Pass5DoubleJumpElimination +Removing instruction bne __b1 +Removing instruction bne __b2 +Removing instruction bne __b3 +Removing instruction bne __b4 +Removing instruction bne __b5 +Removing instruction bne __b6 +Removing instruction bne __b7 +Removing instruction bne __b8 +Removing instruction bne __b9 +Removing instruction bne __b19 +Succesful ASM optimization Pass5NextJumpElimination Removing instruction __b1: +Removing instruction __b1: +Removing instruction __b2: +Removing instruction __b3: +Removing instruction __b4: +Removing instruction __b5: +Removing instruction __b6: +Removing instruction __b7: +Removing instruction __b8: +Removing instruction __b9: +Removing instruction __b19: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE @@ -6148,7 +5245,7 @@ FINAL SYMBOL TABLE (byte) bd#113 reg byte y 4.0 (byte) bd#114 reg byte y 4.0 (byte) bd#116 reg byte y 3.0 -(byte) bd#117 reg byte a 1.3571428571428568 +(byte) bd#117 reg byte a 1.9999999999999991 (byte) bd#129 reg byte y 2.0 (byte) bd#13 reg byte y 3.75 (byte) bd#130 reg byte y 2.0 @@ -6185,60 +5282,6 @@ FINAL SYMBOL TABLE (byte) bd#243 reg byte a 4.0 (byte) bd#35 reg byte y 1.8333333333333335 (byte) bd#93 reg byte y 2.6666666666666665 -(byte) be -(byte) be#100 be zp[1]:6 2.0 -(byte) be#101 be zp[1]:6 2.0 -(byte) be#102 be zp[1]:6 2.0 -(byte) be#103 be zp[1]:6 2.0 -(byte) be#104 be zp[1]:6 2.0 -(byte) be#105 be zp[1]:6 2.6666666666666665 -(byte) be#107 be zp[1]:6 6.0 -(byte) be#108 be zp[1]:6 2.0 -(byte) be#109 be zp[1]:6 2.0 -(byte) be#110 be zp[1]:6 2.0 -(byte) be#111 be zp[1]:6 2.0 -(byte) be#112 be zp[1]:6 2.0 -(byte) be#113 be zp[1]:6 2.0 -(byte) be#114 be zp[1]:6 2.0 -(byte) be#115 be zp[1]:6 2.0 -(byte) be#116 be zp[1]:6 2.6666666666666665 -(byte) be#118 be zp[1]:6 6.0 -(byte) be#119 be zp[1]:6 2.0 -(byte) be#120 be zp[1]:6 2.0 -(byte) be#121 be zp[1]:6 2.0 -(byte) be#122 be zp[1]:6 2.0 -(byte) be#123 be zp[1]:6 2.0 -(byte) be#124 be zp[1]:6 2.0 -(byte) be#125 be zp[1]:6 2.0 -(byte) be#126 be zp[1]:6 2.0 -(byte) be#127 be zp[1]:6 2.6666666666666665 -(byte) be#129 be zp[1]:6 12.0 -(byte) be#13 be zp[1]:6 3.75 -(byte) be#130 be zp[1]:6 4.0 -(byte) be#131 be zp[1]:6 4.0 -(byte) be#132 be zp[1]:6 4.0 -(byte) be#133 be zp[1]:6 4.0 -(byte) be#134 be zp[1]:6 4.0 -(byte) be#135 be zp[1]:6 4.0 -(byte) be#136 be zp[1]:6 4.0 -(byte) be#137 be zp[1]:6 4.0 -(byte) be#138 be zp[1]:6 2.0 -(byte) be#142 be zp[1]:6 2.0 -(byte) be#143 be zp[1]:6 2.0 -(byte) be#144 be zp[1]:6 2.0 -(byte) be#2 be zp[1]:6 3.0 -(byte) be#24 be zp[1]:6 2.0 -(byte) be#35 be zp[1]:6 2.0 -(byte) be#36 be zp[1]:6 4.0 -(byte) be#37 be zp[1]:6 4.0 -(byte) be#38 be zp[1]:6 4.0 -(byte) be#39 be zp[1]:6 4.0 -(byte) be#40 be zp[1]:6 4.0 -(byte) be#41 be zp[1]:6 4.0 -(byte) be#42 be zp[1]:6 4.0 -(byte) be#43 be zp[1]:6 4.0 -(byte) be#44 be zp[1]:6 4.0 -(byte) be#46 be zp[1]:6 1.8333333333333335 (void()) f0() (label) f0::@1 (label) f0::@10 @@ -6335,11 +5378,10 @@ reg byte x [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#109 bc#44 bc#108 bc zp[1]:5 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] reg byte y [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] reg byte a [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] -zp[1]:6 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ] FINAL ASSEMBLER -Score: 1019 +Score: 913 // File Comments // Upstart @@ -6348,7 +5390,6 @@ Score: 1019 .pc = $80d "Program" // Global Constants & labels .label ba = 2 - .label be = 6 .label bb = 3 .label bb_1 = 4 .label bc = 5 @@ -6365,13 +5406,11 @@ main: { // [5] phi (byte) ba#17 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z ba - // [5] phi (byte) be#2 = (byte) 0 [phi:main->main::@1#1] -- vbuz1=vbuc1 - sta.z be - // [5] phi (byte) bd#2 = (byte) 0 [phi:main->main::@1#2] -- vbuyy=vbuc1 + // [5] phi (byte) bd#2 = (byte) 0 [phi:main->main::@1#1] -- vbuyy=vbuc1 tay - // [5] phi (byte) bc#2 = (byte) 0 [phi:main->main::@1#3] -- vbuxx=vbuc1 + // [5] phi (byte) bc#2 = (byte) 0 [phi:main->main::@1#2] -- vbuxx=vbuc1 tax - // [5] phi (byte) bb#16 = (byte) 0 [phi:main->main::@1#4] -- vbuz1=vbuc1 + // [5] phi (byte) bb#16 = (byte) 0 [phi:main->main::@1#3] -- vbuz1=vbuc1 sta.z bb // main::@1 // [6] phi from main::@1 to main::@2 [phi:main::@1->main::@2] @@ -6386,10 +5425,9 @@ main: { inc.z ba // [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1] // [5] phi (byte) ba#17 = (byte) ba#1 [phi:main::@3->main::@1#0] -- register_copy - // [5] phi (byte) be#2 = (byte) be#13 [phi:main::@3->main::@1#1] -- register_copy - // [5] phi (byte) bd#2 = (byte) bd#13 [phi:main::@3->main::@1#2] -- register_copy - // [5] phi (byte) bc#2 = (byte) bc#13 [phi:main::@3->main::@1#3] -- register_copy - // [5] phi (byte) bb#16 = (byte) bb#13 [phi:main::@3->main::@1#4] -- register_copy + // [5] phi (byte) bd#2 = (byte) bd#13 [phi:main::@3->main::@1#1] -- register_copy + // [5] phi (byte) bc#2 = (byte) bc#13 [phi:main::@3->main::@1#2] -- register_copy + // [5] phi (byte) bb#16 = (byte) bb#13 [phi:main::@3->main::@1#3] -- register_copy jmp __b2 } // f0 @@ -6409,16 +5447,14 @@ f0: { // fa() // [12] call fa // [59] phi from f0::@10 to fa [phi:f0::@10->fa] - // [59] phi (byte) be#107 = (byte) be#2 [phi:f0::@10->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#2 [phi:f0::@10->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#2 [phi:f0::@10->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#100 [phi:f0::@10->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#2 [phi:f0::@10->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#2 [phi:f0::@10->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#100 [phi:f0::@10->fa#2] -- register_copy jsr fa // [13] phi from f0 f0::@10 to f0::@1 [phi:f0/f0::@10->f0::@1] - // [13] phi (byte) be#142 = (byte) be#2 [phi:f0/f0::@10->f0::@1#0] -- register_copy - // [13] phi (byte) bd#129 = (byte) bd#2 [phi:f0/f0::@10->f0::@1#1] -- register_copy - // [13] phi (byte) bc#63 = (byte) bc#2 [phi:f0/f0::@10->f0::@1#2] -- register_copy - // [13] phi (byte) bb#18 = (byte) bb#16 [phi:f0/f0::@10->f0::@1#3] -- register_copy + // [13] phi (byte) bd#129 = (byte) bd#2 [phi:f0/f0::@10->f0::@1#0] -- register_copy + // [13] phi (byte) bc#63 = (byte) bc#2 [phi:f0/f0::@10->f0::@1#1] -- register_copy + // [13] phi (byte) bb#18 = (byte) bb#16 [phi:f0/f0::@10->f0::@1#2] -- register_copy // f0::@1 __b1: // if(ba==1) @@ -6436,16 +5472,14 @@ f0: { // fa() // [17] call fa // [59] phi from f0::@11 to fa [phi:f0::@11->fa] - // [59] phi (byte) be#107 = (byte) be#142 [phi:f0::@11->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#129 [phi:f0::@11->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#63 [phi:f0::@11->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#101 [phi:f0::@11->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#129 [phi:f0::@11->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#63 [phi:f0::@11->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#101 [phi:f0::@11->fa#2] -- register_copy jsr fa // [18] phi from f0::@1 f0::@11 to f0::@2 [phi:f0::@1/f0::@11->f0::@2] - // [18] phi (byte) be#143 = (byte) be#142 [phi:f0::@1/f0::@11->f0::@2#0] -- register_copy - // [18] phi (byte) bd#130 = (byte) bd#129 [phi:f0::@1/f0::@11->f0::@2#1] -- register_copy - // [18] phi (byte) bc#64 = (byte) bc#63 [phi:f0::@1/f0::@11->f0::@2#2] -- register_copy - // [18] phi (byte) bb#19 = (byte) bb#18 [phi:f0::@1/f0::@11->f0::@2#3] -- register_copy + // [18] phi (byte) bd#130 = (byte) bd#129 [phi:f0::@1/f0::@11->f0::@2#0] -- register_copy + // [18] phi (byte) bc#64 = (byte) bc#63 [phi:f0::@1/f0::@11->f0::@2#1] -- register_copy + // [18] phi (byte) bb#19 = (byte) bb#18 [phi:f0::@1/f0::@11->f0::@2#2] -- register_copy // f0::@2 __b2: // if(ba==2) @@ -6463,16 +5497,14 @@ f0: { // fa() // [22] call fa // [59] phi from f0::@12 to fa [phi:f0::@12->fa] - // [59] phi (byte) be#107 = (byte) be#143 [phi:f0::@12->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#130 [phi:f0::@12->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#64 [phi:f0::@12->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#102 [phi:f0::@12->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#130 [phi:f0::@12->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#64 [phi:f0::@12->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#102 [phi:f0::@12->fa#2] -- register_copy jsr fa // [23] phi from f0::@12 f0::@2 to f0::@3 [phi:f0::@12/f0::@2->f0::@3] - // [23] phi (byte) be#144 = (byte) be#24 [phi:f0::@12/f0::@2->f0::@3#0] -- register_copy - // [23] phi (byte) bd#131 = (byte) bd#24 [phi:f0::@12/f0::@2->f0::@3#1] -- register_copy - // [23] phi (byte) bc#65 = (byte) bc#24 [phi:f0::@12/f0::@2->f0::@3#2] -- register_copy - // [23] phi (byte) bb#20 = (byte) bb#5 [phi:f0::@12/f0::@2->f0::@3#3] -- register_copy + // [23] phi (byte) bd#131 = (byte) bd#24 [phi:f0::@12/f0::@2->f0::@3#0] -- register_copy + // [23] phi (byte) bc#65 = (byte) bc#24 [phi:f0::@12/f0::@2->f0::@3#1] -- register_copy + // [23] phi (byte) bb#20 = (byte) bb#5 [phi:f0::@12/f0::@2->f0::@3#2] -- register_copy // f0::@3 __b3: // if(ba==3) @@ -6490,16 +5522,14 @@ f0: { // fa() // [27] call fa // [59] phi from f0::@13 to fa [phi:f0::@13->fa] - // [59] phi (byte) be#107 = (byte) be#144 [phi:f0::@13->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#131 [phi:f0::@13->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#65 [phi:f0::@13->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#103 [phi:f0::@13->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#131 [phi:f0::@13->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#65 [phi:f0::@13->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#103 [phi:f0::@13->fa#2] -- register_copy jsr fa // [28] phi from f0::@13 f0::@3 to f0::@4 [phi:f0::@13/f0::@3->f0::@4] - // [28] phi (byte) be#100 = (byte) be#24 [phi:f0::@13/f0::@3->f0::@4#0] -- register_copy - // [28] phi (byte) bd#132 = (byte) bd#24 [phi:f0::@13/f0::@3->f0::@4#1] -- register_copy - // [28] phi (byte) bc#66 = (byte) bc#24 [phi:f0::@13/f0::@3->f0::@4#2] -- register_copy - // [28] phi (byte) bb#21 = (byte) bb#6 [phi:f0::@13/f0::@3->f0::@4#3] -- register_copy + // [28] phi (byte) bd#132 = (byte) bd#24 [phi:f0::@13/f0::@3->f0::@4#0] -- register_copy + // [28] phi (byte) bc#66 = (byte) bc#24 [phi:f0::@13/f0::@3->f0::@4#1] -- register_copy + // [28] phi (byte) bb#21 = (byte) bb#6 [phi:f0::@13/f0::@3->f0::@4#2] -- register_copy // f0::@4 __b4: // if(ba==4) @@ -6517,16 +5547,14 @@ f0: { // fa() // [32] call fa // [59] phi from f0::@14 to fa [phi:f0::@14->fa] - // [59] phi (byte) be#107 = (byte) be#100 [phi:f0::@14->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#132 [phi:f0::@14->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#66 [phi:f0::@14->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#104 [phi:f0::@14->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#132 [phi:f0::@14->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#66 [phi:f0::@14->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#104 [phi:f0::@14->fa#2] -- register_copy jsr fa // [33] phi from f0::@14 f0::@4 to f0::@5 [phi:f0::@14/f0::@4->f0::@5] - // [33] phi (byte) be#101 = (byte) be#24 [phi:f0::@14/f0::@4->f0::@5#0] -- register_copy - // [33] phi (byte) bd#133 = (byte) bd#24 [phi:f0::@14/f0::@4->f0::@5#1] -- register_copy - // [33] phi (byte) bc#100 = (byte) bc#24 [phi:f0::@14/f0::@4->f0::@5#2] -- register_copy - // [33] phi (byte) bb#22 = (byte) bb#66 [phi:f0::@14/f0::@4->f0::@5#3] -- register_copy + // [33] phi (byte) bd#133 = (byte) bd#24 [phi:f0::@14/f0::@4->f0::@5#0] -- register_copy + // [33] phi (byte) bc#100 = (byte) bc#24 [phi:f0::@14/f0::@4->f0::@5#1] -- register_copy + // [33] phi (byte) bb#22 = (byte) bb#66 [phi:f0::@14/f0::@4->f0::@5#2] -- register_copy // f0::@5 __b5: // if(ba==5) @@ -6544,16 +5572,14 @@ f0: { // fa() // [37] call fa // [59] phi from f0::@15 to fa [phi:f0::@15->fa] - // [59] phi (byte) be#107 = (byte) be#101 [phi:f0::@15->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#133 [phi:f0::@15->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#100 [phi:f0::@15->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#105 [phi:f0::@15->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#133 [phi:f0::@15->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#100 [phi:f0::@15->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#105 [phi:f0::@15->fa#2] -- register_copy jsr fa // [38] phi from f0::@15 f0::@5 to f0::@6 [phi:f0::@15/f0::@5->f0::@6] - // [38] phi (byte) be#102 = (byte) be#24 [phi:f0::@15/f0::@5->f0::@6#0] -- register_copy - // [38] phi (byte) bd#134 = (byte) bd#24 [phi:f0::@15/f0::@5->f0::@6#1] -- register_copy - // [38] phi (byte) bc#101 = (byte) bc#24 [phi:f0::@15/f0::@5->f0::@6#2] -- register_copy - // [38] phi (byte) bb#23 = (byte) bb#67 [phi:f0::@15/f0::@5->f0::@6#3] -- register_copy + // [38] phi (byte) bd#134 = (byte) bd#24 [phi:f0::@15/f0::@5->f0::@6#0] -- register_copy + // [38] phi (byte) bc#101 = (byte) bc#24 [phi:f0::@15/f0::@5->f0::@6#1] -- register_copy + // [38] phi (byte) bb#23 = (byte) bb#67 [phi:f0::@15/f0::@5->f0::@6#2] -- register_copy // f0::@6 __b6: // if(ba==6) @@ -6571,16 +5597,14 @@ f0: { // fa() // [42] call fa // [59] phi from f0::@16 to fa [phi:f0::@16->fa] - // [59] phi (byte) be#107 = (byte) be#102 [phi:f0::@16->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#134 [phi:f0::@16->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#101 [phi:f0::@16->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#106 [phi:f0::@16->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#134 [phi:f0::@16->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#101 [phi:f0::@16->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#106 [phi:f0::@16->fa#2] -- register_copy jsr fa // [43] phi from f0::@16 f0::@6 to f0::@7 [phi:f0::@16/f0::@6->f0::@7] - // [43] phi (byte) be#103 = (byte) be#24 [phi:f0::@16/f0::@6->f0::@7#0] -- register_copy - // [43] phi (byte) bd#135 = (byte) bd#24 [phi:f0::@16/f0::@6->f0::@7#1] -- register_copy - // [43] phi (byte) bc#102 = (byte) bc#24 [phi:f0::@16/f0::@6->f0::@7#2] -- register_copy - // [43] phi (byte) bb#24 = (byte) bb#68 [phi:f0::@16/f0::@6->f0::@7#3] -- register_copy + // [43] phi (byte) bd#135 = (byte) bd#24 [phi:f0::@16/f0::@6->f0::@7#0] -- register_copy + // [43] phi (byte) bc#102 = (byte) bc#24 [phi:f0::@16/f0::@6->f0::@7#1] -- register_copy + // [43] phi (byte) bb#24 = (byte) bb#68 [phi:f0::@16/f0::@6->f0::@7#2] -- register_copy // f0::@7 __b7: // if(ba==7) @@ -6598,16 +5622,14 @@ f0: { // fa() // [47] call fa // [59] phi from f0::@17 to fa [phi:f0::@17->fa] - // [59] phi (byte) be#107 = (byte) be#103 [phi:f0::@17->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#135 [phi:f0::@17->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#102 [phi:f0::@17->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#107 [phi:f0::@17->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#135 [phi:f0::@17->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#102 [phi:f0::@17->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#107 [phi:f0::@17->fa#2] -- register_copy jsr fa // [48] phi from f0::@17 f0::@7 to f0::@8 [phi:f0::@17/f0::@7->f0::@8] - // [48] phi (byte) be#104 = (byte) be#24 [phi:f0::@17/f0::@7->f0::@8#0] -- register_copy - // [48] phi (byte) bd#136 = (byte) bd#24 [phi:f0::@17/f0::@7->f0::@8#1] -- register_copy - // [48] phi (byte) bc#103 = (byte) bc#24 [phi:f0::@17/f0::@7->f0::@8#2] -- register_copy - // [48] phi (byte) bb#25 = (byte) bb#10 [phi:f0::@17/f0::@7->f0::@8#3] -- register_copy + // [48] phi (byte) bd#136 = (byte) bd#24 [phi:f0::@17/f0::@7->f0::@8#0] -- register_copy + // [48] phi (byte) bc#103 = (byte) bc#24 [phi:f0::@17/f0::@7->f0::@8#1] -- register_copy + // [48] phi (byte) bb#25 = (byte) bb#10 [phi:f0::@17/f0::@7->f0::@8#2] -- register_copy // f0::@8 __b8: // if(ba==8) @@ -6625,16 +5647,14 @@ f0: { // fa() // [52] call fa // [59] phi from f0::@18 to fa [phi:f0::@18->fa] - // [59] phi (byte) be#107 = (byte) be#104 [phi:f0::@18->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#136 [phi:f0::@18->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#103 [phi:f0::@18->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) bb#108 [phi:f0::@18->fa#3] -- register_copy + // [59] phi (byte) bd#137 = (byte) bd#136 [phi:f0::@18->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#103 [phi:f0::@18->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) bb#108 [phi:f0::@18->fa#2] -- register_copy jsr fa // [53] phi from f0::@18 f0::@8 to f0::@9 [phi:f0::@18/f0::@8->f0::@9] - // [53] phi (byte) be#105 = (byte) be#24 [phi:f0::@18/f0::@8->f0::@9#0] -- register_copy - // [53] phi (byte) bd#93 = (byte) bd#24 [phi:f0::@18/f0::@8->f0::@9#1] -- register_copy - // [53] phi (byte) bc#71 = (byte) bc#24 [phi:f0::@18/f0::@8->f0::@9#2] -- register_copy - // [53] phi (byte) bb#50 = (byte) bb#11 [phi:f0::@18/f0::@8->f0::@9#3] -- register_copy + // [53] phi (byte) bd#93 = (byte) bd#24 [phi:f0::@18/f0::@8->f0::@9#0] -- register_copy + // [53] phi (byte) bc#71 = (byte) bc#24 [phi:f0::@18/f0::@8->f0::@9#1] -- register_copy + // [53] phi (byte) bb#50 = (byte) bb#11 [phi:f0::@18/f0::@8->f0::@9#2] -- register_copy // f0::@9 __b9: // if(ba==9) @@ -6647,26 +5667,23 @@ f0: { // fa() // [56] call fa // [59] phi from f0::@19 to fa [phi:f0::@19->fa] - // [59] phi (byte) be#107 = (byte) be#105 [phi:f0::@19->fa#0] -- register_copy - // [59] phi (byte) bd#137 = (byte) bd#93 [phi:f0::@19->fa#1] -- register_copy - // [59] phi (byte) bc#39 = (byte) bc#71 [phi:f0::@19->fa#2] -- register_copy - // [59] phi (byte) bb#27 = (byte) 0 [phi:f0::@19->fa#3] -- vbuz1=vbuc1 + // [59] phi (byte) bd#137 = (byte) bd#93 [phi:f0::@19->fa#0] -- register_copy + // [59] phi (byte) bc#39 = (byte) bc#71 [phi:f0::@19->fa#1] -- register_copy + // [59] phi (byte) bb#27 = (byte) 0 [phi:f0::@19->fa#2] -- vbuz1=vbuc1 lda #0 sta.z bb_1 jsr fa // [57] phi from f0::@19 to f0::@return [phi:f0::@19->f0::@return] - // [57] phi (byte) be#13 = (byte) be#24 [phi:f0::@19->f0::@return#0] -- register_copy - // [57] phi (byte) bd#13 = (byte) bd#24 [phi:f0::@19->f0::@return#1] -- register_copy - // [57] phi (byte) bc#13 = (byte) bc#24 [phi:f0::@19->f0::@return#2] -- register_copy - // [57] phi (byte) bb#13 = (byte) 0 [phi:f0::@19->f0::@return#3] -- vbuz1=vbuc1 + // [57] phi (byte) bd#13 = (byte) bd#24 [phi:f0::@19->f0::@return#0] -- register_copy + // [57] phi (byte) bc#13 = (byte) bc#24 [phi:f0::@19->f0::@return#1] -- register_copy + // [57] phi (byte) bb#13 = (byte) 0 [phi:f0::@19->f0::@return#2] -- vbuz1=vbuc1 lda #0 sta.z bb rts // [57] phi from f0::@9 to f0::@return [phi:f0::@9->f0::@return] - // [57] phi (byte) be#13 = (byte) be#105 [phi:f0::@9->f0::@return#0] -- register_copy - // [57] phi (byte) bd#13 = (byte) bd#93 [phi:f0::@9->f0::@return#1] -- register_copy - // [57] phi (byte) bc#13 = (byte) bc#71 [phi:f0::@9->f0::@return#2] -- register_copy - // [57] phi (byte) bb#13 = (byte) bb#50 [phi:f0::@9->f0::@return#3] -- register_copy + // [57] phi (byte) bd#13 = (byte) bd#93 [phi:f0::@9->f0::@return#0] -- register_copy + // [57] phi (byte) bc#13 = (byte) bc#71 [phi:f0::@9->f0::@return#1] -- register_copy + // [57] phi (byte) bb#13 = (byte) bb#50 [phi:f0::@9->f0::@return#2] -- register_copy // f0::@return __breturn: // } @@ -6689,14 +5706,12 @@ fa: { // fb() // [63] call fb // [110] phi from fa::@10 to fb [phi:fa::@10->fb] - // [110] phi (byte) be#118 = (byte) be#107 [phi:fa::@10->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#137 [phi:fa::@10->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#172 [phi:fa::@10->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#137 [phi:fa::@10->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#172 [phi:fa::@10->fb#1] -- register_copy jsr fb // [64] phi from fa fa::@10 to fa::@1 [phi:fa/fa::@10->fa::@1] - // [64] phi (byte) be#108 = (byte) be#107 [phi:fa/fa::@10->fa::@1#0] -- register_copy - // [64] phi (byte) bd#138 = (byte) bd#137 [phi:fa/fa::@10->fa::@1#1] -- register_copy - // [64] phi (byte) bc#40 = (byte) bc#39 [phi:fa/fa::@10->fa::@1#2] -- register_copy + // [64] phi (byte) bd#138 = (byte) bd#137 [phi:fa/fa::@10->fa::@1#0] -- register_copy + // [64] phi (byte) bc#40 = (byte) bc#39 [phi:fa/fa::@10->fa::@1#1] -- register_copy // fa::@1 __b1: // if(bb==1) @@ -6713,14 +5728,12 @@ fa: { // fb() // [68] call fb // [110] phi from fa::@11 to fb [phi:fa::@11->fb] - // [110] phi (byte) be#118 = (byte) be#108 [phi:fa::@11->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#138 [phi:fa::@11->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#173 [phi:fa::@11->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#138 [phi:fa::@11->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#173 [phi:fa::@11->fb#1] -- register_copy jsr fb // [69] phi from fa::@1 fa::@11 to fa::@2 [phi:fa::@1/fa::@11->fa::@2] - // [69] phi (byte) be#109 = (byte) be#108 [phi:fa::@1/fa::@11->fa::@2#0] -- register_copy - // [69] phi (byte) bd#139 = (byte) bd#138 [phi:fa::@1/fa::@11->fa::@2#1] -- register_copy - // [69] phi (byte) bc#41 = (byte) bc#40 [phi:fa::@1/fa::@11->fa::@2#2] -- register_copy + // [69] phi (byte) bd#139 = (byte) bd#138 [phi:fa::@1/fa::@11->fa::@2#0] -- register_copy + // [69] phi (byte) bc#41 = (byte) bc#40 [phi:fa::@1/fa::@11->fa::@2#1] -- register_copy // fa::@2 __b2: // if(bb==2) @@ -6737,14 +5750,12 @@ fa: { // fb() // [73] call fb // [110] phi from fa::@12 to fb [phi:fa::@12->fb] - // [110] phi (byte) be#118 = (byte) be#109 [phi:fa::@12->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#139 [phi:fa::@12->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#174 [phi:fa::@12->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#139 [phi:fa::@12->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#174 [phi:fa::@12->fb#1] -- register_copy jsr fb // [74] phi from fa::@12 fa::@2 to fa::@3 [phi:fa::@12/fa::@2->fa::@3] - // [74] phi (byte) be#110 = (byte) be#35 [phi:fa::@12/fa::@2->fa::@3#0] -- register_copy - // [74] phi (byte) bd#140 = (byte) bd#35 [phi:fa::@12/fa::@2->fa::@3#1] -- register_copy - // [74] phi (byte) bc#42 = (byte) bc#106 [phi:fa::@12/fa::@2->fa::@3#2] -- register_copy + // [74] phi (byte) bd#140 = (byte) bd#35 [phi:fa::@12/fa::@2->fa::@3#0] -- register_copy + // [74] phi (byte) bc#42 = (byte) bc#106 [phi:fa::@12/fa::@2->fa::@3#1] -- register_copy // fa::@3 __b3: // if(bb==3) @@ -6761,14 +5772,12 @@ fa: { // fb() // [78] call fb // [110] phi from fa::@13 to fb [phi:fa::@13->fb] - // [110] phi (byte) be#118 = (byte) be#110 [phi:fa::@13->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#140 [phi:fa::@13->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#175 [phi:fa::@13->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#140 [phi:fa::@13->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#175 [phi:fa::@13->fb#1] -- register_copy jsr fb // [79] phi from fa::@13 fa::@3 to fa::@4 [phi:fa::@13/fa::@3->fa::@4] - // [79] phi (byte) be#111 = (byte) be#35 [phi:fa::@13/fa::@3->fa::@4#0] -- register_copy - // [79] phi (byte) bd#141 = (byte) bd#35 [phi:fa::@13/fa::@3->fa::@4#1] -- register_copy - // [79] phi (byte) bc#43 = (byte) bc#107 [phi:fa::@13/fa::@3->fa::@4#2] -- register_copy + // [79] phi (byte) bd#141 = (byte) bd#35 [phi:fa::@13/fa::@3->fa::@4#0] -- register_copy + // [79] phi (byte) bc#43 = (byte) bc#107 [phi:fa::@13/fa::@3->fa::@4#1] -- register_copy // fa::@4 __b4: // if(bb==4) @@ -6785,14 +5794,12 @@ fa: { // fb() // [83] call fb // [110] phi from fa::@14 to fb [phi:fa::@14->fb] - // [110] phi (byte) be#118 = (byte) be#111 [phi:fa::@14->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#141 [phi:fa::@14->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#176 [phi:fa::@14->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#141 [phi:fa::@14->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#176 [phi:fa::@14->fb#1] -- register_copy jsr fb // [84] phi from fa::@14 fa::@4 to fa::@5 [phi:fa::@14/fa::@4->fa::@5] - // [84] phi (byte) be#112 = (byte) be#35 [phi:fa::@14/fa::@4->fa::@5#0] -- register_copy - // [84] phi (byte) bd#100 = (byte) bd#35 [phi:fa::@14/fa::@4->fa::@5#1] -- register_copy - // [84] phi (byte) bc#44 = (byte) bc#108 [phi:fa::@14/fa::@4->fa::@5#2] -- register_copy + // [84] phi (byte) bd#100 = (byte) bd#35 [phi:fa::@14/fa::@4->fa::@5#0] -- register_copy + // [84] phi (byte) bc#44 = (byte) bc#108 [phi:fa::@14/fa::@4->fa::@5#1] -- register_copy // fa::@5 __b5: // if(bb==5) @@ -6809,14 +5816,12 @@ fa: { // fb() // [88] call fb // [110] phi from fa::@15 to fb [phi:fa::@15->fb] - // [110] phi (byte) be#118 = (byte) be#112 [phi:fa::@15->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#100 [phi:fa::@15->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#177 [phi:fa::@15->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#100 [phi:fa::@15->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#177 [phi:fa::@15->fb#1] -- register_copy jsr fb // [89] phi from fa::@15 fa::@5 to fa::@6 [phi:fa::@15/fa::@5->fa::@6] - // [89] phi (byte) be#113 = (byte) be#35 [phi:fa::@15/fa::@5->fa::@6#0] -- register_copy - // [89] phi (byte) bd#101 = (byte) bd#35 [phi:fa::@15/fa::@5->fa::@6#1] -- register_copy - // [89] phi (byte) bc#45 = (byte) bc#109 [phi:fa::@15/fa::@5->fa::@6#2] -- register_copy + // [89] phi (byte) bd#101 = (byte) bd#35 [phi:fa::@15/fa::@5->fa::@6#0] -- register_copy + // [89] phi (byte) bc#45 = (byte) bc#109 [phi:fa::@15/fa::@5->fa::@6#1] -- register_copy // fa::@6 __b6: // if(bb==6) @@ -6833,14 +5838,12 @@ fa: { // fb() // [93] call fb // [110] phi from fa::@16 to fb [phi:fa::@16->fb] - // [110] phi (byte) be#118 = (byte) be#113 [phi:fa::@16->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#101 [phi:fa::@16->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#178 [phi:fa::@16->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#101 [phi:fa::@16->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#178 [phi:fa::@16->fb#1] -- register_copy jsr fb // [94] phi from fa::@16 fa::@6 to fa::@7 [phi:fa::@16/fa::@6->fa::@7] - // [94] phi (byte) be#114 = (byte) be#35 [phi:fa::@16/fa::@6->fa::@7#0] -- register_copy - // [94] phi (byte) bd#102 = (byte) bd#35 [phi:fa::@16/fa::@6->fa::@7#1] -- register_copy - // [94] phi (byte) bc#46 = (byte) bc#110 [phi:fa::@16/fa::@6->fa::@7#2] -- register_copy + // [94] phi (byte) bd#102 = (byte) bd#35 [phi:fa::@16/fa::@6->fa::@7#0] -- register_copy + // [94] phi (byte) bc#46 = (byte) bc#110 [phi:fa::@16/fa::@6->fa::@7#1] -- register_copy // fa::@7 __b7: // if(bb==7) @@ -6857,14 +5860,12 @@ fa: { // fb() // [98] call fb // [110] phi from fa::@17 to fb [phi:fa::@17->fb] - // [110] phi (byte) be#118 = (byte) be#114 [phi:fa::@17->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#102 [phi:fa::@17->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#179 [phi:fa::@17->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#102 [phi:fa::@17->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#179 [phi:fa::@17->fb#1] -- register_copy jsr fb // [99] phi from fa::@17 fa::@7 to fa::@8 [phi:fa::@17/fa::@7->fa::@8] - // [99] phi (byte) be#115 = (byte) be#35 [phi:fa::@17/fa::@7->fa::@8#0] -- register_copy - // [99] phi (byte) bd#103 = (byte) bd#35 [phi:fa::@17/fa::@7->fa::@8#1] -- register_copy - // [99] phi (byte) bc#47 = (byte) bc#111 [phi:fa::@17/fa::@7->fa::@8#2] -- register_copy + // [99] phi (byte) bd#103 = (byte) bd#35 [phi:fa::@17/fa::@7->fa::@8#0] -- register_copy + // [99] phi (byte) bc#47 = (byte) bc#111 [phi:fa::@17/fa::@7->fa::@8#1] -- register_copy // fa::@8 __b8: // if(bb==8) @@ -6881,14 +5882,12 @@ fa: { // fb() // [103] call fb // [110] phi from fa::@18 to fb [phi:fa::@18->fb] - // [110] phi (byte) be#118 = (byte) be#115 [phi:fa::@18->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#103 [phi:fa::@18->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) bc#180 [phi:fa::@18->fb#2] -- register_copy + // [110] phi (byte) bd#106 = (byte) bd#103 [phi:fa::@18->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) bc#180 [phi:fa::@18->fb#1] -- register_copy jsr fb // [104] phi from fa::@18 fa::@8 to fa::@9 [phi:fa::@18/fa::@8->fa::@9] - // [104] phi (byte) be#116 = (byte) be#35 [phi:fa::@18/fa::@8->fa::@9#0] -- register_copy - // [104] phi (byte) bd#104 = (byte) bd#35 [phi:fa::@18/fa::@8->fa::@9#1] -- register_copy - // [104] phi (byte) bc#83 = (byte) bc#112 [phi:fa::@18/fa::@8->fa::@9#2] -- register_copy + // [104] phi (byte) bd#104 = (byte) bd#35 [phi:fa::@18/fa::@8->fa::@9#0] -- register_copy + // [104] phi (byte) bc#83 = (byte) bc#112 [phi:fa::@18/fa::@8->fa::@9#1] -- register_copy // fa::@9 __b9: // if(bb==9) @@ -6901,22 +5900,19 @@ fa: { // fb() // [107] call fb // [110] phi from fa::@19 to fb [phi:fa::@19->fb] - // [110] phi (byte) be#118 = (byte) be#116 [phi:fa::@19->fb#0] -- register_copy - // [110] phi (byte) bd#106 = (byte) bd#104 [phi:fa::@19->fb#1] -- register_copy - // [110] phi (byte) bc#113 = (byte) 0 [phi:fa::@19->fb#2] -- vbuz1=vbuc1 + // [110] phi (byte) bd#106 = (byte) bd#104 [phi:fa::@19->fb#0] -- register_copy + // [110] phi (byte) bc#113 = (byte) 0 [phi:fa::@19->fb#1] -- vbuz1=vbuc1 lda #0 sta.z bc jsr fb // [108] phi from fa::@19 to fa::@return [phi:fa::@19->fa::@return] - // [108] phi (byte) be#24 = (byte) be#35 [phi:fa::@19->fa::@return#0] -- register_copy - // [108] phi (byte) bd#24 = (byte) bd#35 [phi:fa::@19->fa::@return#1] -- register_copy - // [108] phi (byte) bc#24 = (byte) 0 [phi:fa::@19->fa::@return#2] -- vbuxx=vbuc1 + // [108] phi (byte) bd#24 = (byte) bd#35 [phi:fa::@19->fa::@return#0] -- register_copy + // [108] phi (byte) bc#24 = (byte) 0 [phi:fa::@19->fa::@return#1] -- vbuxx=vbuc1 ldx #0 rts // [108] phi from fa::@9 to fa::@return [phi:fa::@9->fa::@return] - // [108] phi (byte) be#24 = (byte) be#116 [phi:fa::@9->fa::@return#0] -- register_copy - // [108] phi (byte) bd#24 = (byte) bd#104 [phi:fa::@9->fa::@return#1] -- register_copy - // [108] phi (byte) bc#24 = (byte) bc#83 [phi:fa::@9->fa::@return#2] -- register_copy + // [108] phi (byte) bd#24 = (byte) bd#104 [phi:fa::@9->fa::@return#0] -- register_copy + // [108] phi (byte) bc#24 = (byte) bc#83 [phi:fa::@9->fa::@return#1] -- register_copy // fa::@return __breturn: // } @@ -6939,12 +5935,10 @@ fb: { // fc() // [114] call fc // [161] phi from fb::@10 to fc [phi:fb::@10->fc] - // [161] phi (byte) be#129 = (byte) be#118 [phi:fb::@10->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#235 [phi:fb::@10->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#235 [phi:fb::@10->fc#0] -- register_copy jsr fc // [115] phi from fb fb::@10 to fb::@1 [phi:fb/fb::@10->fb::@1] - // [115] phi (byte) be#119 = (byte) be#118 [phi:fb/fb::@10->fb::@1#0] -- register_copy - // [115] phi (byte) bd#107 = (byte) bd#106 [phi:fb/fb::@10->fb::@1#1] -- register_copy + // [115] phi (byte) bd#107 = (byte) bd#106 [phi:fb/fb::@10->fb::@1#0] -- register_copy // fb::@1 __b1: // if(bc==1) @@ -6961,12 +5955,10 @@ fb: { // fc() // [119] call fc // [161] phi from fb::@11 to fc [phi:fb::@11->fc] - // [161] phi (byte) be#129 = (byte) be#119 [phi:fb::@11->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#236 [phi:fb::@11->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#236 [phi:fb::@11->fc#0] -- register_copy jsr fc // [120] phi from fb::@1 fb::@11 to fb::@2 [phi:fb::@1/fb::@11->fb::@2] - // [120] phi (byte) be#120 = (byte) be#119 [phi:fb::@1/fb::@11->fb::@2#0] -- register_copy - // [120] phi (byte) bd#108 = (byte) bd#107 [phi:fb::@1/fb::@11->fb::@2#1] -- register_copy + // [120] phi (byte) bd#108 = (byte) bd#107 [phi:fb::@1/fb::@11->fb::@2#0] -- register_copy // fb::@2 __b2: // if(bc==2) @@ -6983,12 +5975,10 @@ fb: { // fc() // [124] call fc // [161] phi from fb::@12 to fc [phi:fb::@12->fc] - // [161] phi (byte) be#129 = (byte) be#120 [phi:fb::@12->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#237 [phi:fb::@12->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#237 [phi:fb::@12->fc#0] -- register_copy jsr fc // [125] phi from fb::@12 fb::@2 to fb::@3 [phi:fb::@12/fb::@2->fb::@3] - // [125] phi (byte) be#121 = (byte) be#46 [phi:fb::@12/fb::@2->fb::@3#0] -- register_copy - // [125] phi (byte) bd#109 = (byte) bd#148 [phi:fb::@12/fb::@2->fb::@3#1] -- register_copy + // [125] phi (byte) bd#109 = (byte) bd#148 [phi:fb::@12/fb::@2->fb::@3#0] -- register_copy // fb::@3 __b3: // if(bc==3) @@ -7005,12 +5995,10 @@ fb: { // fc() // [129] call fc // [161] phi from fb::@13 to fc [phi:fb::@13->fc] - // [161] phi (byte) be#129 = (byte) be#121 [phi:fb::@13->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#238 [phi:fb::@13->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#238 [phi:fb::@13->fc#0] -- register_copy jsr fc // [130] phi from fb::@13 fb::@3 to fb::@4 [phi:fb::@13/fb::@3->fb::@4] - // [130] phi (byte) be#122 = (byte) be#46 [phi:fb::@13/fb::@3->fb::@4#0] -- register_copy - // [130] phi (byte) bd#110 = (byte) bd#149 [phi:fb::@13/fb::@3->fb::@4#1] -- register_copy + // [130] phi (byte) bd#110 = (byte) bd#149 [phi:fb::@13/fb::@3->fb::@4#0] -- register_copy // fb::@4 __b4: // if(bc==4) @@ -7027,12 +6015,10 @@ fb: { // fc() // [134] call fc // [161] phi from fb::@14 to fc [phi:fb::@14->fc] - // [161] phi (byte) be#129 = (byte) be#122 [phi:fb::@14->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#239 [phi:fb::@14->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#239 [phi:fb::@14->fc#0] -- register_copy jsr fc // [135] phi from fb::@14 fb::@4 to fb::@5 [phi:fb::@14/fb::@4->fb::@5] - // [135] phi (byte) be#123 = (byte) be#46 [phi:fb::@14/fb::@4->fb::@5#0] -- register_copy - // [135] phi (byte) bd#111 = (byte) bd#150 [phi:fb::@14/fb::@4->fb::@5#1] -- register_copy + // [135] phi (byte) bd#111 = (byte) bd#150 [phi:fb::@14/fb::@4->fb::@5#0] -- register_copy // fb::@5 __b5: // if(bc==5) @@ -7049,12 +6035,10 @@ fb: { // fc() // [139] call fc // [161] phi from fb::@15 to fc [phi:fb::@15->fc] - // [161] phi (byte) be#129 = (byte) be#123 [phi:fb::@15->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#240 [phi:fb::@15->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#240 [phi:fb::@15->fc#0] -- register_copy jsr fc // [140] phi from fb::@15 fb::@5 to fb::@6 [phi:fb::@15/fb::@5->fb::@6] - // [140] phi (byte) be#124 = (byte) be#46 [phi:fb::@15/fb::@5->fb::@6#0] -- register_copy - // [140] phi (byte) bd#112 = (byte) bd#151 [phi:fb::@15/fb::@5->fb::@6#1] -- register_copy + // [140] phi (byte) bd#112 = (byte) bd#151 [phi:fb::@15/fb::@5->fb::@6#0] -- register_copy // fb::@6 __b6: // if(bc==6) @@ -7071,12 +6055,10 @@ fb: { // fc() // [144] call fc // [161] phi from fb::@16 to fc [phi:fb::@16->fc] - // [161] phi (byte) be#129 = (byte) be#124 [phi:fb::@16->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#241 [phi:fb::@16->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#241 [phi:fb::@16->fc#0] -- register_copy jsr fc // [145] phi from fb::@16 fb::@6 to fb::@7 [phi:fb::@16/fb::@6->fb::@7] - // [145] phi (byte) be#125 = (byte) be#46 [phi:fb::@16/fb::@6->fb::@7#0] -- register_copy - // [145] phi (byte) bd#113 = (byte) bd#152 [phi:fb::@16/fb::@6->fb::@7#1] -- register_copy + // [145] phi (byte) bd#113 = (byte) bd#152 [phi:fb::@16/fb::@6->fb::@7#0] -- register_copy // fb::@7 __b7: // if(bc==7) @@ -7093,12 +6075,10 @@ fb: { // fc() // [149] call fc // [161] phi from fb::@17 to fc [phi:fb::@17->fc] - // [161] phi (byte) be#129 = (byte) be#125 [phi:fb::@17->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#242 [phi:fb::@17->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#242 [phi:fb::@17->fc#0] -- register_copy jsr fc // [150] phi from fb::@17 fb::@7 to fb::@8 [phi:fb::@17/fb::@7->fb::@8] - // [150] phi (byte) be#126 = (byte) be#46 [phi:fb::@17/fb::@7->fb::@8#0] -- register_copy - // [150] phi (byte) bd#114 = (byte) bd#153 [phi:fb::@17/fb::@7->fb::@8#1] -- register_copy + // [150] phi (byte) bd#114 = (byte) bd#153 [phi:fb::@17/fb::@7->fb::@8#0] -- register_copy // fb::@8 __b8: // if(bc==8) @@ -7115,12 +6095,10 @@ fb: { // fc() // [154] call fc // [161] phi from fb::@18 to fc [phi:fb::@18->fc] - // [161] phi (byte) be#129 = (byte) be#126 [phi:fb::@18->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) bd#243 [phi:fb::@18->fc#1] -- register_copy + // [161] phi (byte) bd#117 = (byte) bd#243 [phi:fb::@18->fc#0] -- register_copy jsr fc // [155] phi from fb::@18 fb::@8 to fb::@9 [phi:fb::@18/fb::@8->fb::@9] - // [155] phi (byte) be#127 = (byte) be#46 [phi:fb::@18/fb::@8->fb::@9#0] -- register_copy - // [155] phi (byte) bd#116 = (byte) bd#154 [phi:fb::@18/fb::@8->fb::@9#1] -- register_copy + // [155] phi (byte) bd#116 = (byte) bd#154 [phi:fb::@18/fb::@8->fb::@9#0] -- register_copy // fb::@9 __b9: // if(bc==9) @@ -7133,18 +6111,15 @@ fb: { // fc() // [158] call fc // [161] phi from fb::@19 to fc [phi:fb::@19->fc] - // [161] phi (byte) be#129 = (byte) be#127 [phi:fb::@19->fc#0] -- register_copy - // [161] phi (byte) bd#117 = (byte) 0 [phi:fb::@19->fc#1] -- vbuaa=vbuc1 + // [161] phi (byte) bd#117 = (byte) 0 [phi:fb::@19->fc#0] -- vbuaa=vbuc1 lda #0 jsr fc // [159] phi from fb::@19 to fb::@return [phi:fb::@19->fb::@return] - // [159] phi (byte) be#35 = (byte) be#46 [phi:fb::@19->fb::@return#0] -- register_copy - // [159] phi (byte) bd#35 = (byte) 0 [phi:fb::@19->fb::@return#1] -- vbuyy=vbuc1 + // [159] phi (byte) bd#35 = (byte) 0 [phi:fb::@19->fb::@return#0] -- vbuyy=vbuc1 ldy #0 rts // [159] phi from fb::@9 to fb::@return [phi:fb::@9->fb::@return] - // [159] phi (byte) be#35 = (byte) be#127 [phi:fb::@9->fb::@return#0] -- register_copy - // [159] phi (byte) bd#35 = (byte) bd#116 [phi:fb::@9->fb::@return#1] -- register_copy + // [159] phi (byte) bd#35 = (byte) bd#116 [phi:fb::@9->fb::@return#0] -- register_copy // fb::@return __breturn: // } @@ -7156,128 +6131,65 @@ fc: { // if(bd==0) // [162] if((byte) bd#117!=(byte) 0) goto fc::@1 -- vbuaa_neq_0_then_la1 cmp #0 - bne __b1 + // [163] phi from fc to fc::@10 [phi:fc->fc::@10] // fc::@10 - // be++; - // [163] (byte) be#36 ← ++ (byte) be#129 -- vbuz1=_inc_vbuz1 - inc.z be - // [164] phi from fc fc::@10 to fc::@1 [phi:fc/fc::@10->fc::@1] - // [164] phi (byte) be#130 = (byte) be#129 [phi:fc/fc::@10->fc::@1#0] -- register_copy // fc::@1 - __b1: // if(bd==1) - // [165] if((byte) bd#117!=(byte) 1) goto fc::@2 -- vbuaa_neq_vbuc1_then_la1 + // [164] if((byte) bd#117!=(byte) 1) goto fc::@2 -- vbuaa_neq_vbuc1_then_la1 cmp #1 - bne __b2 + // [165] phi from fc::@1 to fc::@11 [phi:fc::@1->fc::@11] // fc::@11 - // be++; - // [166] (byte) be#37 ← ++ (byte) be#130 -- vbuz1=_inc_vbuz1 - inc.z be - // [167] phi from fc::@1 fc::@11 to fc::@2 [phi:fc::@1/fc::@11->fc::@2] - // [167] phi (byte) be#131 = (byte) be#130 [phi:fc::@1/fc::@11->fc::@2#0] -- register_copy // fc::@2 - __b2: // if(bd==2) - // [168] if((byte) bd#117!=(byte) 2) goto fc::@3 -- vbuaa_neq_vbuc1_then_la1 + // [166] if((byte) bd#117!=(byte) 2) goto fc::@3 -- vbuaa_neq_vbuc1_then_la1 cmp #2 - bne __b3 + // [167] phi from fc::@2 to fc::@12 [phi:fc::@2->fc::@12] // fc::@12 - // be++; - // [169] (byte) be#38 ← ++ (byte) be#131 -- vbuz1=_inc_vbuz1 - inc.z be - // [170] phi from fc::@12 fc::@2 to fc::@3 [phi:fc::@12/fc::@2->fc::@3] - // [170] phi (byte) be#132 = (byte) be#38 [phi:fc::@12/fc::@2->fc::@3#0] -- register_copy // fc::@3 - __b3: // if(bd==3) - // [171] if((byte) bd#117!=(byte) 3) goto fc::@4 -- vbuaa_neq_vbuc1_then_la1 + // [168] if((byte) bd#117!=(byte) 3) goto fc::@4 -- vbuaa_neq_vbuc1_then_la1 cmp #3 - bne __b4 + // [169] phi from fc::@3 to fc::@13 [phi:fc::@3->fc::@13] // fc::@13 - // be++; - // [172] (byte) be#39 ← ++ (byte) be#132 -- vbuz1=_inc_vbuz1 - inc.z be - // [173] phi from fc::@13 fc::@3 to fc::@4 [phi:fc::@13/fc::@3->fc::@4] - // [173] phi (byte) be#133 = (byte) be#39 [phi:fc::@13/fc::@3->fc::@4#0] -- register_copy // fc::@4 - __b4: // if(bd==4) - // [174] if((byte) bd#117!=(byte) 4) goto fc::@5 -- vbuaa_neq_vbuc1_then_la1 + // [170] if((byte) bd#117!=(byte) 4) goto fc::@5 -- vbuaa_neq_vbuc1_then_la1 cmp #4 - bne __b5 + // [171] phi from fc::@4 to fc::@14 [phi:fc::@4->fc::@14] // fc::@14 - // be++; - // [175] (byte) be#40 ← ++ (byte) be#133 -- vbuz1=_inc_vbuz1 - inc.z be - // [176] phi from fc::@14 fc::@4 to fc::@5 [phi:fc::@14/fc::@4->fc::@5] - // [176] phi (byte) be#134 = (byte) be#40 [phi:fc::@14/fc::@4->fc::@5#0] -- register_copy // fc::@5 - __b5: // if(bd==5) - // [177] if((byte) bd#117!=(byte) 5) goto fc::@6 -- vbuaa_neq_vbuc1_then_la1 + // [172] if((byte) bd#117!=(byte) 5) goto fc::@6 -- vbuaa_neq_vbuc1_then_la1 cmp #5 - bne __b6 + // [173] phi from fc::@5 to fc::@15 [phi:fc::@5->fc::@15] // fc::@15 - // be++; - // [178] (byte) be#41 ← ++ (byte) be#134 -- vbuz1=_inc_vbuz1 - inc.z be - // [179] phi from fc::@15 fc::@5 to fc::@6 [phi:fc::@15/fc::@5->fc::@6] - // [179] phi (byte) be#135 = (byte) be#41 [phi:fc::@15/fc::@5->fc::@6#0] -- register_copy // fc::@6 - __b6: // if(bd==6) - // [180] if((byte) bd#117!=(byte) 6) goto fc::@7 -- vbuaa_neq_vbuc1_then_la1 + // [174] if((byte) bd#117!=(byte) 6) goto fc::@7 -- vbuaa_neq_vbuc1_then_la1 cmp #6 - bne __b7 + // [175] phi from fc::@6 to fc::@16 [phi:fc::@6->fc::@16] // fc::@16 - // be++; - // [181] (byte) be#42 ← ++ (byte) be#135 -- vbuz1=_inc_vbuz1 - inc.z be - // [182] phi from fc::@16 fc::@6 to fc::@7 [phi:fc::@16/fc::@6->fc::@7] - // [182] phi (byte) be#136 = (byte) be#42 [phi:fc::@16/fc::@6->fc::@7#0] -- register_copy // fc::@7 - __b7: // if(bd==7) - // [183] if((byte) bd#117!=(byte) 7) goto fc::@8 -- vbuaa_neq_vbuc1_then_la1 + // [176] if((byte) bd#117!=(byte) 7) goto fc::@8 -- vbuaa_neq_vbuc1_then_la1 cmp #7 - bne __b8 + // [177] phi from fc::@7 to fc::@17 [phi:fc::@7->fc::@17] // fc::@17 - // be++; - // [184] (byte) be#43 ← ++ (byte) be#136 -- vbuz1=_inc_vbuz1 - inc.z be - // [185] phi from fc::@17 fc::@7 to fc::@8 [phi:fc::@17/fc::@7->fc::@8] - // [185] phi (byte) be#137 = (byte) be#43 [phi:fc::@17/fc::@7->fc::@8#0] -- register_copy // fc::@8 - __b8: // if(bd==8) - // [186] if((byte) bd#117!=(byte) 8) goto fc::@9 -- vbuaa_neq_vbuc1_then_la1 + // [178] if((byte) bd#117!=(byte) 8) goto fc::@9 -- vbuaa_neq_vbuc1_then_la1 cmp #8 - bne __b9 + // [179] phi from fc::@8 to fc::@18 [phi:fc::@8->fc::@18] // fc::@18 - // be++; - // [187] (byte) be#44 ← ++ (byte) be#137 -- vbuz1=_inc_vbuz1 - inc.z be - // [188] phi from fc::@18 fc::@8 to fc::@9 [phi:fc::@18/fc::@8->fc::@9] - // [188] phi (byte) be#138 = (byte) be#44 [phi:fc::@18/fc::@8->fc::@9#0] -- register_copy // fc::@9 - __b9: // if(bd==9) - // [189] if((byte) bd#117!=(byte) 9) goto fc::@19 -- vbuaa_neq_vbuc1_then_la1 + // [180] if((byte) bd#117!=(byte) 9) goto fc::@return -- vbuaa_neq_vbuc1_then_la1 cmp #9 - bne __b19 - // [191] phi from fc::@9 to fc::@return [phi:fc::@9->fc::@return] - // [191] phi (byte) be#46 = (byte) 0 [phi:fc::@9->fc::@return#0] -- vbuz1=vbuc1 - lda #0 - sta.z be - rts - // [190] phi from fc::@9 to fc::@19 [phi:fc::@9->fc::@19] + // [181] phi from fc::@9 to fc::@19 [phi:fc::@9->fc::@19] // fc::@19 - __b19: - // [191] phi from fc::@19 to fc::@return [phi:fc::@19->fc::@return] - // [191] phi (byte) be#46 = (byte) be#138 [phi:fc::@19->fc::@return#0] -- register_copy // fc::@return // } - // [192] return + // [182] return rts } // File Data diff --git a/src/test/ref/no-recursion-heavy.sym b/src/test/ref/no-recursion-heavy.sym index 64e387c5c..bf27aac0b 100644 --- a/src/test/ref/no-recursion-heavy.sym +++ b/src/test/ref/no-recursion-heavy.sym @@ -93,7 +93,7 @@ (byte) bd#113 reg byte y 4.0 (byte) bd#114 reg byte y 4.0 (byte) bd#116 reg byte y 3.0 -(byte) bd#117 reg byte a 1.3571428571428568 +(byte) bd#117 reg byte a 1.9999999999999991 (byte) bd#129 reg byte y 2.0 (byte) bd#13 reg byte y 3.75 (byte) bd#130 reg byte y 2.0 @@ -130,60 +130,6 @@ (byte) bd#243 reg byte a 4.0 (byte) bd#35 reg byte y 1.8333333333333335 (byte) bd#93 reg byte y 2.6666666666666665 -(byte) be -(byte) be#100 be zp[1]:6 2.0 -(byte) be#101 be zp[1]:6 2.0 -(byte) be#102 be zp[1]:6 2.0 -(byte) be#103 be zp[1]:6 2.0 -(byte) be#104 be zp[1]:6 2.0 -(byte) be#105 be zp[1]:6 2.6666666666666665 -(byte) be#107 be zp[1]:6 6.0 -(byte) be#108 be zp[1]:6 2.0 -(byte) be#109 be zp[1]:6 2.0 -(byte) be#110 be zp[1]:6 2.0 -(byte) be#111 be zp[1]:6 2.0 -(byte) be#112 be zp[1]:6 2.0 -(byte) be#113 be zp[1]:6 2.0 -(byte) be#114 be zp[1]:6 2.0 -(byte) be#115 be zp[1]:6 2.0 -(byte) be#116 be zp[1]:6 2.6666666666666665 -(byte) be#118 be zp[1]:6 6.0 -(byte) be#119 be zp[1]:6 2.0 -(byte) be#120 be zp[1]:6 2.0 -(byte) be#121 be zp[1]:6 2.0 -(byte) be#122 be zp[1]:6 2.0 -(byte) be#123 be zp[1]:6 2.0 -(byte) be#124 be zp[1]:6 2.0 -(byte) be#125 be zp[1]:6 2.0 -(byte) be#126 be zp[1]:6 2.0 -(byte) be#127 be zp[1]:6 2.6666666666666665 -(byte) be#129 be zp[1]:6 12.0 -(byte) be#13 be zp[1]:6 3.75 -(byte) be#130 be zp[1]:6 4.0 -(byte) be#131 be zp[1]:6 4.0 -(byte) be#132 be zp[1]:6 4.0 -(byte) be#133 be zp[1]:6 4.0 -(byte) be#134 be zp[1]:6 4.0 -(byte) be#135 be zp[1]:6 4.0 -(byte) be#136 be zp[1]:6 4.0 -(byte) be#137 be zp[1]:6 4.0 -(byte) be#138 be zp[1]:6 2.0 -(byte) be#142 be zp[1]:6 2.0 -(byte) be#143 be zp[1]:6 2.0 -(byte) be#144 be zp[1]:6 2.0 -(byte) be#2 be zp[1]:6 3.0 -(byte) be#24 be zp[1]:6 2.0 -(byte) be#35 be zp[1]:6 2.0 -(byte) be#36 be zp[1]:6 4.0 -(byte) be#37 be zp[1]:6 4.0 -(byte) be#38 be zp[1]:6 4.0 -(byte) be#39 be zp[1]:6 4.0 -(byte) be#40 be zp[1]:6 4.0 -(byte) be#41 be zp[1]:6 4.0 -(byte) be#42 be zp[1]:6 4.0 -(byte) be#43 be zp[1]:6 4.0 -(byte) be#44 be zp[1]:6 4.0 -(byte) be#46 be zp[1]:6 1.8333333333333335 (void()) f0() (label) f0::@1 (label) f0::@10 @@ -280,4 +226,3 @@ reg byte x [ bc#83 bc#112 bc#47 bc#111 bc#46 bc#110 bc#45 bc#109 bc#44 bc#108 bc zp[1]:5 [ bc#113 bc#172 bc#173 bc#174 bc#175 bc#176 bc#177 bc#178 bc#179 bc#180 ] reg byte y [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151 bd#111 bd#150 bd#110 bd#149 bd#109 bd#108 bd#107 bd#106 bd#104 bd#103 bd#102 bd#101 bd#100 bd#141 bd#140 bd#139 bd#138 bd#137 bd#93 bd#136 bd#135 bd#134 bd#133 bd#132 bd#131 bd#130 bd#129 bd#2 bd#13 bd#24 bd#35 bd#146 bd#147 bd#148 ] reg byte a [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ] -zp[1]:6 [ be#138 be#44 be#137 be#43 be#136 be#42 be#135 be#41 be#134 be#40 be#133 be#39 be#132 be#38 be#131 be#130 be#129 be#127 be#126 be#125 be#124 be#123 be#122 be#121 be#120 be#119 be#118 be#116 be#115 be#114 be#113 be#112 be#111 be#110 be#109 be#108 be#107 be#105 be#104 be#103 be#102 be#101 be#100 be#144 be#143 be#142 be#2 be#13 be#24 be#35 be#46 be#36 be#37 ]