diff --git a/src/test/ref/condition-integer-0.log b/src/test/ref/condition-integer-0.log index bfdda1fe2..5acf519fa 100644 --- a/src/test/ref/condition-integer-0.log +++ b/src/test/ref/condition-integer-0.log @@ -11,14 +11,12 @@ CONTROL FLOW GRAPH SSA to:@1 main: scope:[main] from @1 (byte) main::idx#0 ← (number) 0 - (bool~) main::$6 ← (number) 0 != (number) 0 - (bool~) main::$0 ← ! (bool~) main::$6 + (bool~) main::$0 ← ! (number) 0!=(number) 0 if((bool~) main::$0) goto main::@1 to:main::@3 main::@1: scope:[main] from main main::@3 (byte) main::idx#13 ← phi( main/(byte) main::idx#0 main::@3/(byte) main::idx#1 ) - (bool~) main::$7 ← (number) 0 != (number) $3e7 - (bool~) main::$1 ← ! (bool~) main::$7 + (bool~) main::$1 ← ! (number) 0!=(number) $3e7 if((bool~) main::$1) goto main::@2 to:main::@4 main::@3: scope:[main] from main @@ -40,8 +38,8 @@ main::@4: scope:[main] from main::@1 main::@5: scope:[main] from main::@2 main::@6 (byte) main::idx#14 ← phi( main::@2/(byte) main::idx#2 main::@6/(byte) main::idx#15 ) (byte) main::i#2 ← phi( main::@2/(byte) main::i#0 main::@6/(byte) main::i#1 ) - (bool~) main::$8 ← (number) 0 != (byte) main::i#2 - (bool~) main::$2 ← ! (bool~) main::$8 + (bool~) main::$6 ← (number) 0 != (byte) main::i#2 + (bool~) main::$2 ← ! (bool~) main::$6 if((bool~) main::$2) goto main::@6 to:main::@7 main::@6: scope:[main] from main::@5 main::@7 @@ -66,8 +64,8 @@ main::@8: scope:[main] from main::@6 main::@9: scope:[main] from main::@10 main::@8 (byte) main::idx#16 ← phi( main::@10/(byte) main::idx#17 main::@8/(byte) main::idx#5 ) (word) main::i1#2 ← phi( main::@10/(word) main::i1#1 main::@8/(word) main::i1#0 ) - (bool~) main::$9 ← (number) 0 != (word) main::i1#2 - (bool~) main::$4 ← ! (bool~) main::$9 + (bool~) main::$7 ← (number) 0 != (word) main::i1#2 + (bool~) main::$4 ← ! (bool~) main::$7 if((bool~) main::$4) goto main::@10 to:main::@11 main::@10: scope:[main] from main::@11 main::@9 @@ -109,8 +107,6 @@ SYMBOL TABLE SSA (bool~) main::$5 (bool~) main::$6 (bool~) main::$7 -(bool~) main::$8 -(bool~) main::$9 (label) main::@1 (label) main::@10 (label) main::@11 @@ -156,8 +152,8 @@ SYMBOL TABLE SSA (byte) main::idx#9 Adding number conversion cast (unumber) 0 in (byte) main::idx#0 ← (number) 0 -Adding number conversion cast (unumber) 0 in (bool~) main::$8 ← (number) 0 != (byte) main::i#2 -Adding number conversion cast (unumber) 0 in (bool~) main::$9 ← (number) 0 != (word) main::i1#2 +Adding number conversion cast (unumber) 0 in (bool~) main::$6 ← (number) 0 != (byte) main::i#2 +Adding number conversion cast (unumber) 0 in (bool~) main::$7 ← (number) 0 != (word) main::i1#2 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast (byte*) SCREEN#0 ← (byte*)(number) $400 Inlining cast (byte) main::idx#0 ← (unumber)(number) 0 @@ -171,10 +167,8 @@ Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Finalized unsigned number type (byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions -Inversing boolean not [3] (bool~) main::$0 ← (number) 0 == (number) 0 from [2] (bool~) main::$6 ← (number) 0 != (number) 0 -Inversing boolean not [7] (bool~) main::$1 ← (number) 0 == (number) $3e7 from [6] (bool~) main::$7 ← (number) 0 != (number) $3e7 -Inversing boolean not [21] (bool~) main::$2 ← (byte) 0 == (byte) main::i#2 from [20] (bool~) main::$8 ← (byte) 0 != (byte) main::i#2 -Inversing boolean not [36] (bool~) main::$4 ← (byte) 0 == (word) main::i1#2 from [35] (bool~) main::$9 ← (byte) 0 != (word) main::i1#2 +Inversing boolean not [19] (bool~) main::$2 ← (byte) 0 == (byte) main::i#2 from [18] (bool~) main::$6 ← (byte) 0 != (byte) main::i#2 +Inversing boolean not [34] (bool~) main::$4 ← (byte) 0 == (word) main::i1#2 from [33] (bool~) main::$7 ← (byte) 0 != (word) main::i1#2 Successful SSA optimization Pass2UnaryNotSimplification Alias (byte) main::idx#0 = (byte) main::idx#7 Alias (byte) main::idx#13 = (byte) main::idx#9 @@ -187,27 +181,29 @@ Successful SSA optimization Pass2AliasElimination Alias (byte) main::i#2 = (byte) main::i#3 Alias (word) main::i1#2 = (word) main::i1#3 Successful SSA optimization Pass2AliasElimination -Simple Condition (bool~) main::$0 [4] if((number) 0==(number) 0) goto main::@1 -Simple Condition (bool~) main::$1 [8] if((number) 0==(number) $3e7) goto main::@2 -Simple Condition (bool~) main::$2 [22] if((byte) 0==(byte) main::i#2) goto main::@6 -Simple Condition (bool~) main::$3 [26] if((byte) main::i#1!=rangelast(0,2)) goto main::@5 -Simple Condition (bool~) main::$4 [37] if((byte) 0==(word) main::i1#2) goto main::@10 -Simple Condition (bool~) main::$5 [41] if((word) main::i1#1!=rangelast(0,2)) goto main::@9 +Simple Condition (bool~) main::$2 [20] if((byte) 0==(byte) main::i#2) goto main::@6 +Simple Condition (bool~) main::$3 [24] if((byte) main::i#1!=rangelast(0,2)) goto main::@5 +Simple Condition (bool~) main::$4 [35] if((byte) 0==(word) main::i1#2) goto main::@10 +Simple Condition (bool~) main::$5 [39] if((word) main::i1#1!=rangelast(0,2)) goto main::@9 Successful SSA optimization Pass2ConditionalJumpSimplification +Rewriting ! if()-condition to reversed if() [2] (bool~) main::$0 ← ! (number) 0!=(number) 0 +Successful SSA optimization Pass2ConditionalAndOrRewriting +Rewriting ! if()-condition to reversed if() [5] (bool~) main::$1 ← ! (number) 0!=(number) $3e7 +Successful SSA optimization Pass2ConditionalAndOrRewriting Constant (const byte*) SCREEN#0 = (byte*) 1024 Constant (const byte) main::idx#0 = 0 Constant (const byte) main::i#0 = 0 Constant (const word) main::i1#0 = 0 Successful SSA optimization Pass2ConstantIdentification -if() condition always true - replacing block destination [4] if((number) 0==(number) 0) goto main::@1 +if() condition always false - eliminating [3] if((number) 0!=(number) 0) goto main::@3 Removing PHI-reference to removed block (main::@1) in block main::@2 -if() condition always false - eliminating [8] if((number) 0==(number) $3e7) goto main::@2 +if() condition always true - replacing block destination [6] if((number) 0!=(number) $3e7) goto main::@4 Successful SSA optimization Pass2ConstantIfs -Resolved ranged next value [24] main::i#1 ← ++ main::i#2 to ++ -Resolved ranged comparison value [26] if(main::i#1!=rangelast(0,2)) goto main::@5 to (number) 3 -Resolved ranged next value [39] main::i1#1 ← ++ main::i1#2 to ++ -Resolved ranged comparison value [41] if(main::i1#1!=rangelast(0,2)) goto main::@9 to (number) 3 -Simplifying expression containing zero SCREEN#0 in [10] *((const byte*) SCREEN#0 + (const byte) main::idx#0) ← (byte) '0' +Resolved ranged next value [22] main::i#1 ← ++ main::i#2 to ++ +Resolved ranged comparison value [24] if(main::i#1!=rangelast(0,2)) goto main::@5 to (number) 3 +Resolved ranged next value [37] main::i1#1 ← ++ main::i1#2 to ++ +Resolved ranged comparison value [39] if(main::i1#1!=rangelast(0,2)) goto main::@9 to (number) 3 +Simplifying expression containing zero SCREEN#0 in [8] *((const byte*) SCREEN#0 + (const byte) main::idx#0) ← (byte) '0' Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating variable (byte) main::idx#1 from unused block main::@3 Removing PHI-reference to removed block (main::@3) in block main::@1