1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-06-02 00:41:42 +00:00

#815 working on moving control flow graphs into procedure compilation.

This commit is contained in:
jespergravgaard 2023-04-09 23:59:49 +02:00
parent ac96f0b8da
commit dfbeba7805
36 changed files with 611 additions and 605 deletions

View File

@ -152,12 +152,12 @@ public class Program {
return new Graph() {
@Override
public Block getBlock(LabelRef symbol) {
return getProcedureCompilations().stream().map(ProcedureCompilation::getGraph).map(graph -> graph.getBlock(symbol)).filter(Objects::nonNull).findFirst().orElse(null);
return getProcedureCompilations().stream().map(ProcedureCompilation::getGraph).filter(Objects::nonNull).map(graph -> graph.getBlock(symbol)).filter(Objects::nonNull).findFirst().orElse(null);
}
@Override
public List<Block> getAllBlocks() {
return getProcedureCompilations().stream().map(ProcedureCompilation::getGraph).map(ControlFlowGraph::getAllBlocks).flatMap(Collection::stream).collect(Collectors.toUnmodifiableList());
return getProcedureCompilations().stream().map(ProcedureCompilation::getGraph).filter(Objects::nonNull).map(ControlFlowGraph::getAllBlocks).flatMap(Collection::stream).toList();
}
@Override
@ -413,7 +413,7 @@ public class Program {
* Clear index numbers for all statements in the control flow graph.
*/
public void clearStatementIndices() {
getProcedureCompilations().forEach(proc -> proc.getGraph().clearStatementIndices());
getProcedureCompilations().stream().map(ProcedureCompilation::getGraph).filter(Objects::nonNull).forEach(ControlFlowGraph::clearStatementIndices);
}
public SymbolInfos getSymbolInfos() {

View File

@ -26,7 +26,10 @@ public class Pass1AssertProcedureDefined extends Pass1Base {
final ProcedureCompilation procedureCompilation = getProgram().getProcedureCompilation(procedure.getRef());
if(procedureCompilation == null)
throw new CompileError("Error! Function body is never defined: " + procedure.getFullName());
final Graph.Block procedureBlock = procedureCompilation.getGraph().getBlock(procedureLabel.getRef());
final ControlFlowGraph graph = procedureCompilation.getGraph();
if(graph == null)
throw new CompileError("Error! Function body is never defined: " + procedure.getFullName());
final Graph.Block procedureBlock = graph.getBlock(procedureLabel.getRef());
if(procedureBlock == null)
throw new CompileError("Error! Function body is never defined: " + procedure.getFullName());
}

View File

@ -31,27 +31,29 @@ public class Pass1ProcedureInline extends Pass1Base {
private boolean inlineProcedure(ProcedureCompilation procedureCompilation) {
final ControlFlowGraph procedureGraph = procedureCompilation.getGraph();
final List<Graph.Block> procedureBlocks = new ArrayList<>(procedureGraph.getAllBlocks());
ListIterator<Graph.Block> blocksIt = procedureBlocks.listIterator();
while(blocksIt.hasNext()) {
Graph.Block block = blocksIt.next();
List<Statement> blockStatements = block.getStatements();
ListIterator<Statement> statementsIt = blockStatements.listIterator();
while(statementsIt.hasNext()) {
Statement statement = statementsIt.next();
if(statement instanceof StatementCall call) {
ProcedureRef procedureRef = call.getProcedure();
Procedure procedure = getProgramScope().getProcedure(procedureRef);
if(procedure.isDeclaredInline()) {
procedure.setCallingConvention(Procedure.CallingConvention.PHI_CALL);
if(procedure.getInterruptType()!=null) {
throw new CompileError("Error! Interrupts cannot be inlined. "+procedure.getRef().toString());
if(procedureGraph!=null) {
final List<Graph.Block> procedureBlocks = new ArrayList<>(procedureGraph.getAllBlocks());
ListIterator<Graph.Block> blocksIt = procedureBlocks.listIterator();
while(blocksIt.hasNext()) {
Graph.Block block = blocksIt.next();
List<Statement> blockStatements = block.getStatements();
ListIterator<Statement> statementsIt = blockStatements.listIterator();
while(statementsIt.hasNext()) {
Statement statement = statementsIt.next();
if(statement instanceof StatementCall call) {
ProcedureRef procedureRef = call.getProcedure();
Procedure procedure = getProgramScope().getProcedure(procedureRef);
if(procedure.isDeclaredInline()) {
procedure.setCallingConvention(Procedure.CallingConvention.PHI_CALL);
if(procedure.getInterruptType() != null) {
throw new CompileError("Error! Interrupts cannot be inlined. " + procedure.getRef().toString());
}
inlineProcedureCall(call, procedure, statementsIt, block, blocksIt);
// Update the procedure graph
procedureCompilation.setGraph(new ControlFlowGraph(procedureBlocks));
// Exit and restart
return true;
}
inlineProcedureCall(call, procedure, statementsIt, block, blocksIt);
// Update the procedure graph
procedureCompilation.setGraph(new ControlFlowGraph(procedureBlocks));
// Exit and restart
return true;
}
}
}

View File

@ -77,11 +77,11 @@ public class Pass2ConditionalAndOrRewriting extends Pass2SsaOptimization {
if(conditionDefineStatement instanceof StatementAssignment conditionAssignment) {
if(Operators.LOGIC_AND.equals(conditionAssignment.getOperator())) {
// Found if() with logical && condition - rewrite to if(c1) if(c2) { xx }
rewriteLogicAnd(block, conditional, conditionAssignment, getGraph());
rewriteLogicAnd(block, conditional, conditionAssignment, graph);
return conditionVar;
} else if(Operators.LOGIC_OR.equals(conditionAssignment.getOperator())) {
// Found if() with logical || condition - rewrite to if(c1) goto x else if(c2) goto x else goto end, x:{ xx } end:
rewriteLogicOr(block, conditional, conditionAssignment, getGraph());
rewriteLogicOr(block, conditional, conditionAssignment, graph);
return conditionVar;
} else if(Operators.LOGIC_NOT.equals(conditionAssignment.getOperator())) {
// Found if() with logical ! condition - rewrite to if(!c1) goto x else goto end, x:{ xx } end:

View File

@ -682,11 +682,11 @@ Removing unused procedure block __start::@1
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Simple Condition plot::$0 [55] if(plot::x#8<0) goto plot::@return
Simple Condition plot::$5 [75] if(plot::y#8>$c7) goto plot::@return
Simple Condition plot::$3 [76] if(plot::y#8<0) goto plot::@return
Simple Condition plot::$1 [77] if(plot::x#8>$13f) goto plot::@return
Simple Condition plot::$5 [68] if(plot::y#8>$c7) goto plot::@return
Simple Condition plot::$3 [69] if(plot::y#8<0) goto plot::@return
Simple Condition plot::$1 [70] if(plot::x#8>$13f) goto plot::@return
Successful SSA optimization Pass2ConditionalJumpSimplification
Rewriting conditional comparison [75] if(plot::y#8>$c7) goto plot::@return
Rewriting conditional comparison [68] if(plot::y#8>$c7) goto plot::@return
Adding number conversion cast (snumber) $c7+1 in if(plot::y#8>=$c7+1) goto plot::@return
Adding number conversion cast (snumber) 1 in if(plot::y#8>=(snumber)$c7+1) goto plot::@return
Successful SSA optimization PassNAddNumberTypeConversions

View File

@ -1360,7 +1360,7 @@ Alias bitmap_init::$7 = bitmap_init::$3
Alias bitmap_clear::col#0 = bitmap_clear::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition bitmap_line::$4 [43] if(bitmap_line::dx#0==0) goto bitmap_line::@20
Simple Condition bitmap_line::$5 [122] if(bitmap_line::dy#0==0) goto bitmap_line::@4
Simple Condition bitmap_line::$5 [83] if(bitmap_line::dy#0==0) goto bitmap_line::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [43] if(bitmap_line::dx#0!=0) goto bitmap_line::@1
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
@ -1374,8 +1374,8 @@ Constant memset::c#0 = bitmap_clear::col#0
Successful SSA optimization Pass2ConstantIdentification
Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0
Successful SSA optimization Pass2NopCastInlining
Inlining Noop Cast [79] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [81] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [80] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [82] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Successful SSA optimization Pass2NopCastInlining
Rewriting division to use shift [49] bitmap_line::e1#0 = bitmap_line::dy#0 / 2
Rewriting division to use shift [50] bitmap_line::e#0 = bitmap_line::dx#0 / 2

View File

@ -1346,7 +1346,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias bitmap_init::$7 = bitmap_init::$3
Successful SSA optimization Pass2AliasElimination
Simple Condition bitmap_line::$4 [44] if(bitmap_line::dx#0==0) goto bitmap_line::@20
Simple Condition bitmap_line::$5 [119] if(bitmap_line::dy#0==0) goto bitmap_line::@4
Simple Condition bitmap_line::$5 [84] if(bitmap_line::dy#0==0) goto bitmap_line::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [44] if(bitmap_line::dx#0!=0) goto bitmap_line::@1
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
@ -1364,8 +1364,8 @@ Constant memset::c#0 = bitmap_clear::col#0
Successful SSA optimization Pass2ConstantIdentification
Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0
Successful SSA optimization Pass2NopCastInlining
Inlining Noop Cast [79] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [81] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [80] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [82] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Successful SSA optimization Pass2NopCastInlining
Rewriting division to use shift [49] bitmap_line::e1#0 = bitmap_line::dy#0 / 2
Rewriting division to use shift [50] bitmap_line::e#0 = bitmap_line::dx#0 / 2

View File

@ -956,11 +956,11 @@ Alias bitmap_clear::col#0 = bitmap_clear::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition main::$5 [62] if(main::x#1==$13f) goto main::@5
Simple Condition main::$10 [66] if(main::y#1==$c7) goto main::@6
Simple Condition main::$6 [90] if(main::x#1==0) goto main::@5
Simple Condition main::$11 [91] if(main::y#1==0) goto main::@6
Simple Condition main::$6 [71] if(main::x#1==0) goto main::@5
Simple Condition main::$11 [72] if(main::y#1==0) goto main::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [90] if(main::x#1!=0) goto main::@3
Negating conditional jump and destination [91] if(main::y#1!=0) goto main::@4
Negating conditional jump and destination [71] if(main::x#1!=0) goto main::@3
Negating conditional jump and destination [72] if(main::y#1!=0) goto main::@4
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [20] bitmap_clear::col#0 = bitmap_clear::fgcol#0 * $10
Constant right-side identified [45] main::toD0181_$0 = main::toD0181_$7 & $3fff

View File

@ -1425,13 +1425,13 @@ Alias bitmap_init::$7 = bitmap_init::$3
Alias bitmap_clear::col#0 = bitmap_clear::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition bitmap_line::$4 [43] if(bitmap_line::dx#0==0) goto bitmap_line::@20
Simple Condition bitmap_line::$5 [133] if(bitmap_line::dy#0==0) goto bitmap_line::@4
Simple Condition bitmap_line::$5 [85] if(bitmap_line::dy#0==0) goto bitmap_line::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [43] if(bitmap_line::dx#0!=0) goto bitmap_line::@1
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [20] bitmap_clear::col#0 = bitmap_clear::fgcol#0 * $10
Constant right-side identified [111] main::toD0181_$0 = main::toD0181_$7 & $3fff
Constant right-side identified [114] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0
Constant right-side identified [112] main::toD0181_$0 = main::toD0181_$7 & $3fff
Constant right-side identified [115] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant bitmap_clear::col#0 = bitmap_clear::fgcol#0*$10
Constant main::toD0181_$0 = main::toD0181_$7&$3fff
@ -1439,26 +1439,26 @@ Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0
Successful SSA optimization Pass2ConstantIdentification
Constant memset::c#0 = bitmap_clear::col#0
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [107] main::toD0181_$1 = main::toD0181_$0 * 4
Constant right-side identified [109] main::toD0181_$4 = main::toD0181_$3 / 4
Constant right-side identified [108] main::toD0181_$1 = main::toD0181_$0 * 4
Constant right-side identified [110] main::toD0181_$4 = main::toD0181_$3 / 4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::toD0181_$1 = main::toD0181_$0*4
Constant main::toD0181_$4 = main::toD0181_$3/4
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [107] main::toD0181_$2 = byte1 main::toD0181_$1
Constant right-side identified [108] main::toD0181_$5 = main::toD0181_$4 & $f
Constant right-side identified [108] main::toD0181_$2 = byte1 main::toD0181_$1
Constant right-side identified [109] main::toD0181_$5 = main::toD0181_$4 & $f
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::toD0181_$2 = byte1 main::toD0181_$1
Constant main::toD0181_$5 = main::toD0181_$4&$f
Successful SSA optimization Pass2ConstantIdentification
Constant right-side identified [107] main::toD0181_return#0 = main::toD0181_$2 | main::toD0181_$5
Constant right-side identified [108] main::toD0181_return#0 = main::toD0181_$2 | main::toD0181_$5
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5
Successful SSA optimization Pass2ConstantIdentification
Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0
Successful SSA optimization Pass2NopCastInlining
Inlining Noop Cast [83] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [85] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [84] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [86] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Successful SSA optimization Pass2NopCastInlining
Rewriting division to use shift [53] bitmap_line::e1#0 = bitmap_line::dy#0 / 2
Rewriting division to use shift [54] bitmap_line::e#0 = bitmap_line::dx#0 / 2

View File

@ -90,7 +90,7 @@ Removing unused procedure block __start::@1
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Adding number conversion cast (unumber) 0 in [4] main::$3 = 0 != main::pos#1
Adding number conversion cast (unumber) 0 in [9] main::$4 = 0 != main::vacant#2
Adding number conversion cast (unumber) 0 in [7] main::$4 = 0 != main::vacant#2
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 0
Simplifying constant integer cast 0

View File

@ -174,10 +174,10 @@ Successful SSA optimization Pass2UnaryNotSimplification
Rewriting || if()-condition to two if()s [16] bool_const_vars::b#0 = bool_const_vars::$8 || false
Rewriting && if()-condition to two if()s [15] bool_const_vars::$8 = bool_const_vars::b1#0 && bool_const_vars::$7
Rewriting || if()-condition to two if()s [10] bool_const_vars::b1#0 = bool_const_vars::$0 || bool_const_vars::$2
Rewriting || if()-condition to two if()s [27] bool_const_inline::$7 = bool_const_inline::$4 || bool_const_inline::$6
Rewriting || if()-condition to two if()s [25] bool_const_inline::$4 = bool_const_inline::$0 || bool_const_inline::$3
Rewriting ! if()-condition to reversed if() [14] bool_const_vars::$7 = ! bool_const_vars::b2#0
Rewriting || if()-condition to two if()s [13] bool_const_vars::b2#0 = bool_const_vars::$4 || bool_const_vars::$5
Rewriting || if()-condition to two if()s [27] bool_const_inline::$7 = bool_const_inline::$4 || bool_const_inline::$6
Rewriting || if()-condition to two if()s [25] bool_const_inline::$4 = bool_const_inline::$0 || bool_const_inline::$3
Rewriting && if()-condition to two if()s [24] bool_const_inline::$3 = bool_const_inline::$1 && bool_const_inline::$2
Successful SSA optimization Pass2ConditionalAndOrRewriting
Constant right-side identified [8] bool_const_vars::$0 = bool_const_vars::a == $f
@ -200,13 +200,13 @@ Constant bool_const_inline::$6 = $15>=bool_const_inline::a
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [4] if(bool_const_if::b) goto bool_const_if::@1
if() condition always false - eliminating [17] if(bool_const_vars::$0) goto bool_const_vars::@4
if() condition always true - replacing block destination [28] if(bool_const_inline::$0) goto bool_const_inline::@1
if() condition always false - eliminating if(false) goto bool_const_vars::@1
if() condition always true - replacing block destination if(bool_const_vars::$4) goto bool_const_vars::@3
if() condition always true - replacing block destination if(bool_const_vars::$2) goto bool_const_vars::@4
if() condition always true - replacing block destination if(bool_const_vars::$5) goto bool_const_vars::@3
if() condition always true - replacing block destination [28] if(bool_const_inline::$0) goto bool_const_inline::@1
if() condition always false - eliminating if(bool_const_inline::$6) goto bool_const_inline::@1
if() condition always true - replacing block destination if(bool_const_inline::$1) goto bool_const_inline::@5
if() condition always true - replacing block destination if(bool_const_vars::$5) goto bool_const_vars::@3
if() condition always false - eliminating if(bool_const_inline::$2) goto bool_const_inline::@1
Successful SSA optimization Pass2ConstantIfs
Simplifying expression containing zero SCREEN in [5] SCREEN[0] = 't'
@ -214,10 +214,10 @@ Simplifying expression containing zero SCREEN in [6] SCREEN[0] = 'f'
Successful SSA optimization PassNSimplifyExpressionWithZero
Removing unused block bool_const_if::@2
Removing unused block bool_const_vars::@1
Removing unused block bool_const_vars::@6
Removing unused block bool_const_inline::@2
Removing unused block bool_const_inline::@3
Removing unused block bool_const_inline::@4
Removing unused block bool_const_vars::@6
Removing unused block bool_const_inline::@5
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused constant bool_const_if::b

View File

@ -331,9 +331,9 @@ Removing unused procedure block __start::@1
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Adding number conversion cast (unumber) $15 in [13] if(bool_and::i#1!=$15) goto bool_and::@1
Adding number conversion cast (unumber) $15 in [23] if(bool_or::i#1!=$15) goto bool_or::@1
Adding number conversion cast (unumber) $15 in [33] if(bool_not::i#1!=$15) goto bool_not::@1
Adding number conversion cast (unumber) $15 in [46] if(bool_complex::i#1!=$15) goto bool_complex::@1
Adding number conversion cast (unumber) $15 in [24] if(bool_or::i#1!=$15) goto bool_or::@1
Adding number conversion cast (unumber) $15 in [35] if(bool_not::i#1!=$15) goto bool_not::@1
Adding number conversion cast (unumber) $15 in [49] if(bool_complex::i#1!=$15) goto bool_complex::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast $15
Simplifying constant integer cast $15
@ -348,18 +348,18 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias bool_complex::$5 = bool_complex::$1
Successful SSA optimization Pass2AliasElimination
Simple Condition bool_and::$0 [9] if(bool_and::i#2<$a) goto bool_and::@5
Simple Condition bool_or::$0 [19] if(bool_or::i#2<$a) goto bool_or::@2
Simple Condition bool_not::$0 [29] if(bool_not::i#2<$a) goto bool_not::@4
Simple Condition bool_complex::$0 [41] if(bool_complex::i#2<$a) goto bool_complex::@6
Simple Condition bool_and::$2 [47] if(bool_and::$1==0) goto bool_and::@2
Simple Condition bool_or::$2 [48] if(bool_or::$1==0) goto bool_or::@2
Simple Condition bool_not::$2 [49] if(bool_not::$1==0) goto bool_not::@4
Simple Condition bool_and::$2 [15] if(bool_and::$1==0) goto bool_and::@2
Simple Condition bool_or::$0 [20] if(bool_or::i#2<$a) goto bool_or::@2
Simple Condition bool_or::$2 [26] if(bool_or::$1==0) goto bool_or::@2
Simple Condition bool_not::$0 [31] if(bool_not::i#2<$a) goto bool_not::@4
Simple Condition bool_not::$2 [37] if(bool_not::$1==0) goto bool_not::@4
Simple Condition bool_complex::$0 [44] if(bool_complex::i#2<$a) goto bool_complex::@6
Simple Condition bool_complex::$4 [50] if(bool_complex::i#2<$a) goto bool_complex::@4
Simple Condition bool_complex::$2 [51] if(bool_complex::$5==0) goto bool_complex::@2
Simple Condition bool_complex::$6 [52] if(bool_complex::$5==0) goto bool_complex::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [9] if(bool_and::i#2>=$a) goto bool_and::@4
Negating conditional jump and destination [41] if(bool_complex::i#2>=$a) goto bool_complex::@5
Negating conditional jump and destination [44] if(bool_complex::i#2>=$a) goto bool_complex::@5
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Inlining constant with var siblings bool_and::i#0
Inlining constant with var siblings bool_or::i#0

View File

@ -340,9 +340,9 @@ Removing unused procedure block __start::@1
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Adding number conversion cast (unumber) $15 in [13] if(bool_and::i#1!=$15) goto bool_and::@1
Adding number conversion cast (unumber) $15 in [23] if(bool_or::i#1!=$15) goto bool_or::@1
Adding number conversion cast (unumber) $15 in [33] if(bool_not::i#1!=$15) goto bool_not::@1
Adding number conversion cast (unumber) $15 in [43] if(bool_complex::i#1!=$15) goto bool_complex::@1
Adding number conversion cast (unumber) $15 in [24] if(bool_or::i#1!=$15) goto bool_or::@1
Adding number conversion cast (unumber) $15 in [35] if(bool_not::i#1!=$15) goto bool_not::@1
Adding number conversion cast (unumber) $15 in [46] if(bool_complex::i#1!=$15) goto bool_complex::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast $15
Simplifying constant integer cast $15
@ -355,11 +355,11 @@ Finalized unsigned number type (char) $15
Finalized unsigned number type (char) $15
Successful SSA optimization PassNFinalizeNumberTypeConversions
Simple Condition bool_and::o1#0 [9] if(bool_and::i#2<$a) goto bool_and::@5
Simple Condition bool_or::o1#0 [19] if(bool_or::i#2<$a) goto bool_or::@2
Simple Condition bool_not::o1#0 [29] if(bool_not::i#2<$a) goto bool_not::@4
Simple Condition bool_and::o2#0 [45] if(bool_and::$1==0) goto bool_and::@2
Simple Condition bool_or::o2#0 [46] if(bool_or::$1==0) goto bool_or::@2
Simple Condition bool_not::o2#0 [47] if(bool_not::$1==0) goto bool_not::@4
Simple Condition bool_and::o2#0 [15] if(bool_and::$1==0) goto bool_and::@2
Simple Condition bool_or::o1#0 [20] if(bool_or::i#2<$a) goto bool_or::@2
Simple Condition bool_or::o2#0 [26] if(bool_or::$1==0) goto bool_or::@2
Simple Condition bool_not::o1#0 [31] if(bool_not::i#2<$a) goto bool_not::@4
Simple Condition bool_not::o2#0 [37] if(bool_not::$1==0) goto bool_not::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [9] if(bool_and::i#2>=$a) goto bool_and::@4
Inlining constant with var siblings bool_and::i#0

View File

@ -2460,26 +2460,26 @@ Identical Phi Values utoa::digit_values#8 utoa::digit_values#1
Identical Phi Values printf_number_buffer::padding#10 printf_number_buffer::padding#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition utoa::$12 [89] if(0!=utoa::started#2) goto utoa::@14
Simple Condition printf_number_buffer::$1 [140] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [145] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [154] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition utoa::$6 [176] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@14
Simple Condition printf_number_buffer::$35 [178] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [179] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [181] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [183] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [184] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition utoa::$6 [103] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@14
Simple Condition printf_number_buffer::$1 [141] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [146] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [155] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [160] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [161] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [163] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [165] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [166] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [140] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [145] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [154] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [179] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [184] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [141] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [146] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [155] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [161] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [166] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [83] utoa::$4 = utoa::max_digits#1 - 1
Constant right-side identified [142] printf_padding::length#0 = (char)printf_number_buffer::padding#0
Constant right-side identified [149] printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant right-side identified [155] printf_padding::length#2 = (char)printf_number_buffer::padding#0
Constant right-side identified [143] printf_padding::length#0 = (char)printf_number_buffer::padding#0
Constant right-side identified [150] printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant right-side identified [156] printf_padding::length#2 = (char)printf_number_buffer::padding#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::$4 = utoa::max_digits#1-1
Constant printf_padding::length#0 = (char)printf_number_buffer::padding#0
@ -2487,14 +2487,14 @@ Constant printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant printf_padding::length#2 = (char)printf_number_buffer::padding#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [18] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always false - eliminating [140] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [145] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [154] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [178] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
if() condition always false - eliminating [179] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [181] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
if() condition always false - eliminating [183] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
if() condition always false - eliminating [184] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
if() condition always false - eliminating [141] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [146] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [155] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [160] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
if() condition always false - eliminating [161] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [163] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
if() condition always false - eliminating [165] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
if() condition always false - eliminating [166] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in
Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in
@ -2543,7 +2543,7 @@ Inlining Noop Cast [43] memcpy::dst#0 = (char *)memcpy::destination#2 keeping me
Inlining Noop Cast [44] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2
Inlining Noop Cast [54] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [56] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [116] printf_sint::uvalue#0 = (unsigned int)printf_sint::value#4 keeping printf_sint::value#4
Inlining Noop Cast [117] printf_sint::uvalue#0 = (unsigned int)printf_sint::value#4 keeping printf_sint::value#4
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift and addition[20] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift [80] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT

View File

@ -2501,10 +2501,10 @@ Successful SSA optimization Pass2ConditionalAndOrRewriting
Warning! Adding boolean cast to non-boolean condition uctoa::started#2
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_zero_padding#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_justify_left#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition main::ch#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Constant right-side identified [175] memcpy::num#0 = (unumber)$19*$28-$28
Constant right-side identified [180] memcpy::num#1 = (unumber)$19*$28-$28
Constant right-side identified [207] conio_c64_init::line#1 = (unumber)$19-1
@ -2666,11 +2666,11 @@ Removing unused block printf_number_buffer::@11
Removing unused block printf_number_buffer::@19
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable memcpy::return#2 and assignment [99] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [101] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [103] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [105] memset::return#3 = memset::str#3
Eliminating unused variable main::return#1 and assignment [220] main::return#1 = main::return#0(null)
Eliminating unused variable memcpy::return#2 and assignment [100] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [102] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [104] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [106] memset::return#3 = memset::str#3
Eliminating unused variable main::return#1 and assignment [230] main::return#1 = main::return#0(null)
Eliminating unused constant BINARY
Eliminating unused constant OCTAL
Eliminating unused constant DECIMAL
@ -2708,10 +2708,10 @@ Adding number conversion cast (unumber) $19+1 in if(gotoxy::y#3<$19+1) goto goto
Adding number conversion cast (unumber) 1 in if(gotoxy::y#3<(unumber)$19+1) goto gotoxy::@1
Adding number conversion cast (unumber) 0 in printf_number_buffer::$33 = 0 != printf_number_buffer::format_zero_padding#0
Adding number conversion cast (unumber) 0 in printf_number_buffer::$34 = 0 != printf_number_buffer::format_justify_left#0
Adding number conversion cast (unumber) 0 in main::$8 = 0 != main::ch#0
Adding number conversion cast (snumber) 0 in printf_number_buffer::$35 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$36 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$37 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (unumber) 0 in main::$8 = 0 != main::ch#0
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 0
Simplifying constant integer cast $19+(unumber)1
@ -2727,10 +2727,10 @@ Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
@ -2741,39 +2741,39 @@ Identical Phi Values gotoxy::x#3 gotoxy::x#2
Identical Phi Values printf_uchar::$2 printf_uchar::$0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition uctoa::$11 [34] if(0!=uctoa::started#2) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [139] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [153] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [162] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition main::$8 [181] if(0!=main::ch#0) goto main::@11
Simple Condition uctoa::$6 [217] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$35 [219] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [220] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [222] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [224] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [225] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition main::$3 [226] if(main::ch#0!=main::current#2) goto main::@2
Simple Condition uctoa::$6 [47] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [140] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [154] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [163] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [168] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [169] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [171] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [173] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [174] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition main::$8 [190] if(0!=main::ch#0) goto main::@11
Simple Condition main::$3 [203] if(main::ch#0!=main::current#2) goto main::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [139] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [153] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [162] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [181] if(0==main::ch#0) goto main::@1
Negating conditional jump and destination [220] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [225] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [140] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [154] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [163] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [169] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [174] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [190] if(0==main::ch#0) goto main::@1
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [29] uctoa::$4 = uctoa::max_digits#2 - 1
Constant right-side identified [166] main::toD0181_$0 = main::toD0181_$7 & $3fff
Constant right-side identified [169] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0
Constant right-side identified [175] main::toD0181_$0 = main::toD0181_$7 & $3fff
Constant right-side identified [178] main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::$4 = uctoa::max_digits#2-1
Constant main::toD0181_$0 = main::toD0181_$7&$3fff
Constant main::toD0181_$3 = byte1 (unsigned int)main::toD0181_gfx#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [71] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always false - eliminating [139] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [153] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [162] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [220] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [225] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
if() condition always true - replacing block destination [72] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always false - eliminating [140] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [154] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [163] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [169] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [174] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConstantIfs
Eliminating variable printf_padding::length#1 from unused block printf_number_buffer::@10
Eliminating variable printf_padding::length#2 from unused block printf_number_buffer::@12
@ -2811,27 +2811,27 @@ Identical Phi Values printf_padding::length#4 printf_padding::length#0
Identical Phi Values printf_padding::pad#5 printf_padding::pad#0
Identical Phi Values printf_padding::putc#5 printf_padding::putc#0
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [147] main::toD0181_$1 = main::toD0181_$0 * 4
Constant right-side identified [149] main::toD0181_$4 = main::toD0181_$3 / 4
Constant right-side identified [149] main::toD0181_$1 = main::toD0181_$0 * 4
Constant right-side identified [151] main::toD0181_$4 = main::toD0181_$3 / 4
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::toD0181_$1 = main::toD0181_$0*4
Constant main::toD0181_$4 = main::toD0181_$3/4
Successful SSA optimization Pass2ConstantIdentification
Replacing constant pointer function [119] callexecute cputc
Replacing constant pointer function [120] callexecute cputc
Successful SSA optimization Pass2ConstantCallPointerIdentification
Eliminating unused constant printf_padding::putc#0
Successful SSA optimization PassNEliminateUnusedVars
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Constant right-side identified [145] main::toD0181_$2 = byte1 main::toD0181_$1
Constant right-side identified [146] main::toD0181_$5 = main::toD0181_$4 & $f
Constant right-side identified [147] main::toD0181_$2 = byte1 main::toD0181_$1
Constant right-side identified [148] main::toD0181_$5 = main::toD0181_$4 & $f
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::toD0181_$2 = byte1 main::toD0181_$1
Constant main::toD0181_$5 = main::toD0181_$4&$f
Successful SSA optimization Pass2ConstantIdentification
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Constant right-side identified [145] main::toD0181_return#0 = main::toD0181_$2 | main::toD0181_$5
Constant right-side identified [147] main::toD0181_return#0 = main::toD0181_$2 | main::toD0181_$5
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant main::toD0181_return#0 = main::toD0181_$2|main::toD0181_$5
Successful SSA optimization Pass2ConstantIdentification
@ -2843,7 +2843,7 @@ Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::sou
Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift and addition[69] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift and addition[70] gotoxy::line_offset#0 = gotoxy::$7 * $28
Inlining constant with var siblings memcpy::destination#0
Inlining constant with var siblings memcpy::source#0
Inlining constant with var siblings memcpy::num#0

View File

@ -285,7 +285,7 @@ Removing unused procedure block __start::@1
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Simple Condition main::$2 [20] if(*RASTER==$36) goto main::@5
Simple Condition main::$3 [27] if(*RASTER==$42) goto main::@5
Simple Condition main::$3 [23] if(*RASTER==$42) goto main::@5
Successful SSA optimization Pass2ConditionalJumpSimplification
Inlining Noop Cast [2] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [4] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3

View File

@ -220,8 +220,8 @@ Successful SSA optimization PassNEliminateEmptyStart
Adding number conversion cast (unumber) 0 in [8] main::$15 = 0 != main::$4
Adding number conversion cast (unumber) 0 in [13] main::$16 = 0 != main::$8
Adding number conversion cast (unumber) 8 in [18] if(main::i#1!=8) goto main::@1
Adding number conversion cast (unumber) 0 in [23] main::$17 = 0 != main::$5
Adding number conversion cast (unumber) 0 in [25] main::$18 = 0 != main::$9
Adding number conversion cast (unumber) 0 in [21] main::$17 = 0 != main::$5
Adding number conversion cast (unumber) 0 in [23] main::$18 = 0 != main::$9
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 0
Simplifying constant integer cast 0

View File

@ -6087,18 +6087,18 @@ Removing PHI-reference to removed block (cscroll::@2) in block gotoxy
Removing unused block cscroll::@2
Removing unused block cscroll::@8
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable memcpy::return#2 and assignment [104] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [106] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [108] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [111] memset::return#3 = memset::str#3
Eliminating unused variable memcpy::return#2 and assignment [105] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [107] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [109] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [112] memset::return#3 = memset::str#3
Eliminating unused variable - keeping the phi block z#41
Eliminating unused variable textcolor::return#2 and assignment [234] textcolor::return#2 = textcolor::return#0
Eliminating unused variable textcolor::return#3 and assignment [237] textcolor::return#3 = textcolor::return#0
Eliminating unused variable textcolor::return#4 and assignment [240] textcolor::return#4 = textcolor::return#0
Eliminating unused variable textcolor::return#5 and assignment [471] textcolor::return#5 = textcolor::return#0
Eliminating unused variable textcolor::return#6 and assignment [474] textcolor::return#6 = textcolor::return#0
Eliminating unused variable textcolor::return#7 and assignment [478] textcolor::return#7 = textcolor::return#0
Eliminating unused variable textcolor::return#8 and assignment [486] textcolor::return#8 = textcolor::return#0
Eliminating unused variable textcolor::return#2 and assignment [236] textcolor::return#2 = textcolor::return#0
Eliminating unused variable textcolor::return#3 and assignment [239] textcolor::return#3 = textcolor::return#0
Eliminating unused variable textcolor::return#4 and assignment [242] textcolor::return#4 = textcolor::return#0
Eliminating unused variable textcolor::return#5 and assignment [473] textcolor::return#5 = textcolor::return#0
Eliminating unused variable textcolor::return#6 and assignment [476] textcolor::return#6 = textcolor::return#0
Eliminating unused variable textcolor::return#7 and assignment [480] textcolor::return#7 = textcolor::return#0
Eliminating unused variable textcolor::return#8 and assignment [488] textcolor::return#8 = textcolor::return#0
Eliminating unused constant utoa::max_digits#0
Eliminating unused constant utoa::digit_values#0
Eliminating unused constant gotoxy::x#1
@ -6113,7 +6113,7 @@ Eliminating unused constant time#22
Eliminating unused constant score#10
Eliminating unused constant conio_scroll_enable
Successful SSA optimization PassNEliminateUnusedVars
Eliminating unused variable textcolor::return#0 and assignment [99] textcolor::return#0 = conio_textcolor
Eliminating unused variable textcolor::return#0 and assignment [100] textcolor::return#0 = conio_textcolor
Eliminating unused constant z#17
Successful SSA optimization PassNEliminateUnusedVars
Adding number conversion cast (unumber) 0 in utoa::$12 = 0 != utoa::started#2
@ -6166,30 +6166,30 @@ Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Alias candidate removed (volatile)chrout::petscii = main::$57
Simple Condition utoa::$12 [42] if(0!=utoa::started#2) goto utoa::@14
Simple Condition random::$0 [161] if(m<random::k#4) goto random::@1
Simple Condition main::$63 [340] if(duck#1>$1fe3) goto main::@25
Simple Condition main::$103 [395] if(*((char *)y#13)!=brick) goto main::@122
Simple Condition main::$173 [469] if(j#19!=$b) goto main::@123
Simple Condition utoa::$6 [483] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Condition not simple random::$1 [484] if(random::$1) goto random::@1
Simple Condition utoa::$6 [56] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Simple Condition random::$0 [162] if(m<random::k#4) goto random::@1
Condition not simple random::$1 [164] if(random::$1) goto random::@1
Introduced intermediate condition variable random::$3 = m
Simple Condition random::$1 [484] if(random::$3>random::n#4) goto random::@1
Simple Condition main::$73 [485] if(*((char *)main::$72)==brick) goto main::@25
Simple Condition main::$70 [486] if(*((char *)main::$69)==brick) goto main::@25
Simple Condition main::$67 [487] if(*((char *)main::$66)==brick) goto main::@25
Simple Condition main::$64 [488] if(*((char *)duck#1)==brick) goto main::@25
Simple Condition main::$115 [489] if(y#13<$1fe3) goto main::@44
Simple Condition main::$113 [490] if(y#13>$1e16) goto main::@118
Simple Condition main::$111 [491] if(*((char *)main::$110)!=brick) goto main::@119
Simple Condition main::$108 [492] if(*((char *)main::$107)!=brick) goto main::@120
Simple Condition main::$105 [493] if(*((char *)main::$104)!=brick) goto main::@121
Simple Condition main::$174 [494] if(j#19!=$1c) goto main::@49
Simple Condition random::$1 [164] if(random::$3>random::n#4) goto random::@1
Simple Condition main::$63 [342] if(duck#1>$1fe3) goto main::@25
Simple Condition main::$103 [397] if(*((char *)y#13)!=brick) goto main::@122
Simple Condition main::$173 [471] if(j#19!=$b) goto main::@123
Simple Condition main::$73 [475] if(*((char *)main::$72)==brick) goto main::@25
Simple Condition main::$70 [476] if(*((char *)main::$69)==brick) goto main::@25
Simple Condition main::$67 [477] if(*((char *)main::$66)==brick) goto main::@25
Simple Condition main::$64 [478] if(*((char *)duck#1)==brick) goto main::@25
Simple Condition main::$115 [479] if(y#13<$1fe3) goto main::@44
Simple Condition main::$113 [480] if(y#13>$1e16) goto main::@118
Simple Condition main::$111 [481] if(*((char *)main::$110)!=brick) goto main::@119
Simple Condition main::$108 [482] if(*((char *)main::$107)!=brick) goto main::@120
Simple Condition main::$105 [483] if(*((char *)main::$104)!=brick) goto main::@121
Simple Condition main::$174 [484] if(j#19!=$1c) goto main::@49
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [395] if(*((char *)y#13)==brick) goto main::@37
Negating conditional jump and destination [469] if(j#19==$b) goto main::@50
Negating conditional jump and destination [489] if(y#13>=$1fe3) goto main::@37
Negating conditional jump and destination [491] if(*((char *)main::$110)==brick) goto main::@37
Negating conditional jump and destination [493] if(*((char *)main::$104)==brick) goto main::@37
Negating conditional jump and destination [397] if(*((char *)y#13)==brick) goto main::@37
Negating conditional jump and destination [471] if(j#19==$b) goto main::@50
Negating conditional jump and destination [479] if(y#13>=$1fe3) goto main::@37
Negating conditional jump and destination [481] if(*((char *)main::$110)==brick) goto main::@37
Negating conditional jump and destination [483] if(*((char *)main::$104)==brick) goto main::@37
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
@ -6201,10 +6201,10 @@ Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift [38] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift and addition[68] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift [201] read_chrono::$0 = m * $100
Rewriting multiplication to use shift and addition[277] main::$26 = 3 * l
Rewriting multiplication to use shift and addition[388] main::$97 = main::$96 * $a
Rewriting multiplication to use shift and addition[69] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift [203] read_chrono::$0 = m * $100
Rewriting multiplication to use shift and addition[279] main::$26 = 3 * l
Rewriting multiplication to use shift and addition[390] main::$97 = main::$96 * $a
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings memcpy::destination#0
Inlining constant with var siblings memcpy::source#0
@ -6422,7 +6422,7 @@ if() condition always true - replacing block destination [17] if($a==DECIMAL) go
if() condition always false - eliminating [18] if($a==HEXADECIMAL) goto utoa::@2
if() condition always false - eliminating [19] if($a==OCTAL) goto utoa::@3
if() condition always false - eliminating [20] if($a==BINARY) goto utoa::@4
if() condition always true - replacing block destination [58] if(0<$28) goto gotoxy::@2
if() condition always true - replacing block destination [59] if(0<$28) goto gotoxy::@2
Successful SSA optimization Pass2ConstantIfs
Eliminating variable utoa::buffer#1 from unused block utoa::@9
Eliminating variable utoa::buffer#2 from unused block utoa::@9

View File

@ -1353,7 +1353,7 @@ Alias bitmap_init::$7 = bitmap_init::$3
Alias bitmap_clear::col#0 = bitmap_clear::$0
Successful SSA optimization Pass2AliasElimination
Simple Condition bitmap_line::$4 [43] if(bitmap_line::dx#0==0) goto bitmap_line::@20
Simple Condition bitmap_line::$5 [132] if(bitmap_line::dy#0==0) goto bitmap_line::@4
Simple Condition bitmap_line::$5 [85] if(bitmap_line::dy#0==0) goto bitmap_line::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [43] if(bitmap_line::dx#0!=0) goto bitmap_line::@1
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
@ -1365,8 +1365,8 @@ Constant memset::c#0 = bitmap_clear::col#0
Successful SSA optimization Pass2ConstantIdentification
Inlining Noop Cast [25] bitmap_plot::plotter#0 = (char *)bitmap_plot::$0 keeping bitmap_plot::plotter#0
Successful SSA optimization Pass2NopCastInlining
Inlining Noop Cast [83] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [85] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [84] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [86] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Successful SSA optimization Pass2NopCastInlining
Rewriting division to use shift [53] bitmap_line::e1#0 = bitmap_line::dy#0 / 2
Rewriting division to use shift [54] bitmap_line::e#0 = bitmap_line::dx#0 / 2

View File

@ -775,7 +775,7 @@ Alias candidate removed (volatile)PLEX_SCREEN_PTR = plexInit::plexSetScreen1_$0
Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2
Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$5
Simple Condition plexSort::$5 [20] if(plexSort::s#1!=$ff) goto plexSort::@7
Simple Condition plexSort::$6 [106] if(plexSort::nxt_y#0<PLEX_YPOS[PLEX_SORTED_IDX[plexSort::s#1]]) goto plexSort::@3
Simple Condition plexSort::$6 [32] if(plexSort::nxt_y#0<PLEX_YPOS[PLEX_SORTED_IDX[plexSort::s#1]]) goto plexSort::@3
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [20] if(plexSort::s#1==$ff) goto plexSort::@4
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
@ -785,9 +785,9 @@ Constant plexInit::plexSetScreen1_$0 = plexInit::screen#0+$3f8
Successful SSA optimization Pass2ConstantIdentification
Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2
Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$5
Rewriting multiplication to use shift [29] plexShowSprite::plex_sprite_idx2#0 = plex_sprite_idx * 2
Rewriting multiplication to use shift [39] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [62] init::$3 = init::sx#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [30] plexShowSprite::plex_sprite_idx2#0 = plex_sprite_idx * 2
Rewriting multiplication to use shift [40] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [63] init::$3 = init::sx#2 * SIZEOF_UNSIGNED_INT
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings plexInit::i#0
Inlining constant with var siblings plexSort::m#0

View File

@ -1245,7 +1245,7 @@ Identical Phi Values utoa::max_digits#7 utoa::max_digits#1
Identical Phi Values utoa::digit_values#8 utoa::digit_values#1
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition utoa::$12 [41] if(0!=utoa::started#2) goto utoa::@14
Simple Condition utoa::$6 [95] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@14
Simple Condition utoa::$6 [55] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@14
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [35] utoa::$4 = utoa::max_digits#1 - 1
Successful SSA optimization Pass2ConstantRValueConsolidation

View File

@ -772,12 +772,12 @@ Alias candidate removed (volatile)PLEX_SCREEN_PTR = plexInit::plexSetScreen1_$0
Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2
Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$5
Simple Condition plexSort::$5 [20] if(plexSort::s#1!=$ff) goto plexSort::@7
Simple Condition plex_irq::$3 [91] if(plex_show_idx<PLEX_COUNT) goto plex_irq::@8
Simple Condition plexSort::$6 [121] if(plexSort::nxt_y#0<PLEX_YPOS[PLEX_SORTED_IDX[plexSort::s#1]]) goto plexSort::@3
Simple Condition plex_irq::$5 [122] if(plex_irq::plexFreeNextYpos1_return#0<plex_irq::$4) goto plex_irq::@3
Simple Condition plexSort::$6 [32] if(plexSort::nxt_y#0<PLEX_YPOS[PLEX_SORTED_IDX[plexSort::s#1]]) goto plexSort::@3
Simple Condition plex_irq::$3 [92] if(plex_show_idx<PLEX_COUNT) goto plex_irq::@8
Simple Condition plex_irq::$5 [101] if(plex_irq::plexFreeNextYpos1_return#0<plex_irq::$4) goto plex_irq::@3
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [20] if(plexSort::s#1==$ff) goto plexSort::@4
Negating conditional jump and destination [91] if(plex_show_idx>=PLEX_COUNT) goto plex_irq::@4
Negating conditional jump and destination [92] if(plex_show_idx>=PLEX_COUNT) goto plex_irq::@4
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [0] plexInit::plexSetScreen1_$0 = plexInit::screen#0 + $3f8
Successful SSA optimization Pass2ConstantRValueConsolidation
@ -785,9 +785,9 @@ Constant plexInit::plexSetScreen1_$0 = plexInit::screen#0+$3f8
Successful SSA optimization Pass2ConstantIdentification
Alias candidate removed (volatile)plex_free_next = plexShowSprite::plexFreeAdd1_$2
Alias candidate removed (volatile)plex_sprite_idx = plexShowSprite::$5
Rewriting multiplication to use shift [29] plexShowSprite::plex_sprite_idx2#0 = plex_sprite_idx * 2
Rewriting multiplication to use shift [39] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [62] init::$3 = init::sx#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [30] plexShowSprite::plex_sprite_idx2#0 = plex_sprite_idx * 2
Rewriting multiplication to use shift [40] plexShowSprite::$10 = plexShowSprite::xpos_idx#0 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [63] init::$3 = init::sx#2 * SIZEOF_UNSIGNED_INT
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings plexInit::i#0
Inlining constant with var siblings plexSort::m#0

View File

@ -976,7 +976,7 @@ Identical Phi Values ultoa::max_digits#7 ultoa::max_digits#1
Identical Phi Values ultoa::digit_values#8 ultoa::digit_values#1
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition ultoa::$12 [34] if(0!=ultoa::started#2) goto ultoa::@14
Simple Condition ultoa::$6 [62] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@14
Simple Condition ultoa::$6 [48] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@14
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [19] memset::end#0 = memset::$4 + memset::num#0
Constant right-side identified [28] ultoa::$4 = ultoa::max_digits#1 - 1
@ -985,7 +985,7 @@ Constant memset::end#0 = memset::$4+memset::num#0
Constant ultoa::$4 = ultoa::max_digits#1-1
Successful SSA optimization Pass2ConstantIdentification
Rewriting multiplication to use shift [27] ultoa::$10 = ultoa::digit#2 * SIZEOF_UNSIGNED_LONG
Rewriting multiplication to use shift and addition[52] print_ulong_decimal::w#0 = main::i#2 * $22b
Rewriting multiplication to use shift and addition[53] print_ulong_decimal::w#0 = main::i#2 * $22b
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings print_str::str#1
Inlining constant with var siblings memset::dst#0

View File

@ -334,11 +334,11 @@ Removing PHI-reference to removed block (SolveMaze::@7) in block SolveMaze::@1
Removing unused block SolveMaze::@7
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable heap_head#0 and assignment [1] heap_head#0 = malloc::mem#0
Eliminating unused variable free::ptr#0 and assignment [24] free::ptr#0 = (void *)main::maze#1
Eliminating unused variable free::ptr#0 and assignment [25] free::ptr#0 = (void *)main::maze#1
Eliminating unused constant SolveMaze::forward#2
Eliminating unused constant main::maze#0
Successful SSA optimization PassNEliminateUnusedVars
Removing call to empty/unused procedure [23] call free
Removing call to empty/unused procedure [24] call free
Removing unused procedure free
Removing unused procedure block free
Removing unused procedure block free::@return
@ -351,7 +351,7 @@ Removing unused procedure block __start::@2
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Simple Condition SolveMaze::$1 [8] if(SolveMaze::x!=SolveMaze::$0) goto SolveMaze::@2
Simple Condition SolveMaze::$3 [24] if(SolveMaze::y!=SolveMaze::$2) goto SolveMaze::@2
Simple Condition SolveMaze::$3 [16] if(SolveMaze::y!=SolveMaze::$2) goto SolveMaze::@2
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [0] malloc::mem#0 = heap_head#15 - malloc::size#0
Constant right-side identified [4] SolveMaze::$0 = SolveMaze::width#0 - 2
@ -374,7 +374,7 @@ Successful SSA optimization Pass2ConstantIdentification
Constant SolveMaze::maze#0 = main::maze#1
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [8] if(SolveMaze::x!=SolveMaze::$0) goto SolveMaze::@2
if() condition always true - replacing block destination [24] if(SolveMaze::y!=SolveMaze::$2) goto SolveMaze::@2
if() condition always true - replacing block destination [16] if(SolveMaze::y!=SolveMaze::$2) goto SolveMaze::@2
Successful SSA optimization Pass2ConstantIfs
Removing unused block SolveMaze::@return
Removing unused block SolveMaze::@8

View File

@ -1492,7 +1492,7 @@ Removing unused block utoa::@4
Removing unused block utoa::@9
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable - keeping the phi block rem8u#19
Eliminating unused variable div16u8u::return#2 and assignment [102] div16u8u::return#2 = div16u8u::return#0
Eliminating unused variable div16u8u::return#2 and assignment [103] div16u8u::return#2 = div16u8u::return#0
Eliminating unused constant BINARY
Eliminating unused constant OCTAL
Eliminating unused constant HEXADECIMAL
@ -1510,19 +1510,19 @@ Eliminating unused constant potential#20
Eliminating unused constant test_idx#14
Eliminating unused constant test_last#16
Successful SSA optimization PassNEliminateUnusedVars
Eliminating unused variable div16u8u::return#0 and assignment [81] div16u8u::return#0 = div16u8u::quotient_hi#0 w= div16u8u::quotient_lo#0
Eliminating unused variable div16u8u::return#0 and assignment [82] div16u8u::return#0 = div16u8u::quotient_hi#0 w= div16u8u::quotient_lo#0
Eliminating unused variable - keeping the phi block rem8u#22
Eliminating unused constant DECIMAL
Eliminating unused constant RADIX_BINARY_VALUES
Eliminating unused constant RADIX_OCTAL_VALUES
Eliminating unused constant RADIX_HEXADECIMAL_VALUES
Successful SSA optimization PassNEliminateUnusedVars
Eliminating unused variable div16u8u::quotient_hi#0 and assignment [74] div16u8u::quotient_hi#0 = divr8u::return#2
Eliminating unused variable div16u8u::quotient_lo#0 and assignment [80] div16u8u::quotient_lo#0 = divr8u::return#3
Eliminating unused variable div16u8u::quotient_hi#0 and assignment [75] div16u8u::quotient_hi#0 = divr8u::return#2
Eliminating unused variable div16u8u::quotient_lo#0 and assignment [81] div16u8u::quotient_lo#0 = divr8u::return#3
Eliminating unused constant rem8u#21
Successful SSA optimization PassNEliminateUnusedVars
Eliminating unused variable divr8u::return#2 and assignment [73] divr8u::return#2 = divr8u::return#0
Eliminating unused variable divr8u::return#3 and assignment [78] divr8u::return#3 = divr8u::return#0
Eliminating unused variable divr8u::return#2 and assignment [74] divr8u::return#2 = divr8u::return#0
Eliminating unused variable divr8u::return#3 and assignment [79] divr8u::return#3 = divr8u::return#0
Successful SSA optimization PassNEliminateUnusedVars
Removing unused procedure __start
Removing unused procedure block __start
@ -1532,7 +1532,7 @@ Removing unused procedure block __start::@2
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Adding number conversion cast (unumber) 0 in [22] utoa::$12 = 0 != utoa::started#2
Adding number conversion cast (unumber) 8 in [65] if(divr8u::i#1!=8) goto divr8u::@1
Adding number conversion cast (unumber) 8 in [66] if(divr8u::i#1!=8) goto divr8u::@1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 0
Simplifying constant integer cast 8
@ -1544,16 +1544,16 @@ Identical Phi Values utoa::max_digits#7 utoa::max_digits#1
Identical Phi Values utoa::digit_values#8 utoa::digit_values#1
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition utoa::$12 [23] if(0!=utoa::started#2) goto utoa::@14
Simple Condition utoa::$6 [111] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@14
Simple Condition utoa::$6 [37] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@14
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant right-side identified [17] utoa::$4 = utoa::max_digits#1 - 1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::$4 = utoa::max_digits#1-1
Successful SSA optimization Pass2ConstantIdentification
Rewriting multiplication to use shift [17] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [77] main::$12 = test_last#13 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [89] main::$13 = test_idx#7 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [99] main::$14 = prime_idx#1 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [78] main::$12 = test_last#13 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [90] main::$13 = test_idx#7 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [100] main::$14 = prime_idx#1 * SIZEOF_UNSIGNED_INT
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings print_str::str#1
Inlining constant with var siblings print_char::ch#1

View File

@ -1279,8 +1279,8 @@ Identical Phi Values gotoxy::x#3 gotoxy::x#2
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition printf_string::$1 [105] if(0==printf_string::format_justify_left#10) goto printf_string::@11
Simple Condition printf_string::$16 [118] if(0!=printf_string::format_justify_left#10) goto printf_string::@12
Simple Condition printf_string::$17 [143] if(0!=printf_string::padding#3) goto printf_string::@5
Simple Condition printf_string::$18 [145] if(0!=printf_string::padding#3) goto printf_string::@6
Simple Condition printf_string::$17 [127] if(0!=printf_string::padding#3) goto printf_string::@5
Simple Condition printf_string::$18 [129] if(0!=printf_string::padding#3) goto printf_string::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [105] if(0!=printf_string::format_justify_left#10) goto printf_string::@2
Negating conditional jump and destination [118] if(0==printf_string::format_justify_left#10) goto printf_string::@return

View File

@ -4545,13 +4545,13 @@ Removing unused block printf_schar::@4
Removing PHI-reference to removed block (printf_uchar::@1) in block printf_uchar::@3
Removing unused block printf_uchar::@1
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable memcpy::return#2 and assignment [208] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [210] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [212] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [214] memset::return#3 = memset::str#3
Eliminating unused variable printf_number_buffer::format_sign_always#3 and assignment [279] printf_number_buffer::format_sign_always#3 = printf_uint::format_sign_always#2
Eliminating unused variable printf_number_buffer::format_radix#3 and assignment [282] printf_number_buffer::format_radix#3 = printf_uint::format_radix#2
Eliminating unused variable strupr::return#2 and assignment [339] strupr::return#2 = strupr::str#0
Eliminating unused variable memcpy::return#2 and assignment [212] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [214] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [216] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [218] memset::return#3 = memset::str#3
Eliminating unused variable printf_number_buffer::format_sign_always#3 and assignment [283] printf_number_buffer::format_sign_always#3 = printf_uint::format_sign_always#2
Eliminating unused variable printf_number_buffer::format_radix#3 and assignment [286] printf_number_buffer::format_radix#3 = printf_uint::format_radix#2
Eliminating unused variable strupr::return#2 and assignment [343] strupr::return#2 = strupr::str#0
Eliminating unused constant utoa::max_digits#0
Eliminating unused constant utoa::digit_values#0
Eliminating unused constant ultoa::max_digits#0
@ -4628,32 +4628,32 @@ Identical Phi Values printf_ulong::$2 printf_ulong::$0
Identical Phi Values printf_uchar::$2 printf_uchar::$0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition toupper::$0 [28] if(toupper::ch#0>='a') goto toupper::@3
Simple Condition utoa::$12 [62] if(0!=utoa::started#2) goto utoa::@14
Simple Condition ultoa::$12 [97] if(0!=ultoa::started#2) goto ultoa::@14
Simple Condition uctoa::$11 [131] if(0!=uctoa::started#2) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [297] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [314] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [327] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25
Simple Condition toupper::$1 [375] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition utoa::$6 [376] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Simple Condition ultoa::$6 [377] if(ultoa::value#3>=ultoa::digit_value#0) goto ultoa::@14
Simple Condition uctoa::$6 [378] if(uctoa::value#3>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$35 [380] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [381] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [383] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [385] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [386] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24
Simple Condition toupper::$1 [32] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition utoa::$12 [63] if(0!=utoa::started#2) goto utoa::@14
Simple Condition utoa::$6 [77] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Simple Condition ultoa::$12 [99] if(0!=ultoa::started#2) goto ultoa::@14
Simple Condition ultoa::$6 [113] if(ultoa::value#3>=ultoa::digit_value#0) goto ultoa::@14
Simple Condition uctoa::$11 [134] if(0!=uctoa::started#2) goto uctoa::@14
Simple Condition uctoa::$6 [147] if(uctoa::value#3>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [301] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [318] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [331] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [339] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [340] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [342] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [344] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [345] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [28] if(toupper::ch#0<'a') goto toupper::@2
Negating conditional jump and destination [297] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
Negating conditional jump and destination [314] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
Negating conditional jump and destination [327] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
Negating conditional jump and destination [381] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
Negating conditional jump and destination [386] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
Negating conditional jump and destination [301] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
Negating conditional jump and destination [318] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
Negating conditional jump and destination [331] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
Negating conditional jump and destination [340] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
Negating conditional jump and destination [345] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [239] printf_slong::value#0 = - printf_slong::value#1
Constant right-side identified [254] printf_sint::value#0 = - printf_sint::value#1
Constant right-side identified [278] printf_schar::value#0 = - printf_schar::value#1
Constant right-side identified [243] printf_slong::value#0 = - printf_slong::value#1
Constant right-side identified [258] printf_sint::value#0 = - printf_sint::value#1
Constant right-side identified [282] printf_schar::value#0 = - printf_schar::value#1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant printf_slong::value#0 = -printf_slong::value#1
Constant printf_sint::value#0 = -printf_sint::value#1
@ -4667,7 +4667,7 @@ Constant ultoa::value#1 = printf_slong::uvalue#0
Constant utoa::value#1 = printf_sint::uvalue#0
Constant uctoa::value#1 = printf_schar::uvalue#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [180] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always true - replacing block destination [184] if(gotoxy::x#2<$28) goto gotoxy::@2
Successful SSA optimization Pass2ConstantIfs
Removing PHI-reference to removed block (gotoxy::@4) in block gotoxy::@2
Removing unused block gotoxy::@4
@ -4685,11 +4685,11 @@ Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping mem
Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2
Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [281] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#10 keeping printf_number_buffer::format_min_length#10
Inlining Noop Cast [285] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#10 keeping printf_number_buffer::format_min_length#10
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift [56] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [89] ultoa::$10 = ultoa::digit#2 * SIZEOF_UNSIGNED_LONG
Rewriting multiplication to use shift and addition[174] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift [57] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [91] ultoa::$10 = ultoa::digit#2 * SIZEOF_UNSIGNED_LONG
Rewriting multiplication to use shift and addition[178] gotoxy::line_offset#0 = gotoxy::$7 * $28
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings memcpy::destination#0
Inlining constant with var siblings memcpy::source#0
@ -5059,9 +5059,9 @@ Identical Phi Values printf_uint::format_zero_padding#2 0
Identical Phi Values printf_uint::format_upper_case#2 0
Identical Phi Values printf_number_buffer::buffer_digits#10 (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [40] utoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant right-side identified [73] ultoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant right-side identified [106] uctoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant right-side identified [41] utoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant right-side identified [75] ultoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant right-side identified [109] uctoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#0 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant ultoa::buffer#0 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
@ -5076,15 +5076,15 @@ Constant printf_str::s#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NU
Constant strupr::str#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [9] if($28<=0) goto memset::@1
if() condition always true - replacing block destination [68] if(DECIMAL==DECIMAL) goto ultoa::@1
if() condition always false - eliminating [69] if(DECIMAL==HEXADECIMAL) goto ultoa::@2
if() condition always false - eliminating [70] if(DECIMAL==OCTAL) goto ultoa::@3
if() condition always false - eliminating [71] if(DECIMAL==BINARY) goto ultoa::@4
if() condition always true - replacing block destination [101] if(DECIMAL==DECIMAL) goto uctoa::@1
if() condition always false - eliminating [102] if(DECIMAL==HEXADECIMAL) goto uctoa::@2
if() condition always false - eliminating [103] if(DECIMAL==OCTAL) goto uctoa::@3
if() condition always false - eliminating [104] if(DECIMAL==BINARY) goto uctoa::@4
if() condition always false - eliminating [242] if(0!=0) goto printf_uint::@1
if() condition always true - replacing block destination [70] if(DECIMAL==DECIMAL) goto ultoa::@1
if() condition always false - eliminating [71] if(DECIMAL==HEXADECIMAL) goto ultoa::@2
if() condition always false - eliminating [72] if(DECIMAL==OCTAL) goto ultoa::@3
if() condition always false - eliminating [73] if(DECIMAL==BINARY) goto ultoa::@4
if() condition always true - replacing block destination [104] if(DECIMAL==DECIMAL) goto uctoa::@1
if() condition always false - eliminating [105] if(DECIMAL==HEXADECIMAL) goto uctoa::@2
if() condition always false - eliminating [106] if(DECIMAL==OCTAL) goto uctoa::@3
if() condition always false - eliminating [107] if(DECIMAL==BINARY) goto uctoa::@4
if() condition always false - eliminating [246] if(0!=0) goto printf_uint::@1
Successful SSA optimization Pass2ConstantIfs
Eliminating variable ultoa::buffer#1 from unused block ultoa::@9
Eliminating variable ultoa::buffer#2 from unused block ultoa::@9
@ -5150,8 +5150,8 @@ Successful SSA optimization Pass2ConstantInlining
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantSimplification
Adding number conversion cast (unumber) 1 in [39] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 1 in [40] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Adding number conversion cast (unumber) 1 in [40] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 1 in [41] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 1
Simplifying constant integer cast 1
@ -5167,9 +5167,9 @@ Identical Phi Values uctoa::max_digits#7 3
Identical Phi Values uctoa::digit_values#8 RADIX_DECIMAL_VALUES_CHAR
Identical Phi Values printf_uint::$2 0
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [40] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Constant right-side identified [69] ultoa::$4 = $a - 1
Constant right-side identified [91] uctoa::$4 = 3 - 1
Constant right-side identified [41] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Constant right-side identified [71] ultoa::$4 = $a - 1
Constant right-side identified [94] uctoa::$4 = 3 - 1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#1 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Constant ultoa::$4 = $a-1
@ -5185,7 +5185,7 @@ Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PR
Successful SSA optimization Pass2ConstantSimplification
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Constant right-side identified [41] utoa::buffer#2 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Constant right-side identified [42] utoa::buffer#2 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#2 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantIdentification

View File

@ -2326,10 +2326,10 @@ Removing unused block printf_number_buffer::@14
Removing unused block printf_number_buffer::@11
Removing unused block printf_number_buffer::@19
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable memcpy::return#2 and assignment [94] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [96] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [98] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [100] memset::return#3 = memset::str#3
Eliminating unused variable memcpy::return#2 and assignment [95] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [97] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [99] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [101] memset::return#3 = memset::str#3
Eliminating unused constant BINARY
Eliminating unused constant OCTAL
Eliminating unused constant HEXADECIMAL
@ -2402,41 +2402,41 @@ Identical Phi Values printf_uchar::$2 printf_uchar::$0
Identical Phi Values printf_number_buffer::padding#10 printf_number_buffer::padding#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition uctoa::$11 [29] if(0!=uctoa::started#2) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [132] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [137] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [146] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition uctoa::$6 [160] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$35 [162] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [163] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [165] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [167] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [168] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition uctoa::$6 [42] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [133] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [138] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [147] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [152] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [153] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [155] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [157] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [158] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [132] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [137] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [146] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [163] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [168] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [133] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [138] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [147] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [153] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [158] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [24] uctoa::$4 = uctoa::max_digits#1 - 1
Constant right-side identified [134] printf_padding::length#0 = (char)printf_number_buffer::padding#0
Constant right-side identified [141] printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant right-side identified [147] printf_padding::length#2 = (char)printf_number_buffer::padding#0
Constant right-side identified [135] printf_padding::length#0 = (char)printf_number_buffer::padding#0
Constant right-side identified [142] printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant right-side identified [148] printf_padding::length#2 = (char)printf_number_buffer::padding#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::$4 = uctoa::max_digits#1-1
Constant printf_padding::length#0 = (char)printf_number_buffer::padding#0
Constant printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant printf_padding::length#2 = (char)printf_number_buffer::padding#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [66] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always false - eliminating [132] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [137] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [146] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [162] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
if() condition always false - eliminating [163] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [165] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
if() condition always false - eliminating [167] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
if() condition always false - eliminating [168] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
if() condition always true - replacing block destination [67] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always false - eliminating [133] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [138] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [147] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [152] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
if() condition always false - eliminating [153] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [155] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
if() condition always false - eliminating [157] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
if() condition always false - eliminating [158] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in
Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in
@ -2488,7 +2488,7 @@ Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::sou
Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift and addition[64] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift and addition[65] gotoxy::line_offset#0 = gotoxy::$7 * $28
Inlining constant with var siblings memcpy::destination#0
Inlining constant with var siblings memcpy::source#0
Inlining constant with var siblings memcpy::num#0

View File

@ -2442,10 +2442,10 @@ Successful SSA optimization Pass2ConditionalAndOrRewriting
Warning! Adding boolean cast to non-boolean condition utoa::started#2
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_zero_padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_justify_left#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::format_justify_left#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Constant right-side identified [105] conio_c64_init::line#1 = (unumber)$19-1
@ -2610,9 +2610,9 @@ Removing unused block printf_string::@7
Removing PHI-reference to removed block (printf_string::@4) in block printf_string::@1
Removing unused block printf_string::@4
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable printf_number_buffer::format_sign_always#0 and assignment [95] printf_number_buffer::format_sign_always#0 = printf_sint::format_sign_always#2
Eliminating unused variable printf_number_buffer::format_radix#0 and assignment [98] printf_number_buffer::format_radix#0 = printf_sint::format_radix#2
Eliminating unused variable strupr::return#2 and assignment [145] strupr::return#2 = strupr::str#0
Eliminating unused variable printf_number_buffer::format_sign_always#0 and assignment [97] printf_number_buffer::format_sign_always#0 = printf_sint::format_sign_always#2
Eliminating unused variable printf_number_buffer::format_radix#0 and assignment [100] printf_number_buffer::format_radix#0 = printf_sint::format_radix#2
Eliminating unused variable strupr::return#2 and assignment [147] strupr::return#2 = strupr::str#0
Eliminating unused constant strlen::str#2
Eliminating unused constant utoa::max_digits#0
Eliminating unused constant utoa::digit_values#0
@ -2630,10 +2630,10 @@ Successful SSA optimization PassNEliminateUnusedVars
Adding number conversion cast (unumber) 0 in utoa::$12 = 0 != utoa::started#2
Adding number conversion cast (unumber) 0 in printf_number_buffer::$33 = 0 != printf_number_buffer::format_zero_padding#10
Adding number conversion cast (unumber) 0 in printf_number_buffer::$34 = 0 != printf_number_buffer::format_justify_left#10
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#0
Adding number conversion cast (snumber) 0 in printf_number_buffer::$35 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$36 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$37 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#0
Adding number conversion cast (snumber) 0 in printf_string::$17 = 0 != printf_string::padding#3
Adding number conversion cast (snumber) 0 in printf_string::$18 = 0 != printf_string::padding#3
Successful SSA optimization PassNAddNumberTypeConversions
@ -2650,53 +2650,53 @@ Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Identical Phi Values strlen::str#5 strlen::str#1
Identical Phi Values printf_uint::$2 printf_uint::$0
Identical Phi Values printf_string::padding#3 printf_string::padding#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition toupper::$0 [8] if(toupper::ch#0>='a') goto toupper::@3
Simple Condition utoa::$12 [42] if(0!=utoa::started#2) goto utoa::@14
Simple Condition printf_number_buffer::$1 [110] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [127] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [140] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25
Simple Condition printf_string::$1 [149] if(0==printf_string::format_justify_left#0) goto printf_string::@11
Simple Condition printf_string::$16 [152] if(0!=printf_string::format_justify_left#0) goto printf_string::@12
Simple Condition toupper::$1 [219] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition utoa::$6 [220] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Simple Condition printf_number_buffer::$35 [222] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [223] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [225] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [227] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [228] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24
Simple Condition printf_string::$17 [230] if(0!=printf_string::padding#0) goto printf_string::@5
Simple Condition printf_string::$18 [232] if(0!=printf_string::padding#0) goto printf_string::@6
Simple Condition toupper::$1 [12] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition utoa::$12 [43] if(0!=utoa::started#2) goto utoa::@14
Simple Condition utoa::$6 [57] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Simple Condition printf_number_buffer::$1 [112] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [129] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [142] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [150] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [151] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [153] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [155] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [156] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24
Simple Condition printf_string::$1 [159] if(0==printf_string::format_justify_left#0) goto printf_string::@11
Simple Condition printf_string::$16 [162] if(0!=printf_string::format_justify_left#0) goto printf_string::@12
Simple Condition printf_string::$17 [169] if(0!=printf_string::padding#0) goto printf_string::@5
Simple Condition printf_string::$18 [171] if(0!=printf_string::padding#0) goto printf_string::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [8] if(toupper::ch#0<'a') goto toupper::@2
Negating conditional jump and destination [110] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
Negating conditional jump and destination [127] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
Negating conditional jump and destination [140] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
Negating conditional jump and destination [149] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
Negating conditional jump and destination [152] if(0==printf_string::format_justify_left#0) goto printf_string::@return
Negating conditional jump and destination [223] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
Negating conditional jump and destination [228] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
Negating conditional jump and destination [112] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
Negating conditional jump and destination [129] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
Negating conditional jump and destination [142] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
Negating conditional jump and destination [151] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
Negating conditional jump and destination [156] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
Negating conditional jump and destination [159] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
Negating conditional jump and destination [162] if(0==printf_string::format_justify_left#0) goto printf_string::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [153] printf_padding::length#3 = (char)printf_string::padding#0
Constant right-side identified [155] printf_padding::length#4 = (char)printf_string::padding#0
Constant right-side identified [163] printf_padding::length#3 = (char)printf_string::padding#0
Constant right-side identified [165] printf_padding::length#4 = (char)printf_string::padding#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant printf_padding::length#3 = (char)printf_string::padding#0
Constant printf_padding::length#4 = (char)printf_string::padding#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [149] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
if() condition always true - replacing block destination [152] if(0==printf_string::format_justify_left#0) goto printf_string::@return
if() condition always false - eliminating [230] if(0!=printf_string::padding#0) goto printf_string::@5
if() condition always false - eliminating [232] if(0!=printf_string::padding#0) goto printf_string::@6
if() condition always false - eliminating [159] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
if() condition always true - replacing block destination [162] if(0==printf_string::format_justify_left#0) goto printf_string::@return
if() condition always false - eliminating [169] if(0!=printf_string::padding#0) goto printf_string::@5
if() condition always false - eliminating [171] if(0!=printf_string::padding#0) goto printf_string::@6
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)printf_string::padding#0 in
Simplifying constant evaluating to zero (char)printf_string::padding#0 in
@ -2722,10 +2722,10 @@ Eliminating unused constant printf_padding::length#4
Eliminating unused constant printf_string::padding#0
Eliminating unused constant printf_string::format_justify_left#0
Successful SSA optimization PassNEliminateUnusedVars
Inlining Noop Cast [82] printf_sint::uvalue#0 = (unsigned int)printf_sint::value#5 keeping printf_sint::value#5
Inlining Noop Cast [110] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#2 keeping printf_number_buffer::format_min_length#2
Inlining Noop Cast [84] printf_sint::uvalue#0 = (unsigned int)printf_sint::value#5 keeping printf_sint::value#5
Inlining Noop Cast [112] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#2 keeping printf_number_buffer::format_min_length#2
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift [35] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [36] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings strlen::len#0
Inlining constant with var siblings utoa::max_digits#1
@ -2901,7 +2901,7 @@ Identical Phi Values printf_number_buffer::buffer_digits#10 (char *)&printf_buff
Identical Phi Values snprintf_init::s#4 BUF
Identical Phi Values print::msg#7 BUF
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [24] utoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant right-side identified [25] utoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#0 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant utoa::radix#0 = DECIMAL
@ -2914,7 +2914,7 @@ Constant strlen::str#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMB
Constant printf_str::s#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant strupr::str#0 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [79] if(0==0) goto printf_sint::@2
if() condition always true - replacing block destination [81] if(0==0) goto printf_sint::@2
Successful SSA optimization Pass2ConstantIfs
Removing PHI-reference to removed block (printf_sint::@4) in block printf_sint::@2
Removing unused block printf_sint::@4
@ -2943,8 +2943,8 @@ Successful SSA optimization Pass2ConstantInlining
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantSimplification
Adding number conversion cast (unumber) 1 in [24] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 1 in [25] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Adding number conversion cast (unumber) 1 in [25] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 1 in [26] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 1
Simplifying constant integer cast 1
@ -2952,7 +2952,7 @@ Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Constant right-side identified [25] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Constant right-side identified [26] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#1 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantIdentification
@ -2962,7 +2962,7 @@ Successful SSA optimization Pass2ConstantInlining
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantSimplification
Constant right-side identified [26] utoa::buffer#2 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Constant right-side identified [27] utoa::buffer#2 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#2 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantIdentification

View File

@ -1268,8 +1268,8 @@ Identical Phi Values gotoxy::x#3 gotoxy::x#2
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition printf_string::$1 [91] if(0==printf_string::format_justify_left#10) goto printf_string::@11
Simple Condition printf_string::$16 [104] if(0!=printf_string::format_justify_left#10) goto printf_string::@12
Simple Condition printf_string::$17 [156] if(0!=printf_string::padding#3) goto printf_string::@5
Simple Condition printf_string::$18 [158] if(0!=printf_string::padding#3) goto printf_string::@6
Simple Condition printf_string::$17 [113] if(0!=printf_string::padding#3) goto printf_string::@5
Simple Condition printf_string::$18 [115] if(0!=printf_string::padding#3) goto printf_string::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [91] if(0!=printf_string::format_justify_left#10) goto printf_string::@2
Negating conditional jump and destination [104] if(0==printf_string::format_justify_left#10) goto printf_string::@return
@ -1458,7 +1458,7 @@ Successful SSA optimization Pass2ConstantRValueConsolidation
Constant printf_padding::length#0 = (char)0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [69] if(printf_padding::i#2<printf_padding::length#0) goto printf_padding::@2
if() condition always false - eliminating [127] if(0!=0) goto printf_string::@5
if() condition always false - eliminating [84] if(0!=0) goto printf_string::@5
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)0 in
Successful SSA optimization PassNSimplifyConstantZero

View File

@ -3027,10 +3027,10 @@ Warning! Adding boolean cast to non-boolean condition utoa::started#2
Warning! Adding boolean cast to non-boolean condition ultoa::started#2
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_zero_padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_justify_left#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::format_justify_left#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Constant right-side identified [168] conio_c64_init::line#1 = (unumber)$19-1
@ -3265,7 +3265,7 @@ Removing unused block printf_string::@7
Removing PHI-reference to removed block (printf_string::@4) in block printf_string::@1
Removing unused block printf_string::@4
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable strupr::return#2 and assignment [168] strupr::return#2 = strupr::str#0
Eliminating unused variable strupr::return#2 and assignment [171] strupr::return#2 = strupr::str#0
Eliminating unused constant strlen::str#2
Eliminating unused constant utoa::max_digits#0
Eliminating unused constant utoa::digit_values#0
@ -3303,10 +3303,10 @@ Adding number conversion cast (unumber) 0 in utoa::$12 = 0 != utoa::started#2
Adding number conversion cast (unumber) 0 in ultoa::$12 = 0 != ultoa::started#2
Adding number conversion cast (unumber) 0 in printf_number_buffer::$33 = 0 != printf_number_buffer::format_zero_padding#10
Adding number conversion cast (unumber) 0 in printf_number_buffer::$34 = 0 != printf_number_buffer::format_justify_left#10
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#0
Adding number conversion cast (snumber) 0 in printf_number_buffer::$35 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$36 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$37 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#0
Adding number conversion cast (snumber) 0 in printf_string::$17 = 0 != printf_string::padding#3
Adding number conversion cast (snumber) 0 in printf_string::$18 = 0 != printf_string::padding#3
Successful SSA optimization PassNAddNumberTypeConversions
@ -3325,12 +3325,12 @@ Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Identical Phi Values strlen::str#5 strlen::str#1
Identical Phi Values ultoa::max_digits#7 ultoa::max_digits#1
@ -3341,38 +3341,38 @@ Identical Phi Values printf_uint::$2 printf_uint::$0
Identical Phi Values printf_string::padding#3 printf_string::padding#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition toupper::$0 [8] if(toupper::ch#0>='a') goto toupper::@3
Simple Condition utoa::$12 [42] if(0!=utoa::started#2) goto utoa::@14
Simple Condition ultoa::$12 [65] if(0!=ultoa::started#2) goto ultoa::@14
Simple Condition printf_number_buffer::$1 [135] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [152] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [165] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25
Simple Condition printf_string::$1 [174] if(0==printf_string::format_justify_left#0) goto printf_string::@11
Simple Condition printf_string::$16 [177] if(0!=printf_string::format_justify_left#0) goto printf_string::@12
Simple Condition toupper::$1 [244] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition utoa::$6 [245] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Simple Condition ultoa::$6 [246] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@14
Simple Condition printf_number_buffer::$35 [248] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [249] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [251] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [253] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [254] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24
Simple Condition printf_string::$17 [256] if(0!=printf_string::padding#0) goto printf_string::@5
Simple Condition printf_string::$18 [258] if(0!=printf_string::padding#0) goto printf_string::@6
Simple Condition toupper::$1 [12] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition utoa::$12 [43] if(0!=utoa::started#2) goto utoa::@14
Simple Condition utoa::$6 [57] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14
Simple Condition ultoa::$12 [67] if(0!=ultoa::started#2) goto ultoa::@14
Simple Condition ultoa::$6 [81] if(ultoa::value#2>=ultoa::digit_value#0) goto ultoa::@14
Simple Condition printf_number_buffer::$1 [138] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [155] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [168] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [176] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [177] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [179] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [181] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [182] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24
Simple Condition printf_string::$1 [185] if(0==printf_string::format_justify_left#0) goto printf_string::@11
Simple Condition printf_string::$16 [188] if(0!=printf_string::format_justify_left#0) goto printf_string::@12
Simple Condition printf_string::$17 [195] if(0!=printf_string::padding#0) goto printf_string::@5
Simple Condition printf_string::$18 [197] if(0!=printf_string::padding#0) goto printf_string::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [8] if(toupper::ch#0<'a') goto toupper::@2
Negating conditional jump and destination [135] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
Negating conditional jump and destination [152] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
Negating conditional jump and destination [165] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
Negating conditional jump and destination [174] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
Negating conditional jump and destination [177] if(0==printf_string::format_justify_left#0) goto printf_string::@return
Negating conditional jump and destination [249] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
Negating conditional jump and destination [254] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
Negating conditional jump and destination [138] if(0!=printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2
Negating conditional jump and destination [155] if(0==printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4
Negating conditional jump and destination [168] if(0==printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return
Negating conditional jump and destination [177] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2
Negating conditional jump and destination [182] if(0!=printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return
Negating conditional jump and destination [185] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
Negating conditional jump and destination [188] if(0==printf_string::format_justify_left#0) goto printf_string::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [59] ultoa::$4 = ultoa::max_digits#1 - 1
Constant right-side identified [110] printf_slong::uvalue#0 = (unsigned long)printf_slong::value#1
Constant right-side identified [118] printf_sint::uvalue#0 = (unsigned int)printf_sint::value#1
Constant right-side identified [178] printf_padding::length#3 = (char)printf_string::padding#0
Constant right-side identified [180] printf_padding::length#4 = (char)printf_string::padding#0
Constant right-side identified [61] ultoa::$4 = ultoa::max_digits#1 - 1
Constant right-side identified [113] printf_slong::uvalue#0 = (unsigned long)printf_slong::value#1
Constant right-side identified [121] printf_sint::uvalue#0 = (unsigned int)printf_sint::value#1
Constant right-side identified [189] printf_padding::length#3 = (char)printf_string::padding#0
Constant right-side identified [191] printf_padding::length#4 = (char)printf_string::padding#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant ultoa::$4 = ultoa::max_digits#1-1
Constant printf_slong::uvalue#0 = (unsigned long)printf_slong::value#1
@ -3383,10 +3383,10 @@ Successful SSA optimization Pass2ConstantIdentification
Constant ultoa::value#1 = printf_slong::uvalue#0
Constant utoa::value#1 = printf_sint::uvalue#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [174] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
if() condition always true - replacing block destination [177] if(0==printf_string::format_justify_left#0) goto printf_string::@return
if() condition always false - eliminating [256] if(0!=printf_string::padding#0) goto printf_string::@5
if() condition always false - eliminating [258] if(0!=printf_string::padding#0) goto printf_string::@6
if() condition always false - eliminating [185] if(0!=printf_string::format_justify_left#0) goto printf_string::@2
if() condition always true - replacing block destination [188] if(0==printf_string::format_justify_left#0) goto printf_string::@return
if() condition always false - eliminating [195] if(0!=printf_string::padding#0) goto printf_string::@5
if() condition always false - eliminating [197] if(0!=printf_string::padding#0) goto printf_string::@6
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)printf_string::padding#0 in
Simplifying constant evaluating to zero (char)printf_string::padding#0 in
@ -3412,10 +3412,10 @@ Eliminating unused constant printf_padding::length#4
Eliminating unused constant printf_string::padding#0
Eliminating unused constant printf_string::format_justify_left#0
Successful SSA optimization PassNEliminateUnusedVars
Inlining Noop Cast [125] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#3 keeping printf_number_buffer::format_min_length#3
Inlining Noop Cast [128] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#3 keeping printf_number_buffer::format_min_length#3
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift [35] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [54] ultoa::$10 = ultoa::digit#2 * SIZEOF_UNSIGNED_LONG
Rewriting multiplication to use shift [36] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift [56] ultoa::$10 = ultoa::digit#2 * SIZEOF_UNSIGNED_LONG
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings strlen::len#0
Inlining constant with var siblings utoa::max_digits#1
@ -3594,7 +3594,7 @@ Identical Phi Values snprintf_init::n#4 $ffff
Identical Phi Values snprintf_init::s#4 BUF
Identical Phi Values print::msg#7 BUF
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [24] utoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant right-side identified [25] utoa::buffer#0 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#0 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Constant strlen::str#1 = (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
@ -3614,8 +3614,8 @@ Successful SSA optimization Pass2ConstantInlining
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS
Successful SSA optimization Pass2ConstantSimplification
Adding number conversion cast (unumber) 1 in [24] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 1 in [25] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Adding number conversion cast (unumber) 1 in [25] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 1 in [26] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 1
Simplifying constant integer cast 1
@ -3623,7 +3623,7 @@ Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 1
Successful SSA optimization PassNFinalizeNumberTypeConversions
Constant right-side identified [25] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Constant right-side identified [26] utoa::buffer#1 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#1 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantIdentification
@ -3633,7 +3633,7 @@ Successful SSA optimization Pass2ConstantInlining
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Successful SSA optimization Pass2ConstantSimplification
Constant right-side identified [26] utoa::buffer#2 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Constant right-side identified [27] utoa::buffer#2 = ++ (char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::buffer#2 = ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantIdentification

View File

@ -2302,12 +2302,12 @@ Removing PHI-reference to removed block (cscroll::@2) in block gotoxy
Removing unused block cscroll::@2
Removing unused block cscroll::@8
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable memcpy::return#2 and assignment [125] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [127] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [129] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [131] memset::return#3 = memset::str#3
Eliminating unused variable printf_number_buffer::format_sign_always#0 and assignment [170] printf_number_buffer::format_sign_always#0 = printf_uchar::format_sign_always#2
Eliminating unused variable printf_number_buffer::format_radix#0 and assignment [173] printf_number_buffer::format_radix#0 = printf_uchar::format_radix#2
Eliminating unused variable memcpy::return#2 and assignment [127] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [129] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [131] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [133] memset::return#3 = memset::str#3
Eliminating unused variable printf_number_buffer::format_sign_always#0 and assignment [172] printf_number_buffer::format_sign_always#0 = printf_uchar::format_sign_always#2
Eliminating unused variable printf_number_buffer::format_radix#0 and assignment [175] printf_number_buffer::format_radix#0 = printf_uchar::format_radix#2
Eliminating unused constant strupr::return#2
Eliminating unused constant uctoa::max_digits#0
Eliminating unused constant uctoa::digit_values#0
@ -2350,30 +2350,30 @@ Identical Phi Values gotoxy::y#3 gotoxy::y#2
Identical Phi Values gotoxy::x#3 gotoxy::x#2
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition toupper::$0 [28] if(toupper::ch#0>='a') goto toupper::@3
Simple Condition uctoa::$11 [60] if(0!=uctoa::started#2) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [174] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [190] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [202] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition toupper::$1 [226] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition uctoa::$6 [227] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$35 [229] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [230] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [232] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [234] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [235] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition toupper::$1 [32] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition uctoa::$11 [61] if(0!=uctoa::started#2) goto uctoa::@14
Simple Condition uctoa::$6 [74] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [176] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [192] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [204] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [211] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [212] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [214] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [216] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [217] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [28] if(toupper::ch#0<'a') goto toupper::@2
Negating conditional jump and destination [174] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [190] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [202] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [230] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [235] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [176] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [192] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [204] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [212] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [217] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [46] uctoa::buffer#0 = ++ uctoa::buffer#5
Constant right-side identified [47] uctoa::buffer#0 = ++ uctoa::buffer#5
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::buffer#0 = ++uctoa::buffer#5
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [97] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always true - replacing block destination [99] if(gotoxy::x#2<$28) goto gotoxy::@2
Successful SSA optimization Pass2ConstantIfs
Removing PHI-reference to removed block (gotoxy::@4) in block gotoxy::@2
Removing unused block gotoxy::@4
@ -2384,13 +2384,13 @@ Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Identical Phi Values gotoxy::x#4 gotoxy::x#2
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [45] uctoa::buffer#1 = ++ uctoa::buffer#0
Constant right-side identified [46] uctoa::buffer#1 = ++ uctoa::buffer#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::buffer#1 = ++uctoa::buffer#0
Successful SSA optimization Pass2ConstantIdentification
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Constant right-side identified [46] uctoa::buffer#2 = ++ uctoa::buffer#1
Constant right-side identified [47] uctoa::buffer#2 = ++ uctoa::buffer#1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::buffer#2 = ++uctoa::buffer#1
Successful SSA optimization Pass2ConstantIdentification
@ -2401,9 +2401,9 @@ Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping mem
Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2
Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [169] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 keeping printf_number_buffer::format_min_length#0
Inlining Noop Cast [171] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 keeping printf_number_buffer::format_min_length#0
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift and addition[92] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift and addition[94] gotoxy::line_offset#0 = gotoxy::$7 * $28
Inlining constant with var siblings memcpy::destination#0
Inlining constant with var siblings memcpy::source#0
Inlining constant with var siblings memcpy::num#0
@ -2541,9 +2541,9 @@ Successful SSA optimization Pass2ConstantSimplification
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantSimplification
Adding number conversion cast (unumber) 1 in [44] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 2 in [45] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r'
Adding number conversion cast (unumber) 3 in [46] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0
Adding number conversion cast (unumber) 1 in [45] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 2 in [46] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r'
Adding number conversion cast (unumber) 3 in [47] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 1
Simplifying constant integer cast 2
@ -2581,27 +2581,27 @@ Constant printf_padding::putc#1 = printf_number_buffer::putc#0
Constant printf_str::putc#0 = printf_number_buffer::putc#0
Constant printf_padding::putc#2 = printf_number_buffer::putc#0
Successful SSA optimization Pass2ConstantIdentification
Constant value identified (signed char)printf_number_buffer::format_min_length#0 in [166] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2
Constant value identified (signed char)printf_number_buffer::format_min_length#0 in [168] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2
Successful SSA optimization Pass2ConstantValues
Replacing constant pointer function [175] callexecute cputc
Replacing constant pointer function [177] callexecute cputc
Successful SSA optimization Pass2ConstantCallPointerIdentification
if() condition always false - eliminating [9] if($28<=0) goto memset::@1
if() condition always true - replacing block destination [34] if(uctoa::radix#0==DECIMAL) goto uctoa::@1
if() condition always false - eliminating [35] if(uctoa::radix#0==HEXADECIMAL) goto uctoa::@2
if() condition always false - eliminating [36] if(uctoa::radix#0==OCTAL) goto uctoa::@3
if() condition always false - eliminating [37] if(uctoa::radix#0==BINARY) goto uctoa::@4
if() condition always false - eliminating [143] if(0!=0) goto printf_uchar::@1
if() condition always true - replacing block destination [157] if(0==printf_number_buffer::format_min_length#0) goto printf_number_buffer::@1
if() condition always false - eliminating [159] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [173] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [177] if(0==printf_number_buffer::format_upper_case#0) goto printf_number_buffer::@5
if() condition always true - replacing block destination [183] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [210] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [213] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
if() condition always true - replacing block destination [35] if(uctoa::radix#0==DECIMAL) goto uctoa::@1
if() condition always false - eliminating [36] if(uctoa::radix#0==HEXADECIMAL) goto uctoa::@2
if() condition always false - eliminating [37] if(uctoa::radix#0==OCTAL) goto uctoa::@3
if() condition always false - eliminating [38] if(uctoa::radix#0==BINARY) goto uctoa::@4
if() condition always false - eliminating [145] if(0!=0) goto printf_uchar::@1
if() condition always true - replacing block destination [159] if(0==printf_number_buffer::format_min_length#0) goto printf_number_buffer::@1
if() condition always false - eliminating [161] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [175] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [179] if(0==printf_number_buffer::format_upper_case#0) goto printf_number_buffer::@5
if() condition always true - replacing block destination [185] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [192] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [195] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in [166] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2
Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in [168] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero printf_number_buffer::len#2 in [166] printf_number_buffer::padding#1 = 0 - printf_number_buffer::len#2
Simplifying expression containing zero printf_number_buffer::len#2 in [168] printf_number_buffer::padding#1 = 0 - printf_number_buffer::len#2
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating variable strlen::str#2 from unused block strlen::@1
Eliminating variable strlen::len#2 from unused block strlen::@1
@ -2717,15 +2717,15 @@ Identical Phi Values printf_uchar::$2 0
Identical Phi Values printf_number_buffer::padding#10 0
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [18] uctoa::$4 = 3 - 1
Constant right-side identified [125] printf_padding::length#0 = (char)0
Constant right-side identified [126] printf_padding::length#0 = (char)0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::$4 = 3-1
Constant printf_padding::length#0 = (char)0
Successful SSA optimization Pass2ConstantIdentification
Replacing constant pointer function [111] callexecute cputc
Replacing constant pointer function [112] callexecute cputc
Successful SSA optimization Pass2ConstantCallPointerIdentification
if() condition always false - eliminating [109] if(printf_padding::i#2<printf_padding::length#0) goto printf_padding::@2
if() condition always false - eliminating [151] if(0!=0) goto printf_number_buffer::@8
if() condition always false - eliminating [110] if(printf_padding::i#2<printf_padding::length#0) goto printf_padding::@2
if() condition always false - eliminating [133] if(0!=0) goto printf_number_buffer::@8
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)0 in
Successful SSA optimization PassNSimplifyConstantZero

View File

@ -3408,13 +3408,14 @@ Successful SSA optimization Pass2ConditionalAndOrRewriting
Warning! Adding boolean cast to non-boolean condition uctoa::started#2
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_zero_padding#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_justify_left#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::format_justify_left#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Negating conditional jump and destination [386] if(assert_cmp::expect#17!=1) goto assert_cmp::@7
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [204] memcpy::num#0 = (unumber)$19*$28-$28
Constant right-side identified [209] memcpy::num#1 = (unumber)$19*$28-$28
Constant right-side identified [236] conio_c64_init::line#1 = (unumber)$19-1
@ -3610,14 +3611,14 @@ Removing unused block cscroll::@2
Removing unused block cscroll::@8
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable memcpy::return#2 and assignment [151] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [153] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [155] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [158] memset::return#3 = memset::str#3
Eliminating unused variable printf_number_buffer::format_sign_always#0 and assignment [202] printf_number_buffer::format_sign_always#0 = printf_schar::format_sign_always#2
Eliminating unused variable printf_number_buffer::format_radix#0 and assignment [205] printf_number_buffer::format_radix#0 = printf_schar::format_radix#2
Eliminating unused variable textcolor::return#2 and assignment [284] textcolor::return#2 = textcolor::return#0
Eliminating unused variable textcolor::return#3 and assignment [290] textcolor::return#3 = textcolor::return#0
Eliminating unused variable memcpy::return#2 and assignment [154] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [156] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [158] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [161] memset::return#3 = memset::str#3
Eliminating unused variable printf_number_buffer::format_sign_always#0 and assignment [205] printf_number_buffer::format_sign_always#0 = printf_schar::format_sign_always#2
Eliminating unused variable printf_number_buffer::format_radix#0 and assignment [208] printf_number_buffer::format_radix#0 = printf_schar::format_radix#2
Eliminating unused variable textcolor::return#2 and assignment [299] textcolor::return#2 = textcolor::return#0
Eliminating unused variable textcolor::return#3 and assignment [305] textcolor::return#3 = textcolor::return#0
Eliminating unused constant strupr::return#2
Eliminating unused constant uctoa::max_digits#0
Eliminating unused constant uctoa::digit_values#0
@ -3627,17 +3628,17 @@ Eliminating unused constant printf_str::c#0
Eliminating unused constant OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN
Eliminating unused constant conio_scroll_enable
Successful SSA optimization PassNEliminateUnusedVars
Eliminating unused variable textcolor::return#0 and assignment [146] textcolor::return#0 = conio_textcolor
Eliminating unused variable textcolor::return#0 and assignment [149] textcolor::return#0 = conio_textcolor
Successful SSA optimization PassNEliminateUnusedVars
Adding number conversion cast (unumber) 0 in uctoa::$11 = 0 != uctoa::started#2
Adding number conversion cast (unumber) $19+1 in if(gotoxy::y#3<$19+1) goto gotoxy::@1
Adding number conversion cast (unumber) 1 in if(gotoxy::y#3<(unumber)$19+1) goto gotoxy::@1
Adding number conversion cast (unumber) 0 in printf_number_buffer::$33 = 0 != printf_number_buffer::format_zero_padding#0
Adding number conversion cast (unumber) 0 in printf_number_buffer::$34 = 0 != printf_number_buffer::format_justify_left#0
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$35 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$36 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$37 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#10
Adding number conversion cast (snumber) 0 in printf_string::$17 = 0 != printf_string::padding#3
Adding number conversion cast (snumber) 0 in printf_string::$18 = 0 != printf_string::padding#3
Successful SSA optimization PassNAddNumberTypeConversions
@ -3657,12 +3658,12 @@ Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
@ -3670,38 +3671,38 @@ Identical Phi Values gotoxy::y#3 gotoxy::y#2
Identical Phi Values gotoxy::x#3 gotoxy::x#2
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition strncmp::$2 [56] if(*strncmp::s1#2==0) goto strncmp::@5
Simple Condition toupper::$0 [65] if(toupper::ch#0>='a') goto toupper::@3
Simple Condition uctoa::$11 [97] if(0!=uctoa::started#2) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [205] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [221] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [233] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition printf_string::$1 [243] if(0==printf_string::format_justify_left#10) goto printf_string::@11
Simple Condition printf_string::$16 [256] if(0!=printf_string::format_justify_left#10) goto printf_string::@12
Simple Condition strncmp::$3 [369] if(strncmp::n#0==0) goto strncmp::@5
Simple Condition toupper::$1 [370] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition uctoa::$6 [371] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$35 [373] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [374] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [376] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [378] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [379] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition printf_string::$17 [381] if(0!=printf_string::padding#3) goto printf_string::@5
Simple Condition printf_string::$18 [383] if(0!=printf_string::padding#3) goto printf_string::@6
Simple Condition strncmp::$3 [63] if(strncmp::n#0==0) goto strncmp::@5
Simple Condition toupper::$0 [66] if(toupper::ch#0>='a') goto toupper::@3
Simple Condition toupper::$1 [70] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition uctoa::$11 [99] if(0!=uctoa::started#2) goto uctoa::@14
Simple Condition uctoa::$6 [112] if(uctoa::value#2>=uctoa::digit_value#0) goto uctoa::@14
Simple Condition printf_number_buffer::$1 [208] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [224] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [236] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [243] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [244] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [246] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [248] if(0!=printf_number_buffer::padding#10) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [249] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition printf_string::$1 [254] if(0==printf_string::format_justify_left#10) goto printf_string::@11
Simple Condition printf_string::$16 [267] if(0!=printf_string::format_justify_left#10) goto printf_string::@12
Simple Condition printf_string::$17 [276] if(0!=printf_string::padding#3) goto printf_string::@5
Simple Condition printf_string::$18 [278] if(0!=printf_string::padding#3) goto printf_string::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [65] if(toupper::ch#0<'a') goto toupper::@2
Negating conditional jump and destination [205] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [221] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [233] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [243] if(0!=printf_string::format_justify_left#10) goto printf_string::@2
Negating conditional jump and destination [256] if(0==printf_string::format_justify_left#10) goto printf_string::@return
Negating conditional jump and destination [374] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [379] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [66] if(toupper::ch#0<'a') goto toupper::@2
Negating conditional jump and destination [208] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [224] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [236] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [244] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [249] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [254] if(0!=printf_string::format_justify_left#10) goto printf_string::@2
Negating conditional jump and destination [267] if(0==printf_string::format_justify_left#10) goto printf_string::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [83] uctoa::buffer#0 = ++ uctoa::buffer#5
Constant right-side identified [85] uctoa::buffer#0 = ++ uctoa::buffer#5
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::buffer#0 = ++uctoa::buffer#5
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [119] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always true - replacing block destination [122] if(gotoxy::x#2<$28) goto gotoxy::@2
Successful SSA optimization Pass2ConstantIfs
Removing PHI-reference to removed block (gotoxy::@4) in block gotoxy::@2
Removing unused block gotoxy::@4
@ -3712,13 +3713,13 @@ Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Identical Phi Values gotoxy::x#4 gotoxy::x#2
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [80] uctoa::buffer#1 = ++ uctoa::buffer#0
Constant right-side identified [82] uctoa::buffer#1 = ++ uctoa::buffer#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::buffer#1 = ++uctoa::buffer#0
Successful SSA optimization Pass2ConstantIdentification
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Constant right-side identified [81] uctoa::buffer#2 = ++ uctoa::buffer#1
Constant right-side identified [83] uctoa::buffer#2 = ++ uctoa::buffer#1
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::buffer#2 = ++uctoa::buffer#1
Successful SSA optimization Pass2ConstantIdentification
@ -3731,11 +3732,11 @@ Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [22] memcmp::s1#0 = (char *)memcmp::str1#4 keeping memcmp::str1#4
Inlining Noop Cast [23] memcmp::s2#0 = (char *)memcmp::str2#4 keeping memcmp::str2#4
Inlining Noop Cast [177] printf_schar::uvalue#0 = (char)printf_schar::value#5 keeping printf_schar::value#5
Inlining Noop Cast [198] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 keeping printf_number_buffer::format_min_length#0
Inlining Noop Cast [231] printf_string::$13 = (signed char)printf_string::format_min_length#2 keeping printf_string::format_min_length#2
Inlining Noop Cast [180] printf_schar::uvalue#0 = (char)printf_schar::value#5 keeping printf_schar::value#5
Inlining Noop Cast [201] printf_number_buffer::$25 = (signed char)printf_number_buffer::format_min_length#0 keeping printf_number_buffer::format_min_length#0
Inlining Noop Cast [239] printf_string::$13 = (signed char)printf_string::format_min_length#2 keeping printf_string::format_min_length#2
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift and addition[112] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift and addition[115] gotoxy::line_offset#0 = gotoxy::$7 * $28
Inlining constant with var siblings memcpy::destination#0
Inlining constant with var siblings memcpy::source#0
Inlining constant with var siblings memcpy::num#0
@ -4045,9 +4046,9 @@ Successful SSA optimization Pass2ConstantSimplification
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1
Simplifying constant integer increment ++(char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2
Successful SSA optimization Pass2ConstantSimplification
Adding number conversion cast (unumber) 1 in [79] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 2 in [80] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r'
Adding number conversion cast (unumber) 3 in [81] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0
Adding number conversion cast (unumber) 1 in [81] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1) = 'r'
Adding number conversion cast (unumber) 2 in [82] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2) = 'r'
Adding number conversion cast (unumber) 3 in [83] *((char *)&printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3) = 0
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 1
Simplifying constant integer cast 2
@ -4091,33 +4092,33 @@ Constant printf_padding::putc#1 = printf_number_buffer::putc#0
Constant printf_str::putc#0 = printf_number_buffer::putc#0
Constant printf_padding::putc#2 = printf_number_buffer::putc#0
Successful SSA optimization Pass2ConstantIdentification
Constant value identified (signed char)printf_number_buffer::format_min_length#0 in [192] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2
Constant value identified (signed char)0 in [224] printf_string::padding#1 = (signed char)0 - printf_string::len#0
Constant value identified (signed char)printf_number_buffer::format_min_length#0 in [195] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2
Constant value identified (signed char)0 in [232] printf_string::padding#1 = (signed char)0 - printf_string::len#0
Successful SSA optimization Pass2ConstantValues
Replacing constant pointer function [201] callexecute cputc
Replacing constant pointer function [204] callexecute cputc
Successful SSA optimization Pass2ConstantCallPointerIdentification
if() condition always false - eliminating [9] if($28<=0) goto memset::@1
if() condition always true - replacing block destination [67] if(uctoa::radix#0==DECIMAL) goto uctoa::@1
if() condition always false - eliminating [68] if(uctoa::radix#0==HEXADECIMAL) goto uctoa::@2
if() condition always false - eliminating [69] if(uctoa::radix#0==OCTAL) goto uctoa::@3
if() condition always false - eliminating [70] if(uctoa::radix#0==BINARY) goto uctoa::@4
if() condition always true - replacing block destination [169] if(0==0) goto printf_schar::@2
if() condition always true - replacing block destination [183] if(0==printf_number_buffer::format_min_length#0) goto printf_number_buffer::@1
if() condition always false - eliminating [185] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [199] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [203] if(0==printf_number_buffer::format_upper_case#0) goto printf_number_buffer::@5
if() condition always true - replacing block destination [209] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always true - replacing block destination [216] if(0==0) goto printf_string::@1
if() condition always false - eliminating [218] if(0!=0) goto printf_string::@2
if() condition always true - replacing block destination [229] if(0==0) goto printf_string::@return
if() condition always false - eliminating [346] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [349] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
if() condition always true - replacing block destination [69] if(uctoa::radix#0==DECIMAL) goto uctoa::@1
if() condition always false - eliminating [70] if(uctoa::radix#0==HEXADECIMAL) goto uctoa::@2
if() condition always false - eliminating [71] if(uctoa::radix#0==OCTAL) goto uctoa::@3
if() condition always false - eliminating [72] if(uctoa::radix#0==BINARY) goto uctoa::@4
if() condition always true - replacing block destination [172] if(0==0) goto printf_schar::@2
if() condition always true - replacing block destination [186] if(0==printf_number_buffer::format_min_length#0) goto printf_number_buffer::@1
if() condition always false - eliminating [188] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [202] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [206] if(0==printf_number_buffer::format_upper_case#0) goto printf_number_buffer::@5
if() condition always true - replacing block destination [212] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [219] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [222] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
if() condition always true - replacing block destination [224] if(0==0) goto printf_string::@1
if() condition always false - eliminating [226] if(0!=0) goto printf_string::@2
if() condition always true - replacing block destination [237] if(0==0) goto printf_string::@return
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in [192] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2
Simplifying constant evaluating to zero (signed char)0 in [224] printf_string::padding#1 = (signed char)0 - printf_string::len#0
Simplifying constant evaluating to zero (signed char)printf_number_buffer::format_min_length#0 in [195] printf_number_buffer::padding#1 = (signed char)printf_number_buffer::format_min_length#0 - printf_number_buffer::len#2
Simplifying constant evaluating to zero (signed char)0 in [232] printf_string::padding#1 = (signed char)0 - printf_string::len#0
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero printf_number_buffer::len#2 in [192] printf_number_buffer::padding#1 = 0 - printf_number_buffer::len#2
Simplifying expression containing zero printf_string::len#0 in [224] printf_string::padding#1 = 0 - printf_string::len#0
Simplifying expression containing zero printf_number_buffer::len#2 in [195] printf_number_buffer::padding#1 = 0 - printf_number_buffer::len#2
Simplifying expression containing zero printf_string::len#0 in [232] printf_string::padding#1 = 0 - printf_string::len#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating variable strlen::str#5 from unused block strlen
Eliminating variable strlen::str#3 from unused block strlen::@1
@ -4204,6 +4205,9 @@ Removing PHI-reference to removed block (printf_number_buffer::@12) in block pri
Removing PHI-reference to removed block (printf_number_buffer::@12) in block printf_padding
Removing unused block printf_number_buffer::@12
Removing unused block printf_number_buffer::@20
Removing unused block printf_number_buffer::@23
Removing unused block printf_number_buffer::@24
Removing unused block printf_number_buffer::@25
Removing unused block printf_string::@3
Removing PHI-reference to removed block (printf_string::@7) in block printf_string::@1
Removing unused block printf_string::@7
@ -4214,9 +4218,6 @@ Removing PHI-reference to removed block (printf_string::@6) in block printf_padd
Removing PHI-reference to removed block (printf_string::@6) in block printf_padding
Removing unused block printf_string::@6
Removing unused block printf_string::@10
Removing unused block printf_number_buffer::@23
Removing unused block printf_number_buffer::@24
Removing unused block printf_number_buffer::@25
Removing unused block printf_string::@12
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused constant BINARY
@ -4252,16 +4253,16 @@ Identical Phi Values uctoa::digit_values#8 RADIX_DECIMAL_VALUES_CHAR
Identical Phi Values printf_number_buffer::padding#10 0
Identical Phi Values printf_string::padding#3 0
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [50] uctoa::$4 = 3 - 1
Constant right-side identified [149] printf_padding::length#0 = (char)0
Constant right-side identified [160] printf_padding::length#3 = (char)0
Constant right-side identified [51] uctoa::$4 = 3 - 1
Constant right-side identified [151] printf_padding::length#0 = (char)0
Constant right-side identified [163] printf_padding::length#3 = (char)0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant uctoa::$4 = 3-1
Constant printf_padding::length#0 = (char)0
Constant printf_padding::length#3 = (char)0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [270] if(0!=0) goto printf_number_buffer::@8
if() condition always false - eliminating [271] if(0!=0) goto printf_string::@5
if() condition always false - eliminating [158] if(0!=0) goto printf_number_buffer::@8
if() condition always false - eliminating [166] if(0!=0) goto printf_string::@5
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)0 in
Simplifying constant evaluating to zero (char)0 in

View File

@ -237,7 +237,7 @@ Removing unused procedure block __start::@1
Removing unused procedure block __start::@return
Successful SSA optimization PassNEliminateEmptyStart
Adding number conversion cast (unumber) 0 in [15] strncat::$2 = 0 != strncat::num#4
Adding number conversion cast (unumber) 0 in [23] strncat::$3 = 0 != *strncat::dst#5
Adding number conversion cast (unumber) 0 in [21] strncat::$3 = 0 != *strncat::dst#5
Successful SSA optimization PassNAddNumberTypeConversions
Simplifying constant integer cast 0
Simplifying constant integer cast 0

View File

@ -872,10 +872,10 @@ Removing PHI-reference to removed block (cscroll::@2) in block gotoxy
Removing unused block cscroll::@2
Removing unused block cscroll::@8
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable memcpy::return#2 and assignment [73] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [75] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [77] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [79] memset::return#3 = memset::str#3
Eliminating unused variable memcpy::return#2 and assignment [74] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [76] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [78] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [80] memset::return#3 = memset::str#3
Eliminating unused constant gotoxy::x#1
Eliminating unused constant gotoxy::y#1
Eliminating unused constant conio_scroll_enable
@ -897,7 +897,7 @@ Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
Simple Condition toupper::$0 [67] if(toupper::ch#0>='a') goto toupper::@3
Simple Condition toupper::$1 [112] if(toupper::ch#0<='z') goto toupper::@1
Simple Condition toupper::$1 [71] if(toupper::ch#0<='z') goto toupper::@1
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [67] if(toupper::ch#0<'a') goto toupper::@2
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement

View File

@ -2398,10 +2398,10 @@ Successful SSA optimization Pass2ConditionalAndOrRewriting
Warning! Adding boolean cast to non-boolean condition utoa::started#2
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_zero_padding#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::format_justify_left#0
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::format_justify_left#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_number_buffer::padding#10
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Warning! Adding boolean cast to non-boolean condition printf_string::padding#3
Constant right-side identified [156] memcpy::num#0 = (unumber)$19*$28-$28
@ -2594,14 +2594,14 @@ Removing unused block printf_number_buffer::@14
Removing unused block printf_number_buffer::@11
Removing unused block printf_number_buffer::@19
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused variable memcpy::return#2 and assignment [87] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [89] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [91] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [93] memset::return#3 = memset::str#3
Eliminating unused variable main::$1 and assignment [177] main::$1 = main::$5
Eliminating unused variable main::$2 and assignment [180] main::$2 = main::$6
Eliminating unused variable main::$3 and assignment [185] main::$3 = main::$7 + OFFSET_STRUCT_BBS_HOST_NAME
Eliminating unused variable main::$4 and assignment [190] main::$4 = main::$8 + OFFSET_STRUCT_BBS_PORT_NUMBER
Eliminating unused variable memcpy::return#2 and assignment [88] memcpy::return#2 = memcpy::destination#2
Eliminating unused variable memcpy::return#3 and assignment [90] memcpy::return#3 = memcpy::destination#2
Eliminating unused variable memset::return#2 and assignment [92] memset::return#2 = memset::str#3
Eliminating unused variable memset::return#3 and assignment [94] memset::return#3 = memset::str#3
Eliminating unused variable main::$1 and assignment [190] main::$1 = main::$5
Eliminating unused variable main::$2 and assignment [193] main::$2 = main::$6
Eliminating unused variable main::$3 and assignment [198] main::$3 = main::$7 + OFFSET_STRUCT_BBS_HOST_NAME
Eliminating unused variable main::$4 and assignment [203] main::$4 = main::$8 + OFFSET_STRUCT_BBS_PORT_NUMBER
Eliminating unused constant strlen::str#1
Eliminating unused constant BINARY
Eliminating unused constant OCTAL
@ -2644,10 +2644,10 @@ Adding number conversion cast (unumber) $19+1 in if(gotoxy::y#3<$19+1) goto goto
Adding number conversion cast (unumber) 1 in if(gotoxy::y#3<(unumber)$19+1) goto gotoxy::@1
Adding number conversion cast (unumber) 0 in printf_number_buffer::$33 = 0 != printf_number_buffer::format_zero_padding#0
Adding number conversion cast (unumber) 0 in printf_number_buffer::$34 = 0 != printf_number_buffer::format_justify_left#0
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$35 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$36 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (snumber) 0 in printf_number_buffer::$37 = 0 != printf_number_buffer::padding#10
Adding number conversion cast (unumber) 0 in printf_string::$16 = 0 != printf_string::format_justify_left#10
Adding number conversion cast (snumber) 0 in printf_string::$17 = 0 != printf_string::padding#3
Adding number conversion cast (snumber) 0 in printf_string::$18 = 0 != printf_string::padding#3
Successful SSA optimization PassNAddNumberTypeConversions
@ -2667,12 +2667,12 @@ Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 1
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized unsigned number type (char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Successful SSA optimization PassNFinalizeNumberTypeConversions
Alias candidate removed (volatile)conio_line_text = gotoxy::$5
Alias candidate removed (volatile)conio_line_color = gotoxy::$6
@ -2685,47 +2685,47 @@ Identical Phi Values printf_uint::$2 printf_uint::$0
Identical Phi Values printf_number_buffer::padding#10 printf_number_buffer::padding#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition utoa::$12 [36] if(0!=utoa::started#2) goto utoa::@14
Simple Condition printf_number_buffer::$1 [127] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [132] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [141] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition printf_string::$1 [149] if(0==printf_string::format_justify_left#10) goto printf_string::@11
Simple Condition printf_string::$16 [162] if(0!=printf_string::format_justify_left#10) goto printf_string::@12
Simple Condition utoa::$6 [195] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@14
Simple Condition printf_number_buffer::$35 [197] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [198] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [200] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [202] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [203] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition printf_string::$17 [205] if(0!=printf_string::padding#3) goto printf_string::@5
Simple Condition printf_string::$18 [207] if(0!=printf_string::padding#3) goto printf_string::@6
Simple Condition utoa::$6 [50] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@14
Simple Condition printf_number_buffer::$1 [128] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@22
Simple Condition printf_number_buffer::$33 [133] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@23
Simple Condition printf_number_buffer::$34 [142] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@25
Simple Condition printf_number_buffer::$35 [147] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
Simple Condition printf_number_buffer::$2 [148] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@21
Simple Condition printf_number_buffer::$36 [150] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
Simple Condition printf_number_buffer::$37 [152] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
Simple Condition printf_number_buffer::$14 [153] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@24
Simple Condition printf_string::$1 [158] if(0==printf_string::format_justify_left#10) goto printf_string::@11
Simple Condition printf_string::$16 [171] if(0!=printf_string::format_justify_left#10) goto printf_string::@12
Simple Condition printf_string::$17 [180] if(0!=printf_string::padding#3) goto printf_string::@5
Simple Condition printf_string::$18 [182] if(0!=printf_string::padding#3) goto printf_string::@6
Successful SSA optimization Pass2ConditionalJumpSimplification
Negating conditional jump and destination [127] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [132] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [141] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [149] if(0!=printf_string::format_justify_left#10) goto printf_string::@2
Negating conditional jump and destination [162] if(0==printf_string::format_justify_left#10) goto printf_string::@return
Negating conditional jump and destination [198] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [203] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [128] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
Negating conditional jump and destination [133] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
Negating conditional jump and destination [142] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
Negating conditional jump and destination [148] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
Negating conditional jump and destination [153] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Negating conditional jump and destination [158] if(0!=printf_string::format_justify_left#10) goto printf_string::@2
Negating conditional jump and destination [171] if(0==printf_string::format_justify_left#10) goto printf_string::@return
Successful SSA optimization Pass2ConditionalJumpSequenceImprovement
Constant right-side identified [30] utoa::$4 = utoa::max_digits#1 - 1
Constant right-side identified [129] printf_padding::length#0 = (char)printf_number_buffer::padding#0
Constant right-side identified [136] printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant right-side identified [142] printf_padding::length#2 = (char)printf_number_buffer::padding#0
Constant right-side identified [130] printf_padding::length#0 = (char)printf_number_buffer::padding#0
Constant right-side identified [137] printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant right-side identified [143] printf_padding::length#2 = (char)printf_number_buffer::padding#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant utoa::$4 = utoa::max_digits#1-1
Constant printf_padding::length#0 = (char)printf_number_buffer::padding#0
Constant printf_padding::length#1 = (char)printf_number_buffer::padding#0
Constant printf_padding::length#2 = (char)printf_number_buffer::padding#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination [59] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always false - eliminating [127] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [132] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [141] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [197] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
if() condition always false - eliminating [198] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [200] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
if() condition always false - eliminating [202] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
if() condition always false - eliminating [203] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
if() condition always true - replacing block destination [60] if(gotoxy::x#2<$28) goto gotoxy::@2
if() condition always false - eliminating [128] if(0!=printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@2
if() condition always true - replacing block destination [133] if(0==printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@4
if() condition always true - replacing block destination [142] if(0==printf_number_buffer::format_justify_left#0) goto printf_number_buffer::@return
if() condition always false - eliminating [147] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@8
if() condition always false - eliminating [148] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@2
if() condition always false - eliminating [150] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@10
if() condition always false - eliminating [152] if(0!=printf_number_buffer::padding#0) goto printf_number_buffer::@12
if() condition always false - eliminating [153] if(0!=printf_number_buffer::format_zero_padding#0) goto printf_number_buffer::@return
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in
Simplifying constant evaluating to zero (char)printf_number_buffer::padding#0 in
@ -2780,14 +2780,14 @@ Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping mem
Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2
Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3
Inlining Noop Cast [130] printf_string::$13 = (signed char)printf_string::format_min_length#2 keeping printf_string::format_min_length#2
Inlining Noop Cast [146] main::$5 = (char **)main::bbs#2 keeping main::bbs#2
Inlining Noop Cast [148] main::$6 = (char **)main::bbs#2 keeping main::bbs#2
Inlining Noop Cast [152] main::$7 = (char **)main::bbs#2 keeping main::bbs#2
Inlining Noop Cast [156] main::$8 = (unsigned int *)main::bbs#2 keeping main::bbs#2
Inlining Noop Cast [131] printf_string::$13 = (signed char)printf_string::format_min_length#2 keeping printf_string::format_min_length#2
Inlining Noop Cast [149] main::$5 = (char **)main::bbs#2 keeping main::bbs#2
Inlining Noop Cast [151] main::$6 = (char **)main::bbs#2 keeping main::bbs#2
Inlining Noop Cast [155] main::$7 = (char **)main::bbs#2 keeping main::bbs#2
Inlining Noop Cast [159] main::$8 = (unsigned int *)main::bbs#2 keeping main::bbs#2
Successful SSA optimization Pass2NopCastInlining
Rewriting multiplication to use shift [29] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT
Rewriting multiplication to use shift and addition[56] gotoxy::line_offset#0 = gotoxy::$7 * $28
Rewriting multiplication to use shift and addition[57] gotoxy::line_offset#0 = gotoxy::$7 * $28
Successful SSA optimization Pass2MultiplyToShiftRewriting
Inlining constant with var siblings memcpy::destination#0
Inlining constant with var siblings memcpy::source#0
@ -2894,16 +2894,16 @@ Constant printf_str::putc#1 = &cputc
Constant printf_padding::putc#3 = &cputc
Constant printf_padding::putc#4 = &cputc
Successful SSA optimization Pass2ConstantIdentification
Constant value identified (signed char)0 in [127] printf_string::padding#1 = (signed char)0 - printf_string::len#0
Constant value identified (signed char)0 in [128] printf_string::padding#1 = (signed char)0 - printf_string::len#0
Successful SSA optimization Pass2ConstantValues
if() condition always false - eliminating [9] if($28<=0) goto memset::@1
if() condition always true - replacing block destination [119] if(0==0) goto printf_string::@1
if() condition always false - eliminating [121] if(0!=0) goto printf_string::@2
if() condition always true - replacing block destination [132] if(0==0) goto printf_string::@return
if() condition always true - replacing block destination [120] if(0==0) goto printf_string::@1
if() condition always false - eliminating [122] if(0!=0) goto printf_string::@2
if() condition always true - replacing block destination [133] if(0==0) goto printf_string::@return
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (signed char)0 in [127] printf_string::padding#1 = (signed char)0 - printf_string::len#0
Simplifying constant evaluating to zero (signed char)0 in [128] printf_string::padding#1 = (signed char)0 - printf_string::len#0
Successful SSA optimization PassNSimplifyConstantZero
Simplifying expression containing zero printf_string::len#0 in [127] printf_string::padding#1 = 0 - printf_string::len#0
Simplifying expression containing zero printf_string::len#0 in [128] printf_string::padding#1 = 0 - printf_string::len#0
Successful SSA optimization PassNSimplifyExpressionWithZero
Eliminating variable strlen::str#3 from unused block strlen::@1
Eliminating variable strlen::len#2 from unused block strlen::@1
@ -2950,14 +2950,14 @@ Identical Phi Values printf_padding::pad#7 ' '
Identical Phi Values printf_padding::putc#7 &cputc
Identical Phi Values printf_string::padding#3 0
Successful SSA optimization Pass2IdenticalPhiElimination
Constant right-side identified [116] printf_padding::length#3 = (char)0
Constant right-side identified [117] printf_padding::length#3 = (char)0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant printf_padding::length#3 = (char)0
Successful SSA optimization Pass2ConstantIdentification
Replacing constant pointer function [96] callexecute cputc
Replacing constant pointer function [97] callexecute cputc
Successful SSA optimization Pass2ConstantCallPointerIdentification
if() condition always false - eliminating [94] if(printf_padding::i#2<printf_padding::length#3) goto printf_padding::@2
if() condition always false - eliminating [141] if(0!=0) goto printf_string::@5
if() condition always false - eliminating [95] if(printf_padding::i#2<printf_padding::length#3) goto printf_padding::@2
if() condition always false - eliminating [120] if(0!=0) goto printf_string::@5
Successful SSA optimization Pass2ConstantIfs
Simplifying constant evaluating to zero (char)0 in
Successful SSA optimization PassNSimplifyConstantZero