1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-28 11:51:09 +00:00

Fixed test.

This commit is contained in:
jespergravgaard 2019-06-19 02:05:31 +02:00
parent 2acc1010ec
commit cbe58167da

View File

@ -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