mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-09 21:37:31 +00:00
Implemented dword ASM and printing
This commit is contained in:
parent
8b54f38640
commit
b5a79848f3
@ -75,6 +75,14 @@ public class AsmFormat {
|
||||
} else {
|
||||
return "$ffff & " + getAsmConstant(program, operand, Operator.BOOL_AND.getPrecedence(), codeScope);
|
||||
}
|
||||
} else if(Operator.CAST_DWORD.equals(operator) || Operator.CAST_SDWORD.equals(operator)) {
|
||||
SymbolType operandType = SymbolTypeInference.inferType(program.getScope(), operand);
|
||||
if(SymbolType.isDWord(operandType) || SymbolType.isSDWord(operandType)) {
|
||||
// No cast needed
|
||||
return getAsmConstant(program, operand, outerPrecedence, codeScope);
|
||||
} else {
|
||||
return "$ffffffff & " + getAsmConstant(program, operand, Operator.BOOL_AND.getPrecedence(), codeScope);
|
||||
}
|
||||
} else if(Operator.INCREMENT.equals(operator)) {
|
||||
return getAsmConstant(program, operand, Operator.PLUS.getPrecedence(), codeScope) + "+1";
|
||||
} else if(Operator.DECREMENT.equals(operator)) {
|
||||
|
@ -503,6 +503,8 @@ class AsmFragmentTemplateSynthesisRule {
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=(.*)_(plus|minus|band|bxor|bor)_(v..)z1", oneZ2, null, "$1z1=$2_$3_$4z2", null, mapZ, false));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=_(neg|lo|hi)_(v..)z1", oneZ2, null, "$1z1=_$2_$3z2", null, mapZ, false));
|
||||
|
||||
//synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=(v..)z1_(plus|minus|band|bxor|bor)_(v..)z2", null, null, "$1z1=$2z2_$3_$4z3", null, mapZ, false));
|
||||
|
||||
// Convert INC/DEC to +1/-1 ( ..._inc_xxx... -> ...xxx_plus_1_... / ..._dec_xxx... -> ...xxx_minus_1_... )
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("vb(.)aa=_inc_(.*)", null, null, "vb$1aa=$2_plus_1", null, null));
|
||||
synths.add(new AsmFragmentTemplateSynthesisRule("vb(.)aa=_dec_(.*)", null, null, "vb$1aa=$2_minus_1", null, null));
|
||||
|
@ -1,2 +0,0 @@
|
||||
asl {z1}
|
||||
rol {z1}+1
|
@ -0,0 +1,7 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
||||
lda #0
|
||||
sta {z1}+2
|
||||
sta {z1}+3
|
@ -0,0 +1,8 @@
|
||||
inc {z1}
|
||||
bne !+
|
||||
inc {z1}+1
|
||||
bne !+
|
||||
inc {z1}+2
|
||||
bne !+
|
||||
inc {z1}+3
|
||||
!:
|
@ -0,0 +1,5 @@
|
||||
sta {z1}
|
||||
lda #0
|
||||
sta {z1}+1
|
||||
sta {z1}+2
|
||||
sta {z1}+3
|
@ -0,0 +1,8 @@
|
||||
lda #<{c1}
|
||||
sta {z1}
|
||||
lda #>{c1}
|
||||
sta {z1}+1
|
||||
lda #<{c1}>>16
|
||||
sta {z1}+2
|
||||
lda #>{c1}>>16
|
||||
sta {z1}+3
|
@ -0,0 +1,4 @@
|
||||
asl {z1}
|
||||
rol {z1}+1
|
||||
rol {z1}+2
|
||||
rol {z1}+3
|
@ -0,0 +1,4 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
@ -0,0 +1,8 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
||||
lda {z2}+2
|
||||
sta {z1}+2
|
||||
lda {z2}+3
|
||||
sta {z1}+3
|
@ -0,0 +1,14 @@
|
||||
lda {z2}
|
||||
clc
|
||||
adc {z3}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
adc {z3}+1
|
||||
sta {z1}+1
|
||||
lda {z2}+2
|
||||
adc {z3}+2
|
||||
sta {z1}+2
|
||||
lda {z2}+3
|
||||
adc {z3}+3
|
||||
sta {z1}+3
|
||||
|
@ -0,0 +1,14 @@
|
||||
lda {z2}
|
||||
clc
|
||||
adc #<{c1}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
adc #>{c1}
|
||||
sta {z1}+1
|
||||
lda {z2}+2
|
||||
adc #0
|
||||
sta {z1}+2
|
||||
lda {z2}+3
|
||||
adc #0
|
||||
sta {z1}+3
|
||||
|
@ -0,0 +1,14 @@
|
||||
lda {z2}
|
||||
clc
|
||||
adc {z3}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
adc {z3}+1
|
||||
sta {z1}+1
|
||||
lda {z2}+2
|
||||
adc #0
|
||||
sta {z1}+2
|
||||
lda {z2}+3
|
||||
adc #0
|
||||
sta {z1}+3
|
||||
|
@ -0,0 +1,8 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
||||
lda {z3}
|
||||
sta {z1}+2
|
||||
lda {z3}+1
|
||||
sta {z1}+3
|
@ -0,0 +1,8 @@
|
||||
lda {z3}
|
||||
sta {z1}
|
||||
lda {z3}+1
|
||||
sta {z1}+1
|
||||
lda {z2}+2
|
||||
sta {z1}+2
|
||||
lda {z2}+3
|
||||
sta {z1}+3
|
@ -0,0 +1,13 @@
|
||||
lda {z1}
|
||||
cmp {z2}
|
||||
bne !+
|
||||
lda {z1}+1
|
||||
cmp {z2}+1
|
||||
bne !+
|
||||
lda {z1}+2
|
||||
cmp {z2}+2
|
||||
bne !+
|
||||
lda {z1}+3
|
||||
cmp {z2}+3
|
||||
beq {la1}
|
||||
!:
|
@ -0,0 +1,12 @@
|
||||
lda {z1}+3
|
||||
cmp #>{c1}>>16
|
||||
bne {la1}
|
||||
lda {z1}+2
|
||||
cmp #<{c1}>>16
|
||||
bne {la1}
|
||||
lda {z1}+1
|
||||
cmp #>{c1}
|
||||
bne {la1}
|
||||
lda {z1}
|
||||
cmp #<{c1}
|
||||
bne {la1}
|
@ -0,0 +1,4 @@
|
||||
lda {z2}+2
|
||||
sta {z1}
|
||||
lda {z2}+3
|
||||
sta {z1}+1
|
@ -0,0 +1,4 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
@ -1,2 +1,3 @@
|
||||
clc
|
||||
ror {z1}+1
|
||||
ror {z1}
|
@ -0,0 +1,5 @@
|
||||
lda {z1}
|
||||
bne !+
|
||||
lda {z1}+1
|
||||
beq {la1}
|
||||
!:
|
@ -1,4 +1,4 @@
|
||||
lda {z1}
|
||||
bne {la1}
|
||||
lda {z1}+1
|
||||
bne {la1}
|
||||
bne {la1}
|
@ -0,0 +1,6 @@
|
||||
lda {z1}+1
|
||||
cmp {z2}+1
|
||||
bne {la1}
|
||||
lda {z1}
|
||||
cmp {z2}
|
||||
bne {la1}
|
@ -21,6 +21,8 @@ public class Operator {
|
||||
public static final Operator CAST_SBYTE = new Operator("((signed byte))", "_sbyte_", Type.UNARY, 2);
|
||||
public static final Operator CAST_WORD = new Operator("((word))", "_word_", Type.UNARY, 2);
|
||||
public static final Operator CAST_SWORD = new Operator("((signed word))", "_sword_", Type.UNARY, 2);
|
||||
public static final Operator CAST_DWORD = new Operator("((dword))", "_dword_", Type.UNARY, 2);
|
||||
public static final Operator CAST_SDWORD = new Operator("((signed dword))", "_sdword_", Type.UNARY, 2);
|
||||
public static final Operator CAST_PTRBY = new Operator("((byte*))", "_ptrby_", Type.UNARY, 2);
|
||||
public static final Operator MULTIPLY = new Operator("*", "_mul_", Type.BINARY, 3);
|
||||
public static final Operator DIVIDE = new Operator("/", "_div_", Type.BINARY, 3);
|
||||
@ -135,6 +137,10 @@ public class Operator {
|
||||
return CAST_WORD;
|
||||
} else if(SymbolType.SWORD.equals(castType)) {
|
||||
return CAST_SWORD;
|
||||
} else if(SymbolType.DWORD.equals(castType)) {
|
||||
return CAST_DWORD;
|
||||
} else if(SymbolType.SDWORD.equals(castType)) {
|
||||
return CAST_SDWORD;
|
||||
} else if(castType instanceof SymbolTypePointer && SymbolType.BYTE.equals(((SymbolTypePointer) castType).getElementType())) {
|
||||
return CAST_PTRBY;
|
||||
} else {
|
||||
|
@ -30,6 +30,10 @@ public class SymbolTypeInference {
|
||||
return SymbolType.WORD;
|
||||
} else if(operator.equals(Operator.CAST_SWORD)) {
|
||||
return SymbolType.SWORD;
|
||||
} else if(operator.equals(Operator.CAST_DWORD)) {
|
||||
return SymbolType.DWORD;
|
||||
} else if(operator.equals(Operator.CAST_SDWORD)) {
|
||||
return SymbolType.SDWORD;
|
||||
} else if(operator.equals(Operator.CAST_PTRBY)) {
|
||||
return new SymbolTypePointer(SymbolType.BYTE);
|
||||
} else if(operator.equals(Operator.ADDRESS_OF)) {
|
||||
@ -76,10 +80,14 @@ public class SymbolTypeInference {
|
||||
} else if(Operator.LOWBYTE.equals(operator)) {
|
||||
if(subType instanceof SymbolTypePointer || SymbolType.isWord(subType) || SymbolType.isSWord(subType)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if(SymbolType.isDWord(subType) || SymbolType.isSDWord(subType)) {
|
||||
return SymbolType.WORD;
|
||||
}
|
||||
} else if(Operator.HIBYTE.equals(operator)) {
|
||||
if(subType instanceof SymbolTypePointer || SymbolType.isWord(subType) || SymbolType.isSWord(subType)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if(SymbolType.isDWord(subType) || SymbolType.isSDWord(subType)) {
|
||||
return SymbolType.WORD;
|
||||
}
|
||||
} else if(Operator.CAST_BYTE.equals(operator)) {
|
||||
return SymbolType.BYTE;
|
||||
|
@ -78,6 +78,12 @@ public class Pass1AddTypePromotions extends Pass1Base {
|
||||
if(lValueType.equals(SymbolType.WORD) && SymbolType.isByte(rValueType)) {
|
||||
return true;
|
||||
}
|
||||
if(lValueType.equals(SymbolType.DWORD) && SymbolType.isWord(rValueType)) {
|
||||
return true;
|
||||
}
|
||||
if(lValueType.equals(SymbolType.DWORD) && SymbolType.isByte(rValueType)) {
|
||||
return true;
|
||||
}
|
||||
// No type promotion found
|
||||
return false;
|
||||
}
|
||||
|
@ -200,6 +200,8 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization {
|
||||
case "((sbyte))":
|
||||
case "((word))":
|
||||
case "((signed word))":
|
||||
case "((dword))":
|
||||
case "((signed dword))":
|
||||
case "((byte*))":
|
||||
return new ConstantUnary(operator, c);
|
||||
case "*": { // pointer dereference - not constant
|
||||
|
@ -207,7 +207,11 @@ public class Pass4CodeGeneration {
|
||||
while(statementsIt.hasNext()) {
|
||||
Statement statement = statementsIt.next();
|
||||
if(!(statement instanceof StatementPhiBlock)) {
|
||||
generateStatementAsm(asm, block, statement, aluState, true);
|
||||
try {
|
||||
generateStatementAsm(asm, block, statement, aluState, true);
|
||||
} catch(AsmFragmentTemplateSynthesizer.UnknownFragmentException e) {
|
||||
throw new CompileError("Unknown fragment for statement "+statement.toString(program, false), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,6 +45,12 @@ public class TestPrograms {
|
||||
AsmFragmentTemplateUsages.logUsages(log, false, false, false, false, false, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLowHigh() throws IOException, URISyntaxException {
|
||||
compileAndCompare("test-lowhigh");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testLongJump2() throws IOException, URISyntaxException {
|
||||
compileAndCompare("longjump2");
|
||||
|
@ -25,4 +25,31 @@ signed word mul8s(signed byte a, signed byte b) {
|
||||
>m = (>m)-(byte)a;
|
||||
}
|
||||
return (signed word)m;
|
||||
}
|
||||
}
|
||||
|
||||
// Perform binary multiplication of two unsigned 16-bit words into a 32-bit unsigned double word
|
||||
dword mul16u(word a, word b) {
|
||||
dword res = 0;
|
||||
dword mb = b;
|
||||
while(a!=0) {
|
||||
if( (a&1) != 0) {
|
||||
res = res + mb;
|
||||
}
|
||||
a = a>>1;
|
||||
mb = mb<<1;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
// Multiply of two signed words to a signed double word
|
||||
// Fixes offsets introduced by using unsigned multiplication
|
||||
signed dword mul16s(signed word a, signed word b) {
|
||||
dword m = mul16u((word)a, (word) b);
|
||||
if(a<0) {
|
||||
>m = (>m)-(word)b;
|
||||
}
|
||||
if(b<0) {
|
||||
>m = (>m)-(word)a;
|
||||
}
|
||||
return (signed dword)m;
|
||||
}
|
||||
|
@ -43,6 +43,12 @@ void print_word(word w) {
|
||||
print_byte(<w);
|
||||
}
|
||||
|
||||
// Print a dword as HEX
|
||||
void print_dword(dword dw) {
|
||||
print_word(>dw);
|
||||
print_word(<dw);
|
||||
}
|
||||
|
||||
// Print a byte as HEX
|
||||
void print_byte(byte b) {
|
||||
// Table of hexadecimal digits
|
||||
|
24
src/test/java/dk/camelot64/kickc/test/kc/test-lowhigh.kc
Normal file
24
src/test/java/dk/camelot64/kickc/test/kc/test-lowhigh.kc
Normal file
@ -0,0 +1,24 @@
|
||||
import "print.kc"
|
||||
|
||||
void main() {
|
||||
print_cls();
|
||||
for( dword dw = $12345678; dw != $12345690; dw++ ) {
|
||||
dword dw2 = dw;
|
||||
>dw2 = (>dw) + $1111; // Test set/get high word of dword
|
||||
<dw2 = (<dw) + $1111; // Test set/get low word of dword
|
||||
print_dword(dw2);
|
||||
print_char(' ');
|
||||
print_word(>dw2); // Test get high word of dword
|
||||
print_char(' ');
|
||||
print_word(<dw2); // Test get low word of dword
|
||||
print_char(' ');
|
||||
print_byte(> >dw2); // Test get high high byte of dword
|
||||
print_char(' ');
|
||||
print_byte(< >dw2); // Test get low high byte of dword
|
||||
print_char(' ');
|
||||
print_byte(> <dw2); // Test get high low byte of dword
|
||||
print_char(' ');
|
||||
print_byte(< <dw2); // Test get low low byte of dword
|
||||
print_ln();
|
||||
}
|
||||
}
|
@ -13,6 +13,7 @@ void main() {
|
||||
mulf_tables_cmp();
|
||||
mul8u_compare();
|
||||
mul8s_compare();
|
||||
//mul16u_compare();
|
||||
}
|
||||
|
||||
// Slow multiplication of unsigned bytes
|
||||
@ -43,6 +44,18 @@ signed word muls8s(signed byte a, signed byte b) {
|
||||
return m;
|
||||
}
|
||||
|
||||
// Slow multiplication of unsigned words
|
||||
// Calculate an unsigned multiplication by repeated addition
|
||||
dword muls16u(word a, word b) {
|
||||
dword m = 0;
|
||||
if(a!=0) {
|
||||
for(word i = 0; i!=a; i++) {
|
||||
m = m + b;
|
||||
}
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
// ASM based multiplication tables
|
||||
// <(( x * x )/4)
|
||||
byte[512] align($100) mula_sqr1_lo;
|
||||
@ -199,3 +212,40 @@ void mul8s_error(signed byte a, signed byte b, signed word ms, signed word mn, s
|
||||
print_sword(mf);
|
||||
print_ln();
|
||||
}
|
||||
|
||||
// Perform many possible word multiplications (slow and fast) and compare the results
|
||||
void mul16u_compare() {
|
||||
word a = 0;
|
||||
word b = 0;
|
||||
for(byte i: 0..15) {
|
||||
for(byte j: 0..15) {
|
||||
a=a+3371;
|
||||
b=b+4093;
|
||||
dword ms = muls16u(a, b);
|
||||
dword mn = mul16u(a,b);
|
||||
byte ok = 1;
|
||||
if(ms!=mn) {
|
||||
ok = 0;
|
||||
}
|
||||
if(ok==0) {
|
||||
*BGCOL = 2;
|
||||
mul16u_error(a,b, ms, mn);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
print_str("multiply results match!@");
|
||||
print_ln();
|
||||
}
|
||||
|
||||
void mul16u_error(word a, word b, dword ms, dword mn) {
|
||||
print_str("multiply mismatch @");
|
||||
print_word(a);
|
||||
print_str("*@");
|
||||
print_word(b);
|
||||
print_str(" slow:@");
|
||||
print_dword(ms);
|
||||
print_str(" / normal:@");
|
||||
print_dword(mn);
|
||||
print_ln();
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@13
|
||||
@13: scope:[] from @begin
|
||||
to:@14
|
||||
@14: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @13
|
||||
@end: scope:[] from @14
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @13
|
||||
main: scope:[main] from @14
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -106,6 +106,12 @@ void print_word(word w) {
|
||||
print_byte(<w);
|
||||
}
|
||||
|
||||
// Print a dword as HEX
|
||||
void print_dword(dword dw) {
|
||||
print_word(>dw);
|
||||
print_word(<dw);
|
||||
}
|
||||
|
||||
// Print a byte as HEX
|
||||
void print_byte(byte b) {
|
||||
// Table of hexadecimal digits
|
||||
@ -197,6 +203,14 @@ proc (void()) print_word((word) print_word::w)
|
||||
print_word::@return:
|
||||
return
|
||||
endproc // print_word()
|
||||
proc (void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
print_dword::@return:
|
||||
return
|
||||
endproc // print_dword()
|
||||
proc (void()) print_byte((byte) print_byte::b)
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -361,6 +375,13 @@ SYMBOLS
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0
|
||||
(void~) print_dword::$1
|
||||
(word~) print_dword::$2
|
||||
(void~) print_dword::$3
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0
|
||||
(boolean~) print_ln::$1
|
||||
@ -528,6 +549,17 @@ print_word::@return: scope:[print_word] from print_word
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
to:print_dword::@return
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -538,8 +570,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) char_cursor) ← (byte) print_char::ch
|
||||
(byte*) char_cursor ← ++ (byte*) char_cursor
|
||||
@ -547,8 +579,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) SCREEN
|
||||
to:print_cls::@1
|
||||
@ -566,11 +598,11 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
@9: scope:[] from @8
|
||||
(byte*) BGCOL ← ((byte*)) (word/dword/signed dword) 53281
|
||||
(byte) GREEN ← (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(byte) RED ← (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
to:@9
|
||||
to:@10
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_cls
|
||||
*((byte*) BGCOL) ← (byte) GREEN
|
||||
@ -580,8 +612,8 @@ main: scope:[main] from
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
test_bytes: scope:[test_bytes] from
|
||||
(byte) test_bytes::bb ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(void~) test_bytes::$0 ← call assert_byte (string) "0=0@" (byte) test_bytes::bb (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -596,8 +628,8 @@ test_bytes: scope:[test_bytes] from
|
||||
test_bytes::@return: scope:[test_bytes] from test_bytes
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
assert_byte: scope:[assert_byte] from
|
||||
(void~) assert_byte::$0 ← call print_str (byte*) assert_byte::msg
|
||||
(void~) assert_byte::$1 ← call print_str (string) " @"
|
||||
@ -620,8 +652,8 @@ assert_byte::@4: scope:[assert_byte] from
|
||||
assert_byte::@return: scope:[assert_byte] from assert_byte::@2
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
test_sbytes: scope:[test_sbytes] from
|
||||
(signed byte) test_sbytes::bb ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(void~) test_sbytes::$0 ← call assert_sbyte (string) "0=0@" (signed byte) test_sbytes::bb (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -644,8 +676,8 @@ test_sbytes: scope:[test_sbytes] from
|
||||
test_sbytes::@return: scope:[test_sbytes] from test_sbytes
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
assert_sbyte: scope:[assert_sbyte] from
|
||||
(void~) assert_sbyte::$0 ← call print_str (byte*) assert_sbyte::msg
|
||||
(void~) assert_sbyte::$1 ← call print_str (string) " @"
|
||||
@ -668,13 +700,14 @@ assert_sbyte::@4: scope:[assert_sbyte] from
|
||||
assert_sbyte::@return: scope:[assert_sbyte] from assert_sbyte::@2
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
@14: scope:[] from @13
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @13
|
||||
@end: scope:[] from @14
|
||||
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_dword
|
||||
Removing unused procedure print_word
|
||||
Removing unused procedure print_byte
|
||||
Removing unused procedure print_char
|
||||
@ -724,11 +757,12 @@ Removing empty block @4
|
||||
Removing empty block @5
|
||||
Removing empty block @6
|
||||
Removing empty block @7
|
||||
Removing empty block @9
|
||||
Removing empty block @8
|
||||
Removing empty block @10
|
||||
Removing empty block assert_byte::@4
|
||||
Removing empty block @11
|
||||
Removing empty block assert_byte::@4
|
||||
Removing empty block @12
|
||||
Removing empty block @13
|
||||
Removing empty block assert_sbyte::@4
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies char_cursor
|
||||
@ -760,7 +794,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) line_cursor#0 ← (byte*) SCREEN#0
|
||||
(byte*) char_cursor#0 ← (byte*) line_cursor#0
|
||||
to:@8
|
||||
to:@9
|
||||
print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@5 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@5
|
||||
(byte*) char_cursor#80 ← phi( assert_byte/(byte*) char_cursor#70 assert_byte::@1/(byte*) char_cursor#71 assert_byte::@3/(byte*) char_cursor#72 assert_byte::@5/(byte*) char_cursor#15 assert_sbyte/(byte*) char_cursor#75 assert_sbyte::@1/(byte*) char_cursor#76 assert_sbyte::@3/(byte*) char_cursor#77 assert_sbyte::@5/(byte*) char_cursor#27 )
|
||||
(byte*) print_str::str#11 ← phi( assert_byte/(byte*) print_str::str#1 assert_byte::@1/(byte*) print_str::str#3 assert_byte::@3/(byte*) print_str::str#4 assert_byte::@5/(byte*) print_str::str#2 assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(byte*) print_str::str#7 assert_sbyte::@3/(byte*) print_str::str#8 assert_sbyte::@5/(byte*) print_str::str#6 )
|
||||
@ -828,16 +862,16 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) char_cursor#6 ← (byte*) char_cursor#38
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @begin
|
||||
@9: scope:[] from @begin
|
||||
(byte*) char_cursor#81 ← phi( @begin/(byte*) char_cursor#0 )
|
||||
(byte*) line_cursor#58 ← phi( @begin/(byte*) line_cursor#0 )
|
||||
(byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281
|
||||
(byte) GREEN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(byte) RED#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
to:@13
|
||||
main: scope:[main] from @13
|
||||
(byte*) char_cursor#68 ← phi( @13/(byte*) char_cursor#79 )
|
||||
(byte*) line_cursor#48 ← phi( @13/(byte*) line_cursor#53 )
|
||||
to:@14
|
||||
main: scope:[main] from @14
|
||||
(byte*) char_cursor#68 ← phi( @14/(byte*) char_cursor#79 )
|
||||
(byte*) line_cursor#48 ← phi( @14/(byte*) line_cursor#53 )
|
||||
call print_cls param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
@ -1131,23 +1165,23 @@ assert_sbyte::@return: scope:[assert_sbyte] from assert_sbyte::@9
|
||||
(byte*) line_cursor#22 ← (byte*) line_cursor#45
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @8
|
||||
(byte*) char_cursor#79 ← phi( @8/(byte*) char_cursor#81 )
|
||||
(byte*) line_cursor#53 ← phi( @8/(byte*) line_cursor#58 )
|
||||
@14: scope:[] from @9
|
||||
(byte*) char_cursor#79 ← phi( @9/(byte*) char_cursor#81 )
|
||||
(byte*) line_cursor#53 ← phi( @9/(byte*) line_cursor#58 )
|
||||
call main param-assignment
|
||||
to:@14
|
||||
@14: scope:[] from @13
|
||||
(byte*) char_cursor#65 ← phi( @13/(byte*) char_cursor#10 )
|
||||
(byte*) line_cursor#46 ← phi( @13/(byte*) line_cursor#8 )
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
(byte*) char_cursor#65 ← phi( @14/(byte*) char_cursor#10 )
|
||||
(byte*) line_cursor#46 ← phi( @14/(byte*) line_cursor#8 )
|
||||
(byte*) line_cursor#23 ← (byte*) line_cursor#46
|
||||
(byte*) char_cursor#33 ← (byte*) char_cursor#65
|
||||
to:@end
|
||||
@end: scope:[] from @14
|
||||
@end: scope:[] from @15
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @13
|
||||
(label) @14
|
||||
(label) @8
|
||||
(label) @15
|
||||
(label) @9
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
@ -1858,7 +1892,7 @@ Constant (const signed byte) assert_sbyte::b#3 = test_sbytes::be#0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) @8
|
||||
Culled Empty Block (label) @9
|
||||
Culled Empty Block (label) main::@3
|
||||
Culled Empty Block (label) test_bytes::@3
|
||||
Culled Empty Block (label) assert_byte::@7
|
||||
@ -1868,7 +1902,7 @@ Culled Empty Block (label) test_sbytes::@5
|
||||
Culled Empty Block (label) assert_sbyte::@7
|
||||
Culled Empty Block (label) assert_sbyte::@8
|
||||
Culled Empty Block (label) assert_sbyte::@9
|
||||
Culled Empty Block (label) @14
|
||||
Culled Empty Block (label) @15
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: print_str::str#11 print_str::str#1
|
||||
Not aliassing across scopes: char_cursor#80 char_cursor#70
|
||||
@ -1998,12 +2032,12 @@ Constant inlined print_str::str#8 = (const string) assert_sbyte::str2
|
||||
Constant inlined print_str::str#7 = (const string) assert_sbyte::str1
|
||||
Constant inlined print_str::str#6 = (const string) assert_sbyte::str
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @13 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @13 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return print_ln::@3 test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return print_ln::@3 test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @13
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@2
|
||||
@ -2059,9 +2093,9 @@ Coalesced [87] print_cls::sc#3 ← print_cls::sc#1
|
||||
Coalesced down to 10 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @13 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @14 @end main main::@1 main::@2 main::@return test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4 test_sbytes::@return assert_sbyte assert_sbyte::@5 assert_sbyte::@6 assert_sbyte::@3 assert_sbyte::@2 assert_sbyte::@return assert_sbyte::@1 print_str print_str::@1 print_str::@return print_str::@2 print_ln print_ln::@1 print_ln::@return test_bytes test_bytes::@1 test_bytes::@2 test_bytes::@return assert_byte assert_byte::@5 assert_byte::@6 assert_byte::@3 assert_byte::@2 assert_byte::@return assert_byte::@1 print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @13
|
||||
Adding NOP phi() at start of @14
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@2
|
||||
@ -2090,14 +2124,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@13
|
||||
@13: scope:[] from @begin
|
||||
to:@14
|
||||
@14: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @13
|
||||
@end: scope:[] from @14
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @13
|
||||
main: scope:[main] from @14
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -2254,46 +2288,46 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@13 dominated by @13 @begin
|
||||
@end dominated by @end @13 @begin
|
||||
main dominated by main @13 @begin
|
||||
main::@1 dominated by main main::@1 @13 @begin
|
||||
main::@2 dominated by main main::@1 main::@2 @13 @begin
|
||||
main::@return dominated by main::@return main main::@1 main::@2 @13 @begin
|
||||
test_sbytes dominated by main test_sbytes main::@1 main::@2 @13 @begin
|
||||
test_sbytes::@1 dominated by main test_sbytes main::@1 main::@2 @13 @begin test_sbytes::@1
|
||||
test_sbytes::@2 dominated by main test_sbytes main::@1 main::@2 @13 @begin test_sbytes::@1 test_sbytes::@2
|
||||
test_sbytes::@3 dominated by main test_sbytes main::@1 main::@2 @13 @begin test_sbytes::@1 test_sbytes::@2 test_sbytes::@3
|
||||
test_sbytes::@4 dominated by main test_sbytes main::@1 main::@2 @13 @begin test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
|
||||
test_sbytes::@return dominated by test_sbytes::@return main test_sbytes main::@1 main::@2 @13 @begin test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
|
||||
assert_sbyte dominated by assert_sbyte main test_sbytes main::@1 main::@2 @13 @begin
|
||||
assert_sbyte::@5 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @13 @begin assert_sbyte::@5
|
||||
assert_sbyte::@6 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @13 @begin assert_sbyte::@5 assert_sbyte::@6
|
||||
assert_sbyte::@3 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @13 @begin assert_sbyte::@5 assert_sbyte::@3 assert_sbyte::@6
|
||||
assert_sbyte::@2 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @13 @begin assert_sbyte::@5 assert_sbyte::@2 assert_sbyte::@6
|
||||
assert_sbyte::@return dominated by assert_sbyte assert_sbyte::@return main test_sbytes main::@1 main::@2 @13 @begin assert_sbyte::@5 assert_sbyte::@2 assert_sbyte::@6
|
||||
assert_sbyte::@1 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @13 @begin assert_sbyte::@5 assert_sbyte::@1 assert_sbyte::@6
|
||||
print_str dominated by main main::@1 @13 @begin print_str
|
||||
print_str::@1 dominated by main print_str::@1 main::@1 @13 @begin print_str
|
||||
print_str::@return dominated by print_str::@return main print_str::@1 main::@1 @13 @begin print_str
|
||||
print_str::@2 dominated by main print_str::@1 print_str::@2 main::@1 @13 @begin print_str
|
||||
print_ln dominated by main main::@1 @13 @begin print_ln
|
||||
print_ln::@1 dominated by print_ln::@1 main main::@1 @13 @begin print_ln
|
||||
print_ln::@return dominated by print_ln::@1 main print_ln::@return main::@1 @13 @begin print_ln
|
||||
test_bytes dominated by test_bytes main main::@1 @13 @begin
|
||||
test_bytes::@1 dominated by test_bytes main main::@1 @13 @begin test_bytes::@1
|
||||
test_bytes::@2 dominated by test_bytes main main::@1 @13 @begin test_bytes::@2 test_bytes::@1
|
||||
test_bytes::@return dominated by test_bytes main main::@1 @13 @begin test_bytes::@2 test_bytes::@1 test_bytes::@return
|
||||
assert_byte dominated by test_bytes main main::@1 @13 @begin assert_byte
|
||||
assert_byte::@5 dominated by test_bytes main assert_byte::@5 main::@1 @13 @begin assert_byte
|
||||
assert_byte::@6 dominated by test_bytes main assert_byte::@5 assert_byte::@6 main::@1 @13 @begin assert_byte
|
||||
assert_byte::@3 dominated by test_bytes assert_byte::@3 main assert_byte::@5 assert_byte::@6 main::@1 @13 @begin assert_byte
|
||||
assert_byte::@2 dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@2 main::@1 @13 @begin assert_byte
|
||||
assert_byte::@return dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@2 main::@1 assert_byte::@return @13 @begin assert_byte
|
||||
assert_byte::@1 dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@1 main::@1 @13 @begin assert_byte
|
||||
print_cls dominated by main @13 @begin print_cls
|
||||
print_cls::@1 dominated by main @13 @begin print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main print_cls::@return @13 @begin print_cls::@1 print_cls
|
||||
@14 dominated by @begin @14
|
||||
@end dominated by @end @begin @14
|
||||
main dominated by main @begin @14
|
||||
main::@1 dominated by main main::@1 @begin @14
|
||||
main::@2 dominated by main main::@1 main::@2 @begin @14
|
||||
main::@return dominated by main::@return main main::@1 main::@2 @begin @14
|
||||
test_sbytes dominated by main test_sbytes main::@1 main::@2 @begin @14
|
||||
test_sbytes::@1 dominated by main test_sbytes main::@1 main::@2 @begin @14 test_sbytes::@1
|
||||
test_sbytes::@2 dominated by main test_sbytes main::@1 main::@2 @begin @14 test_sbytes::@1 test_sbytes::@2
|
||||
test_sbytes::@3 dominated by main test_sbytes main::@1 main::@2 @begin @14 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3
|
||||
test_sbytes::@4 dominated by main test_sbytes main::@1 main::@2 @begin @14 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
|
||||
test_sbytes::@return dominated by test_sbytes::@return main test_sbytes main::@1 main::@2 @begin @14 test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
|
||||
assert_sbyte dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @14
|
||||
assert_sbyte::@5 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @14 assert_sbyte::@5
|
||||
assert_sbyte::@6 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @14 assert_sbyte::@5 assert_sbyte::@6
|
||||
assert_sbyte::@3 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @14 assert_sbyte::@5 assert_sbyte::@3 assert_sbyte::@6
|
||||
assert_sbyte::@2 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @14 assert_sbyte::@5 assert_sbyte::@2 assert_sbyte::@6
|
||||
assert_sbyte::@return dominated by assert_sbyte assert_sbyte::@return main test_sbytes main::@1 main::@2 @begin @14 assert_sbyte::@5 assert_sbyte::@2 assert_sbyte::@6
|
||||
assert_sbyte::@1 dominated by assert_sbyte main test_sbytes main::@1 main::@2 @begin @14 assert_sbyte::@5 assert_sbyte::@1 assert_sbyte::@6
|
||||
print_str dominated by main main::@1 @begin @14 print_str
|
||||
print_str::@1 dominated by main print_str::@1 main::@1 @begin @14 print_str
|
||||
print_str::@return dominated by print_str::@return main print_str::@1 main::@1 @begin @14 print_str
|
||||
print_str::@2 dominated by main print_str::@1 print_str::@2 main::@1 @begin @14 print_str
|
||||
print_ln dominated by main main::@1 @begin @14 print_ln
|
||||
print_ln::@1 dominated by print_ln::@1 main main::@1 @begin @14 print_ln
|
||||
print_ln::@return dominated by print_ln::@1 main print_ln::@return main::@1 @begin @14 print_ln
|
||||
test_bytes dominated by test_bytes main main::@1 @begin @14
|
||||
test_bytes::@1 dominated by test_bytes main main::@1 @begin @14 test_bytes::@1
|
||||
test_bytes::@2 dominated by test_bytes main main::@1 @begin @14 test_bytes::@2 test_bytes::@1
|
||||
test_bytes::@return dominated by test_bytes main main::@1 @begin @14 test_bytes::@2 test_bytes::@1 test_bytes::@return
|
||||
assert_byte dominated by test_bytes main main::@1 @begin @14 assert_byte
|
||||
assert_byte::@5 dominated by test_bytes main assert_byte::@5 main::@1 @begin @14 assert_byte
|
||||
assert_byte::@6 dominated by test_bytes main assert_byte::@5 assert_byte::@6 main::@1 @begin @14 assert_byte
|
||||
assert_byte::@3 dominated by test_bytes assert_byte::@3 main assert_byte::@5 assert_byte::@6 main::@1 @begin @14 assert_byte
|
||||
assert_byte::@2 dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@2 main::@1 @begin @14 assert_byte
|
||||
assert_byte::@return dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@2 main::@1 assert_byte::@return @begin @14 assert_byte
|
||||
assert_byte::@1 dominated by test_bytes main assert_byte::@5 assert_byte::@6 assert_byte::@1 main::@1 @begin @14 assert_byte
|
||||
print_cls dominated by main @begin @14 print_cls
|
||||
print_cls::@1 dominated by main @begin @14 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main print_cls::@return @begin @14 print_cls::@1 print_cls
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: print_str::@1 tails: print_str::@2 blocks: null
|
||||
@ -2427,17 +2461,17 @@ INITIAL ASM
|
||||
.label line_cursor = $a
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @13 [phi:@begin->@13]
|
||||
b13_from_bbegin:
|
||||
jmp b13
|
||||
//SEG4 @13
|
||||
b13:
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
b14_from_bbegin:
|
||||
jmp b14
|
||||
//SEG4 @14
|
||||
b14:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @13 to main [phi:@13->main]
|
||||
main_from_b13:
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
main_from_b14:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @13 to @end [phi:@13->@end]
|
||||
bend_from_b13:
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
bend_from_b14:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -3065,17 +3099,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label line_cursor = 7
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @13 [phi:@begin->@13]
|
||||
b13_from_bbegin:
|
||||
jmp b13
|
||||
//SEG4 @13
|
||||
b13:
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
b14_from_bbegin:
|
||||
jmp b14
|
||||
//SEG4 @14
|
||||
b14:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @13 to main [phi:@13->main]
|
||||
main_from_b13:
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
main_from_b14:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @13 to @end [phi:@13->@end]
|
||||
bend_from_b13:
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
bend_from_b14:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -3592,7 +3626,7 @@ print_cls: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b13
|
||||
Removing instruction jmp b14
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b2
|
||||
@ -3636,9 +3670,9 @@ Replacing label b2_from_b1 with b2
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b13_from_bbegin:
|
||||
Removing instruction main_from_b13:
|
||||
Removing instruction bend_from_b13:
|
||||
Removing instruction b14_from_bbegin:
|
||||
Removing instruction main_from_b14:
|
||||
Removing instruction bend_from_b14:
|
||||
Removing instruction b2_from_b1:
|
||||
Removing instruction test_sbytes_from_b2:
|
||||
Removing instruction b1_from_test_sbytes:
|
||||
@ -3669,7 +3703,7 @@ Removing instruction b1_from_b6:
|
||||
Removing instruction print_str_from_b1:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b13:
|
||||
Removing instruction b14:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1:
|
||||
@ -3709,7 +3743,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @13
|
||||
(label) @14
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
@ -3846,12 +3880,12 @@ Score: 1846
|
||||
.label char_cursor = 5
|
||||
.label line_cursor = 7
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @13 [phi:@begin->@13]
|
||||
//SEG4 @13
|
||||
//SEG3 [1] phi from @begin to @14 [phi:@begin->@14]
|
||||
//SEG4 @14
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @13 to main [phi:@13->main]
|
||||
//SEG6 [4] phi from @14 to main [phi:@14->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @13 to @end [phi:@13->@end]
|
||||
//SEG7 [3] phi from @14 to @end [phi:@14->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @13
|
||||
(label) @14
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@9
|
||||
@9: scope:[] from @begin
|
||||
to:@10
|
||||
@10: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @9
|
||||
@end: scope:[] from @10
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @9
|
||||
main: scope:[main] from @10
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -59,6 +59,12 @@ void print_word(word w) {
|
||||
print_byte(<w);
|
||||
}
|
||||
|
||||
// Print a dword as HEX
|
||||
void print_dword(dword dw) {
|
||||
print_word(>dw);
|
||||
print_word(<dw);
|
||||
}
|
||||
|
||||
// Print a byte as HEX
|
||||
void print_byte(byte b) {
|
||||
// Table of hexadecimal digits
|
||||
@ -151,6 +157,14 @@ proc (void()) print_word((word) print_word::w)
|
||||
print_word::@return:
|
||||
return
|
||||
endproc // print_word()
|
||||
proc (void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
print_dword::@return:
|
||||
return
|
||||
endproc // print_dword()
|
||||
proc (void()) print_byte((byte) print_byte::b)
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -224,6 +238,13 @@ SYMBOLS
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0
|
||||
(void~) print_dword::$1
|
||||
(word~) print_dword::$2
|
||||
(void~) print_dword::$3
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0
|
||||
(boolean~) print_ln::$1
|
||||
@ -361,6 +382,17 @@ print_word::@return: scope:[print_word] from print_word
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
to:print_dword::@return
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -371,8 +403,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) char_cursor) ← (byte) print_char::ch
|
||||
(byte*) char_cursor ← ++ (byte*) char_cursor
|
||||
@ -380,8 +412,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) SCREEN
|
||||
to:print_cls::@1
|
||||
@ -399,9 +431,9 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
@9: scope:[] from @8
|
||||
(byte[]) txt ← (string) "camelot@"
|
||||
to:@9
|
||||
to:@10
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_cls
|
||||
(byte) main::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -419,13 +451,14 @@ main::@2: scope:[main] from main::@1
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
@10: scope:[] from @9
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @9
|
||||
@end: scope:[] from @10
|
||||
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_dword
|
||||
Removing unused procedure print_word
|
||||
Removing unused procedure print_byte
|
||||
Removing unused procedure print_char
|
||||
@ -444,6 +477,7 @@ Removing empty block @4
|
||||
Removing empty block @5
|
||||
Removing empty block @6
|
||||
Removing empty block @7
|
||||
Removing empty block @8
|
||||
Removing empty block main::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies char_cursor
|
||||
@ -463,7 +497,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) line_cursor#0 ← (byte*) SCREEN#0
|
||||
(byte*) char_cursor#0 ← (byte*) line_cursor#0
|
||||
to:@8
|
||||
to:@9
|
||||
print_str: scope:[print_str] from main::@1
|
||||
(byte*) char_cursor#27 ← phi( main::@1/(byte*) char_cursor#25 )
|
||||
(byte*) print_str::str#4 ← phi( main::@1/(byte*) print_str::str#1 )
|
||||
@ -531,14 +565,14 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) char_cursor#6 ← (byte*) char_cursor#16
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @begin
|
||||
@9: scope:[] from @begin
|
||||
(byte*) char_cursor#28 ← phi( @begin/(byte*) char_cursor#0 )
|
||||
(byte*) line_cursor#22 ← phi( @begin/(byte*) line_cursor#0 )
|
||||
(byte[]) txt#0 ← (const string) $0
|
||||
to:@9
|
||||
main: scope:[main] from @9
|
||||
(byte*) char_cursor#24 ← phi( @9/(byte*) char_cursor#26 )
|
||||
(byte*) line_cursor#18 ← phi( @9/(byte*) line_cursor#20 )
|
||||
to:@10
|
||||
main: scope:[main] from @10
|
||||
(byte*) char_cursor#24 ← phi( @10/(byte*) char_cursor#26 )
|
||||
(byte*) line_cursor#18 ← phi( @10/(byte*) line_cursor#20 )
|
||||
call print_cls param-assignment
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main
|
||||
@ -580,23 +614,23 @@ main::@return: scope:[main] from main::@5
|
||||
(byte*) char_cursor#10 ← (byte*) char_cursor#20
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
(byte*) char_cursor#26 ← phi( @8/(byte*) char_cursor#28 )
|
||||
(byte*) line_cursor#20 ← phi( @8/(byte*) line_cursor#22 )
|
||||
call main param-assignment
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
(byte*) char_cursor#21 ← phi( @9/(byte*) char_cursor#10 )
|
||||
(byte*) line_cursor#16 ← phi( @9/(byte*) line_cursor#7 )
|
||||
(byte*) char_cursor#26 ← phi( @9/(byte*) char_cursor#28 )
|
||||
(byte*) line_cursor#20 ← phi( @9/(byte*) line_cursor#22 )
|
||||
call main param-assignment
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
(byte*) char_cursor#21 ← phi( @10/(byte*) char_cursor#10 )
|
||||
(byte*) line_cursor#16 ← phi( @10/(byte*) line_cursor#7 )
|
||||
(byte*) line_cursor#8 ← (byte*) line_cursor#16
|
||||
(byte*) char_cursor#11 ← (byte*) char_cursor#21
|
||||
to:@end
|
||||
@end: scope:[] from @10
|
||||
@end: scope:[] from @11
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(const string) $0 = (string) "camelot@"
|
||||
(label) @10
|
||||
(label) @8
|
||||
(label) @11
|
||||
(label) @9
|
||||
(label) @begin
|
||||
(label) @end
|
||||
@ -783,9 +817,9 @@ Consolidated array index constant in *(txt#0+1)
|
||||
Succesful SSA optimization Pass2ConstantAdditionElimination
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) @8
|
||||
Culled Empty Block (label) @9
|
||||
Culled Empty Block (label) main::@3
|
||||
Culled Empty Block (label) @10
|
||||
Culled Empty Block (label) @11
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: char_cursor#12 char_cursor#25
|
||||
Not aliassing across scopes: line_cursor#9 line_cursor#19
|
||||
@ -808,13 +842,13 @@ Constant inlined print_cls::$0 = (const byte*) SCREEN#0+(word/signed word/dword/
|
||||
Constant inlined print_cls::sc#0 = (const byte*) SCREEN#0
|
||||
Constant inlined $0 = (const string) txt#0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @9 @end main main::@1 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting main::@6(between main::@5 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @9 @end main main::@1 main::@4 main::@5 main::@return main::@6 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@4 main::@5 main::@return main::@6 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @9
|
||||
Adding NOP phi() at start of @10
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@4
|
||||
@ -843,9 +877,9 @@ Coalesced [38] print_cls::sc#3 ← print_cls::sc#1
|
||||
Coalesced down to 5 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @9 @end main main::@1 main::@4 main::@5 main::@return main::@6 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@4 main::@5 main::@return main::@6 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @9
|
||||
Adding NOP phi() at start of @10
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@4
|
||||
@ -863,14 +897,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@9
|
||||
@9: scope:[] from @begin
|
||||
to:@10
|
||||
@10: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @9
|
||||
@end: scope:[] from @10
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @9
|
||||
main: scope:[main] from @10
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -937,24 +971,24 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@9 dominated by @begin @9
|
||||
@end dominated by @begin @end @9
|
||||
main dominated by @begin main @9
|
||||
main::@1 dominated by @begin main main::@1 @9
|
||||
main::@4 dominated by @begin main main::@1 @9 main::@4
|
||||
main::@5 dominated by @begin main main::@1 @9 main::@5 main::@4
|
||||
main::@return dominated by main::@return @begin main main::@1 @9 main::@5 main::@4
|
||||
main::@6 dominated by @begin main main::@1 @9 main::@5 main::@6 main::@4
|
||||
print_ln dominated by @begin main print_ln main::@1 @9 main::@4
|
||||
print_ln::@1 dominated by print_ln::@1 @begin main print_ln main::@1 @9 main::@4
|
||||
print_ln::@return dominated by print_ln::@1 @begin main print_ln print_ln::@return main::@1 @9 main::@4
|
||||
print_str dominated by @begin main print_str main::@1 @9
|
||||
print_str::@1 dominated by @begin main print_str::@1 print_str main::@1 @9
|
||||
print_str::@return dominated by @begin print_str::@return main print_str::@1 print_str main::@1 @9
|
||||
print_str::@2 dominated by @begin main print_str::@1 print_str::@2 print_str main::@1 @9
|
||||
print_cls dominated by @begin main print_cls @9
|
||||
print_cls::@1 dominated by @begin print_cls::@1 main print_cls @9
|
||||
print_cls::@return dominated by @begin print_cls::@1 main print_cls print_cls::@return @9
|
||||
@10 dominated by @begin @10
|
||||
@end dominated by @begin @end @10
|
||||
main dominated by @begin main @10
|
||||
main::@1 dominated by @begin main main::@1 @10
|
||||
main::@4 dominated by @begin main main::@1 @10 main::@4
|
||||
main::@5 dominated by @begin main main::@1 main::@5 @10 main::@4
|
||||
main::@return dominated by main::@return @begin main main::@1 main::@5 @10 main::@4
|
||||
main::@6 dominated by @begin main main::@1 main::@5 main::@6 @10 main::@4
|
||||
print_ln dominated by @begin main print_ln main::@1 @10 main::@4
|
||||
print_ln::@1 dominated by print_ln::@1 @begin main print_ln main::@1 @10 main::@4
|
||||
print_ln::@return dominated by print_ln::@1 @begin main print_ln print_ln::@return main::@1 @10 main::@4
|
||||
print_str dominated by @begin main print_str main::@1 @10
|
||||
print_str::@1 dominated by @begin main print_str::@1 print_str main::@1 @10
|
||||
print_str::@return dominated by @begin print_str::@return main print_str::@1 print_str main::@1 @10
|
||||
print_str::@2 dominated by @begin main print_str::@1 print_str::@2 print_str main::@1 @10
|
||||
print_cls dominated by @begin main print_cls @10
|
||||
print_cls::@1 dominated by @begin print_cls::@1 main print_cls @10
|
||||
print_cls::@return dominated by @begin print_cls::@1 main print_cls print_cls::@return @10
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@6 blocks: null
|
||||
@ -1041,17 +1075,17 @@ INITIAL ASM
|
||||
.label line_cursor = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @9 [phi:@begin->@9]
|
||||
b9_from_bbegin:
|
||||
jmp b9
|
||||
//SEG4 @9
|
||||
b9:
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
b10_from_bbegin:
|
||||
jmp b10
|
||||
//SEG4 @10
|
||||
b10:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @9 to main [phi:@9->main]
|
||||
main_from_b9:
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
main_from_b10:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @9 to @end [phi:@9->@end]
|
||||
bend_from_b9:
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
bend_from_b10:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -1299,17 +1333,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label line_cursor = 2
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @9 [phi:@begin->@9]
|
||||
b9_from_bbegin:
|
||||
jmp b9
|
||||
//SEG4 @9
|
||||
b9:
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
b10_from_bbegin:
|
||||
jmp b10
|
||||
//SEG4 @10
|
||||
b10:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @9 to main [phi:@9->main]
|
||||
main_from_b9:
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
main_from_b10:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @9 to @end [phi:@9->@end]
|
||||
bend_from_b9:
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
bend_from_b10:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -1502,7 +1536,7 @@ print_cls: {
|
||||
txt: .text "camelot@"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b9
|
||||
Removing instruction jmp b10
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b4
|
||||
@ -1522,9 +1556,9 @@ Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b9_from_bbegin:
|
||||
Removing instruction main_from_b9:
|
||||
Removing instruction bend_from_b9:
|
||||
Removing instruction b10_from_bbegin:
|
||||
Removing instruction main_from_b10:
|
||||
Removing instruction bend_from_b10:
|
||||
Removing instruction print_str_from_b1:
|
||||
Removing instruction b4_from_b1:
|
||||
Removing instruction print_ln_from_b4:
|
||||
@ -1532,7 +1566,7 @@ Removing instruction b1_from_print_ln:
|
||||
Removing instruction b1_from_b1:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b9:
|
||||
Removing instruction b10:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1_from_main:
|
||||
@ -1551,7 +1585,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @9
|
||||
(label) @10
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -1611,12 +1645,12 @@ Score: 11128
|
||||
.label char_cursor = 6
|
||||
.label line_cursor = 2
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @9 [phi:@begin->@9]
|
||||
//SEG4 @9
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
//SEG4 @10
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @9 to main [phi:@9->main]
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @9 to @end [phi:@9->@end]
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @9
|
||||
(label) @10
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@9
|
||||
@9: scope:[] from @begin
|
||||
to:@10
|
||||
@10: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @9
|
||||
@end: scope:[] from @10
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @9
|
||||
main: scope:[main] from @10
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_str param-assignment [ char_cursor#13 ] ( main:2 [ char_cursor#13 ] )
|
||||
to:main::@1
|
||||
|
@ -61,6 +61,12 @@ void print_word(word w) {
|
||||
print_byte(<w);
|
||||
}
|
||||
|
||||
// Print a dword as HEX
|
||||
void print_dword(dword dw) {
|
||||
print_word(>dw);
|
||||
print_word(<dw);
|
||||
}
|
||||
|
||||
// Print a byte as HEX
|
||||
void print_byte(byte b) {
|
||||
// Table of hexadecimal digits
|
||||
@ -152,6 +158,14 @@ proc (void()) print_word((word) print_word::w)
|
||||
print_word::@return:
|
||||
return
|
||||
endproc // print_word()
|
||||
proc (void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
print_dword::@return:
|
||||
return
|
||||
endproc // print_dword()
|
||||
proc (void()) print_byte((byte) print_byte::b)
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -227,6 +241,13 @@ SYMBOLS
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0
|
||||
(void~) print_dword::$1
|
||||
(word~) print_dword::$2
|
||||
(void~) print_dword::$3
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0
|
||||
(boolean~) print_ln::$1
|
||||
@ -363,6 +384,17 @@ print_word::@return: scope:[print_word] from print_word
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
to:print_dword::@return
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -373,8 +405,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) char_cursor) ← (byte) print_char::ch
|
||||
(byte*) char_cursor ← ++ (byte*) char_cursor
|
||||
@ -382,8 +414,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) SCREEN
|
||||
to:print_cls::@1
|
||||
@ -401,11 +433,11 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
@9: scope:[] from @8
|
||||
(byte[]) msg ← (string) "hello world! @"
|
||||
(byte[]) msg2 ← (string) "hello c64! @"
|
||||
(byte[]) msg3 ← (string) "hello 2017! @"
|
||||
to:@9
|
||||
to:@10
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_str (byte[]) msg
|
||||
(void~) main::$1 ← call print_ln
|
||||
@ -417,13 +449,14 @@ main: scope:[main] from
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
@10: scope:[] from @9
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @9
|
||||
@end: scope:[] from @10
|
||||
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_dword
|
||||
Removing unused procedure print_cls
|
||||
Removing unused procedure print_word
|
||||
Removing unused procedure print_byte
|
||||
@ -448,6 +481,7 @@ Removing empty block @4
|
||||
Removing empty block @5
|
||||
Removing empty block @6
|
||||
Removing empty block @7
|
||||
Removing empty block @8
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies char_cursor
|
||||
print_ln modifies line_cursor
|
||||
@ -464,7 +498,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) line_cursor#0 ← (byte*) SCREEN#0
|
||||
(byte*) char_cursor#0 ← (byte*) line_cursor#0
|
||||
to:@8
|
||||
to:@9
|
||||
print_str: scope:[print_str] from main main::@2 main::@4
|
||||
(byte*) char_cursor#29 ← phi( main/(byte*) char_cursor#27 main::@2/(byte*) char_cursor#6 main::@4/(byte*) char_cursor#8 )
|
||||
(byte*) print_str::str#6 ← phi( main/(byte*) print_str::str#1 main::@2/(byte*) print_str::str#2 main::@4/(byte*) print_str::str#3 )
|
||||
@ -510,16 +544,16 @@ print_ln::@return: scope:[print_ln] from print_ln::@2
|
||||
(byte*) char_cursor#4 ← (byte*) char_cursor#16
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @begin
|
||||
@9: scope:[] from @begin
|
||||
(byte*) line_cursor#22 ← phi( @begin/(byte*) line_cursor#0 )
|
||||
(byte*) char_cursor#30 ← phi( @begin/(byte*) char_cursor#0 )
|
||||
(byte[]) msg#0 ← (const string) $0
|
||||
(byte[]) msg2#0 ← (const string) $1
|
||||
(byte[]) msg3#0 ← (const string) $2
|
||||
to:@9
|
||||
main: scope:[main] from @9
|
||||
(byte*) line_cursor#21 ← phi( @9/(byte*) line_cursor#20 )
|
||||
(byte*) char_cursor#27 ← phi( @9/(byte*) char_cursor#28 )
|
||||
to:@10
|
||||
main: scope:[main] from @10
|
||||
(byte*) line_cursor#21 ← phi( @10/(byte*) line_cursor#20 )
|
||||
(byte*) char_cursor#27 ← phi( @10/(byte*) char_cursor#28 )
|
||||
(byte*) print_str::str#1 ← (byte[]) msg#0
|
||||
call print_str param-assignment
|
||||
to:main::@1
|
||||
@ -570,25 +604,25 @@ main::@return: scope:[main] from main::@6
|
||||
(byte*) line_cursor#6 ← (byte*) line_cursor#14
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
(byte*) line_cursor#20 ← phi( @8/(byte*) line_cursor#22 )
|
||||
(byte*) char_cursor#28 ← phi( @8/(byte*) char_cursor#30 )
|
||||
call main param-assignment
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
(byte*) line_cursor#15 ← phi( @9/(byte*) line_cursor#6 )
|
||||
(byte*) char_cursor#24 ← phi( @9/(byte*) char_cursor#11 )
|
||||
(byte*) line_cursor#20 ← phi( @9/(byte*) line_cursor#22 )
|
||||
(byte*) char_cursor#28 ← phi( @9/(byte*) char_cursor#30 )
|
||||
call main param-assignment
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
(byte*) line_cursor#15 ← phi( @10/(byte*) line_cursor#6 )
|
||||
(byte*) char_cursor#24 ← phi( @10/(byte*) char_cursor#11 )
|
||||
(byte*) char_cursor#12 ← (byte*) char_cursor#24
|
||||
(byte*) line_cursor#7 ← (byte*) line_cursor#15
|
||||
to:@end
|
||||
@end: scope:[] from @10
|
||||
@end: scope:[] from @11
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(const string) $0 = (string) "hello world! @"
|
||||
(const string) $1 = (string) "hello c64! @"
|
||||
(const string) $2 = (string) "hello 2017! @"
|
||||
(label) @10
|
||||
(label) @8
|
||||
(label) @11
|
||||
(label) @9
|
||||
(label) @begin
|
||||
(label) @end
|
||||
@ -774,9 +808,9 @@ Constant (const string) print_str::str#2 = msg2#0
|
||||
Constant (const string) print_str::str#3 = msg3#0
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) @8
|
||||
Culled Empty Block (label) @9
|
||||
Culled Empty Block (label) main::@6
|
||||
Culled Empty Block (label) @10
|
||||
Culled Empty Block (label) @11
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
OPTIMIZING CONTROL FLOW GRAPH
|
||||
Inlining constant with var siblings (const string) print_str::str#1
|
||||
@ -795,11 +829,11 @@ Constant inlined $0 = (const string) msg#0
|
||||
Constant inlined $1 = (const string) msg2#0
|
||||
Constant inlined $2 = (const string) msg3#0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @9 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Block Sequence Planned @begin @9 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @9
|
||||
Adding NOP phi() at start of @10
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -828,9 +862,9 @@ Coalesced [33] print_str::str#8 ← print_str::str#0
|
||||
Coalesced [34] char_cursor#34 ← char_cursor#1
|
||||
Coalesced down to 3 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Block Sequence Planned @begin @9 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @9
|
||||
Adding NOP phi() at start of @10
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -847,14 +881,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@9
|
||||
@9: scope:[] from @begin
|
||||
to:@10
|
||||
@10: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @9
|
||||
@end: scope:[] from @10
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @9
|
||||
main: scope:[main] from @10
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_str param-assignment [ char_cursor#13 ] ( main:2 [ char_cursor#13 ] )
|
||||
to:main::@1
|
||||
@ -912,22 +946,22 @@ print_str::@2: scope:[print_str] from print_str::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@9 dominated by @begin @9
|
||||
@end dominated by @begin @end @9
|
||||
main dominated by @begin main @9
|
||||
main::@1 dominated by @begin main main::@1 @9
|
||||
main::@2 dominated by @begin main main::@1 @9 main::@2
|
||||
main::@3 dominated by @begin main main::@1 @9 main::@2 main::@3
|
||||
main::@4 dominated by @begin main main::@1 @9 main::@2 main::@3 main::@4
|
||||
main::@5 dominated by @begin main main::@1 @9 main::@2 main::@5 main::@3 main::@4
|
||||
main::@return dominated by main::@return @begin main main::@1 @9 main::@2 main::@5 main::@3 main::@4
|
||||
print_ln dominated by @begin main print_ln main::@1 @9
|
||||
print_ln::@1 dominated by print_ln::@1 @begin main print_ln main::@1 @9
|
||||
print_ln::@return dominated by print_ln::@1 @begin main print_ln print_ln::@return main::@1 @9
|
||||
print_str dominated by @begin main print_str @9
|
||||
print_str::@1 dominated by @begin main print_str::@1 print_str @9
|
||||
print_str::@return dominated by @begin print_str::@return main print_str::@1 print_str @9
|
||||
print_str::@2 dominated by @begin main print_str::@1 print_str::@2 print_str @9
|
||||
@10 dominated by @begin @10
|
||||
@end dominated by @begin @end @10
|
||||
main dominated by @begin main @10
|
||||
main::@1 dominated by @begin main main::@1 @10
|
||||
main::@2 dominated by @begin main main::@1 main::@2 @10
|
||||
main::@3 dominated by @begin main main::@1 main::@2 main::@3 @10
|
||||
main::@4 dominated by @begin main main::@1 main::@2 main::@3 @10 main::@4
|
||||
main::@5 dominated by @begin main main::@1 main::@2 main::@5 main::@3 @10 main::@4
|
||||
main::@return dominated by main::@return @begin main main::@1 main::@2 main::@5 main::@3 @10 main::@4
|
||||
print_ln dominated by @begin main print_ln main::@1 @10
|
||||
print_ln::@1 dominated by print_ln::@1 @begin main print_ln main::@1 @10
|
||||
print_ln::@return dominated by print_ln::@1 @begin main print_ln print_ln::@return main::@1 @10
|
||||
print_str dominated by @begin main print_str @10
|
||||
print_str::@1 dominated by @begin main print_str::@1 print_str @10
|
||||
print_str::@return dominated by @begin print_str::@return main print_str::@1 print_str @10
|
||||
print_str::@2 dominated by @begin main print_str::@1 print_str::@2 print_str @10
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: print_ln::@1 tails: print_ln::@1 blocks: null
|
||||
@ -994,17 +1028,17 @@ INITIAL ASM
|
||||
.label line_cursor = 2
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @9 [phi:@begin->@9]
|
||||
b9_from_bbegin:
|
||||
jmp b9
|
||||
//SEG4 @9
|
||||
b9:
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
b10_from_bbegin:
|
||||
jmp b10
|
||||
//SEG4 @10
|
||||
b10:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @9 to main [phi:@9->main]
|
||||
main_from_b9:
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
main_from_b10:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @9 to @end [phi:@9->@end]
|
||||
bend_from_b9:
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
bend_from_b10:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -1209,17 +1243,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label line_cursor = 2
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @9 [phi:@begin->@9]
|
||||
b9_from_bbegin:
|
||||
jmp b9
|
||||
//SEG4 @9
|
||||
b9:
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
b10_from_bbegin:
|
||||
jmp b10
|
||||
//SEG4 @10
|
||||
b10:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @9 to main [phi:@9->main]
|
||||
main_from_b9:
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
main_from_b10:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @9 to @end [phi:@9->@end]
|
||||
bend_from_b9:
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
bend_from_b10:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -1392,7 +1426,7 @@ print_str: {
|
||||
msg3: .text "hello 2017! @"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b9
|
||||
Removing instruction jmp b10
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b2
|
||||
@ -1411,9 +1445,9 @@ Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b2 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b9_from_bbegin:
|
||||
Removing instruction main_from_b9:
|
||||
Removing instruction bend_from_b9:
|
||||
Removing instruction b10_from_bbegin:
|
||||
Removing instruction main_from_b10:
|
||||
Removing instruction bend_from_b10:
|
||||
Removing instruction b1_from_main:
|
||||
Removing instruction print_ln_from_b1:
|
||||
Removing instruction b3_from_b2:
|
||||
@ -1425,7 +1459,7 @@ Removing instruction b1_from_b1:
|
||||
Removing instruction b1_from_print_str:
|
||||
Removing instruction b1_from_b2:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b9:
|
||||
Removing instruction b10:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_str_from_main:
|
||||
Removing instruction b1:
|
||||
@ -1441,7 +1475,7 @@ Removing instruction breturn:
|
||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @9
|
||||
(label) @10
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -1498,12 +1532,12 @@ Score: 1039
|
||||
.label char_cursor = 6
|
||||
.label line_cursor = 2
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @9 [phi:@begin->@9]
|
||||
//SEG4 @9
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
//SEG4 @10
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @9 to main [phi:@9->main]
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @9 to @end [phi:@9->@end]
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @9
|
||||
(label) @10
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@36
|
||||
@36: scope:[] from @begin
|
||||
to:@37
|
||||
@37: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @36
|
||||
@end: scope:[] from @37
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @36
|
||||
main: scope:[main] from @37
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call setFAC param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@3
|
||||
|
@ -70,6 +70,12 @@ void print_word(word w) {
|
||||
print_byte(<w);
|
||||
}
|
||||
|
||||
// Print a dword as HEX
|
||||
void print_dword(dword dw) {
|
||||
print_word(>dw);
|
||||
print_word(<dw);
|
||||
}
|
||||
|
||||
// Print a byte as HEX
|
||||
void print_byte(byte b) {
|
||||
// Table of hexadecimal digits
|
||||
@ -440,6 +446,14 @@ proc (void()) print_word((word) print_word::w)
|
||||
print_word::@return:
|
||||
return
|
||||
endproc // print_word()
|
||||
proc (void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
print_dword::@return:
|
||||
return
|
||||
endproc // print_dword()
|
||||
proc (void()) print_byte((byte) print_byte::b)
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -734,6 +748,13 @@ SYMBOLS
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0
|
||||
(void~) print_dword::$1
|
||||
(word~) print_dword::$2
|
||||
(void~) print_dword::$3
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0
|
||||
(boolean~) print_ln::$1
|
||||
@ -914,6 +935,17 @@ print_word::@return: scope:[print_word] from print_word
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
to:print_dword::@return
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -924,8 +956,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) char_cursor) ← (byte) print_char::ch
|
||||
(byte*) char_cursor ← ++ (byte*) char_cursor
|
||||
@ -933,8 +965,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) SCREEN
|
||||
to:print_cls::@1
|
||||
@ -952,10 +984,10 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
@9: scope:[] from @8
|
||||
(byte*) memLo ← ((byte*)) (byte/word/signed word/dword/signed dword) 254
|
||||
(byte*) memHi ← ((byte*)) (byte/word/signed word/dword/signed dword) 255
|
||||
to:@9
|
||||
to:@10
|
||||
prepareMEM: scope:[prepareMEM] from
|
||||
(byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem
|
||||
*((byte*) memLo) ← (byte~) prepareMEM::$0
|
||||
@ -965,8 +997,8 @@ prepareMEM: scope:[prepareMEM] from
|
||||
prepareMEM::@return: scope:[prepareMEM] from prepareMEM
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
setFAC: scope:[setFAC] from
|
||||
(byte*~) setFAC::$0 ← ((byte*)) (word) setFAC::w
|
||||
(void~) setFAC::$1 ← call prepareMEM (byte*~) setFAC::$0
|
||||
@ -975,8 +1007,8 @@ setFAC: scope:[setFAC] from
|
||||
setFAC::@return: scope:[setFAC] from setFAC
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
getFAC: scope:[getFAC] from
|
||||
asm { jsr$b1aa sty$fe sta$ff }
|
||||
(word) getFAC::w ← { *((byte*) memHi), *((byte*) memLo) }
|
||||
@ -988,24 +1020,24 @@ getFAC::@return: scope:[getFAC] from getFAC getFAC::@1
|
||||
to:@return
|
||||
getFAC::@1: scope:[getFAC] from
|
||||
to:getFAC::@return
|
||||
@11: scope:[] from @10
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
setARGtoFAC: scope:[setARGtoFAC] from
|
||||
asm { jsr$bc0f }
|
||||
to:setARGtoFAC::@return
|
||||
setARGtoFAC::@return: scope:[setARGtoFAC] from setARGtoFAC
|
||||
return
|
||||
to:@return
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
setFACtoARG: scope:[setFACtoARG] from
|
||||
asm { jsr$bbfc }
|
||||
to:setFACtoARG::@return
|
||||
setFACtoARG::@return: scope:[setFACtoARG] from setFACtoARG
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
setMEMtoFAC: scope:[setMEMtoFAC] from
|
||||
(void~) setMEMtoFAC::$0 ← call prepareMEM (byte*) setMEMtoFAC::mem
|
||||
asm { ldx$fe ldy$ff jsr$bbd4 }
|
||||
@ -1013,8 +1045,8 @@ setMEMtoFAC: scope:[setMEMtoFAC] from
|
||||
setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
setFACtoMEM: scope:[setFACtoMEM] from
|
||||
(void~) setFACtoMEM::$0 ← call prepareMEM (byte*) setFACtoMEM::mem
|
||||
asm { lda$fe ldy$ff jsr$bba2 }
|
||||
@ -1022,24 +1054,24 @@ setFACtoMEM: scope:[setFACtoMEM] from
|
||||
setFACtoMEM::@return: scope:[setFACtoMEM] from setFACtoMEM
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
setFACtoPIhalf: scope:[setFACtoPIhalf] from
|
||||
asm { lda#$e0 ldy#$e2 jsr$bba2 }
|
||||
to:setFACtoPIhalf::@return
|
||||
setFACtoPIhalf::@return: scope:[setFACtoPIhalf] from setFACtoPIhalf
|
||||
return
|
||||
to:@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
setFACto2PI: scope:[setFACto2PI] from
|
||||
asm { lda#$e5 ldy#$e2 jsr$bba2 }
|
||||
to:setFACto2PI::@return
|
||||
setFACto2PI::@return: scope:[setFACto2PI] from setFACto2PI
|
||||
return
|
||||
to:@return
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
setARGtoMEM: scope:[setARGtoMEM] from
|
||||
(void~) setARGtoMEM::$0 ← call prepareMEM (byte*) setARGtoMEM::mem
|
||||
asm { lda$fe ldy$ff jsr$ba8c }
|
||||
@ -1047,8 +1079,8 @@ setARGtoMEM: scope:[setARGtoMEM] from
|
||||
setARGtoMEM::@return: scope:[setARGtoMEM] from setARGtoMEM
|
||||
return
|
||||
to:@return
|
||||
@18: scope:[] from @17
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
addMEMtoFAC: scope:[addMEMtoFAC] from
|
||||
(void~) addMEMtoFAC::$0 ← call prepareMEM (byte*) addMEMtoFAC::mem
|
||||
asm { lda$fe ldy$ff jsr$b867 }
|
||||
@ -1056,16 +1088,16 @@ addMEMtoFAC: scope:[addMEMtoFAC] from
|
||||
addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC
|
||||
return
|
||||
to:@return
|
||||
@19: scope:[] from @18
|
||||
to:@20
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
addARGtoFAC: scope:[addARGtoFAC] from
|
||||
asm { jsr$b86a }
|
||||
to:addARGtoFAC::@return
|
||||
addARGtoFAC::@return: scope:[addARGtoFAC] from addARGtoFAC
|
||||
return
|
||||
to:@return
|
||||
@20: scope:[] from @19
|
||||
to:@21
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
subFACfromMEM: scope:[subFACfromMEM] from
|
||||
(void~) subFACfromMEM::$0 ← call prepareMEM (byte*) subFACfromMEM::mem
|
||||
asm { lda$fe ldy$ff jsr$b850 }
|
||||
@ -1073,16 +1105,16 @@ subFACfromMEM: scope:[subFACfromMEM] from
|
||||
subFACfromMEM::@return: scope:[subFACfromMEM] from subFACfromMEM
|
||||
return
|
||||
to:@return
|
||||
@21: scope:[] from @20
|
||||
to:@22
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
subFACfromARG: scope:[subFACfromARG] from
|
||||
asm { jsr$b853 }
|
||||
to:subFACfromARG::@return
|
||||
subFACfromARG::@return: scope:[subFACfromARG] from subFACfromARG
|
||||
return
|
||||
to:@return
|
||||
@22: scope:[] from @21
|
||||
to:@23
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
divMEMbyFAC: scope:[divMEMbyFAC] from
|
||||
(void~) divMEMbyFAC::$0 ← call prepareMEM (byte*) divMEMbyFAC::mem
|
||||
asm { lda$fe ldy$ff jsr$bb0f }
|
||||
@ -1090,8 +1122,8 @@ divMEMbyFAC: scope:[divMEMbyFAC] from
|
||||
divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC
|
||||
return
|
||||
to:@return
|
||||
@23: scope:[] from @22
|
||||
to:@24
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
mulFACbyMEM: scope:[mulFACbyMEM] from
|
||||
(void~) mulFACbyMEM::$0 ← call prepareMEM (byte*) mulFACbyMEM::mem
|
||||
asm { lda$fe ldy$ff jsr$ba28 }
|
||||
@ -1099,8 +1131,8 @@ mulFACbyMEM: scope:[mulFACbyMEM] from
|
||||
mulFACbyMEM::@return: scope:[mulFACbyMEM] from mulFACbyMEM
|
||||
return
|
||||
to:@return
|
||||
@24: scope:[] from @23
|
||||
to:@25
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
pwrMEMbyFAC: scope:[pwrMEMbyFAC] from
|
||||
(void~) pwrMEMbyFAC::$0 ← call prepareMEM (byte*) pwrMEMbyFAC::mem
|
||||
asm { lda$fe ldy$ff jsr$bf78 }
|
||||
@ -1108,88 +1140,88 @@ pwrMEMbyFAC: scope:[pwrMEMbyFAC] from
|
||||
pwrMEMbyFAC::@return: scope:[pwrMEMbyFAC] from pwrMEMbyFAC
|
||||
return
|
||||
to:@return
|
||||
@25: scope:[] from @24
|
||||
to:@26
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
intFAC: scope:[intFAC] from
|
||||
asm { jsr$bccc }
|
||||
to:intFAC::@return
|
||||
intFAC::@return: scope:[intFAC] from intFAC
|
||||
return
|
||||
to:@return
|
||||
@26: scope:[] from @25
|
||||
to:@27
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
sinFAC: scope:[sinFAC] from
|
||||
asm { jsr$e26b }
|
||||
to:sinFAC::@return
|
||||
sinFAC::@return: scope:[sinFAC] from sinFAC
|
||||
return
|
||||
to:@return
|
||||
@27: scope:[] from @26
|
||||
to:@28
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
cosFAC: scope:[cosFAC] from
|
||||
asm { jsr$e264 }
|
||||
to:cosFAC::@return
|
||||
cosFAC::@return: scope:[cosFAC] from cosFAC
|
||||
return
|
||||
to:@return
|
||||
@28: scope:[] from @27
|
||||
to:@29
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
tanFAC: scope:[tanFAC] from
|
||||
asm { jsr$e2b4 }
|
||||
to:tanFAC::@return
|
||||
tanFAC::@return: scope:[tanFAC] from tanFAC
|
||||
return
|
||||
to:@return
|
||||
@29: scope:[] from @28
|
||||
to:@30
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
atnFAC: scope:[atnFAC] from
|
||||
asm { jsr$e303 }
|
||||
to:atnFAC::@return
|
||||
atnFAC::@return: scope:[atnFAC] from atnFAC
|
||||
return
|
||||
to:@return
|
||||
@30: scope:[] from @29
|
||||
to:@31
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
sqrFAC: scope:[sqrFAC] from
|
||||
asm { jsr$bf71 }
|
||||
to:sqrFAC::@return
|
||||
sqrFAC::@return: scope:[sqrFAC] from sqrFAC
|
||||
return
|
||||
to:@return
|
||||
@31: scope:[] from @30
|
||||
to:@32
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
expFAC: scope:[expFAC] from
|
||||
asm { jsr$bfed }
|
||||
to:expFAC::@return
|
||||
expFAC::@return: scope:[expFAC] from expFAC
|
||||
return
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
logFAC: scope:[logFAC] from
|
||||
asm { jsr$b9ea }
|
||||
to:logFAC::@return
|
||||
logFAC::@return: scope:[logFAC] from logFAC
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
divFACby10: scope:[divFACby10] from
|
||||
asm { jsr$bafe }
|
||||
to:divFACby10::@return
|
||||
divFACby10::@return: scope:[divFACby10] from divFACby10
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
mulFACby10: scope:[mulFACby10] from
|
||||
asm { jsr$bae2 }
|
||||
to:mulFACby10::@return
|
||||
mulFACby10::@return: scope:[mulFACby10] from mulFACby10
|
||||
return
|
||||
to:@return
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
@36: scope:[] from @35
|
||||
to:@37
|
||||
main: scope:[main] from
|
||||
(byte[]) main::f_i ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||
(byte[]) main::f_127 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||
@ -1221,14 +1253,15 @@ main::@2: scope:[main] from main::@1
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
@36: scope:[] from @35
|
||||
@37: scope:[] from @36
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @36
|
||||
@end: scope:[] from @37
|
||||
|
||||
Removing unused procedure print_str
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_dword
|
||||
Removing unused procedure print_cls
|
||||
Removing unused procedure setARGtoFAC
|
||||
Removing unused procedure setFACtoARG
|
||||
@ -1278,10 +1311,10 @@ Removing empty block @4
|
||||
Removing empty block @5
|
||||
Removing empty block @6
|
||||
Removing empty block @7
|
||||
Removing empty block @9
|
||||
Removing empty block @8
|
||||
Removing empty block @10
|
||||
Removing empty block getFAC::@1
|
||||
Removing empty block @11
|
||||
Removing empty block getFAC::@1
|
||||
Removing empty block @12
|
||||
Removing empty block @13
|
||||
Removing empty block @14
|
||||
@ -1306,6 +1339,7 @@ Removing empty block @32
|
||||
Removing empty block @33
|
||||
Removing empty block @34
|
||||
Removing empty block @35
|
||||
Removing empty block @36
|
||||
Removing empty block main::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_ln modifies line_cursor
|
||||
@ -1338,7 +1372,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) line_cursor#0 ← (byte*) SCREEN#0
|
||||
(byte*) char_cursor#0 ← (byte*) line_cursor#0
|
||||
to:@8
|
||||
to:@9
|
||||
print_ln: scope:[print_ln] from main::@15
|
||||
(byte*) char_cursor#29 ← phi( main::@15/(byte*) char_cursor#11 )
|
||||
(byte*) line_cursor#12 ← phi( main::@15/(byte*) line_cursor#13 )
|
||||
@ -1422,12 +1456,12 @@ print_char::@return: scope:[print_char] from print_char
|
||||
(byte*) char_cursor#10 ← (byte*) char_cursor#24
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @begin
|
||||
@9: scope:[] from @begin
|
||||
(byte*) line_cursor#16 ← phi( @begin/(byte*) line_cursor#0 )
|
||||
(byte*) char_cursor#35 ← phi( @begin/(byte*) char_cursor#0 )
|
||||
(byte*) memLo#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 254
|
||||
(byte*) memHi#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255
|
||||
to:@36
|
||||
to:@37
|
||||
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC
|
||||
(byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(byte*) prepareMEM::mem#2 divMEMbyFAC/(byte*) prepareMEM::mem#3 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 )
|
||||
(byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5
|
||||
@ -1516,9 +1550,9 @@ divFACby10: scope:[divFACby10] from main::@3
|
||||
divFACby10::@return: scope:[divFACby10] from divFACby10
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @36
|
||||
(byte*) line_cursor#29 ← phi( @36/(byte*) line_cursor#14 )
|
||||
(byte*) char_cursor#47 ← phi( @36/(byte*) char_cursor#33 )
|
||||
main: scope:[main] from @37
|
||||
(byte*) line_cursor#29 ← phi( @37/(byte*) line_cursor#14 )
|
||||
(byte*) char_cursor#47 ← phi( @37/(byte*) char_cursor#33 )
|
||||
(byte[]) main::f_i#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||
(byte[]) main::f_127#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||
(byte*) main::f_2pi#0 ← ((byte*)) (word/dword/signed dword) 58085
|
||||
@ -1637,23 +1671,23 @@ main::@return: scope:[main] from main::@16
|
||||
(byte*) line_cursor#4 ← (byte*) line_cursor#10
|
||||
return
|
||||
to:@return
|
||||
@36: scope:[] from @8
|
||||
(byte*) line_cursor#14 ← phi( @8/(byte*) line_cursor#16 )
|
||||
(byte*) char_cursor#33 ← phi( @8/(byte*) char_cursor#35 )
|
||||
@37: scope:[] from @9
|
||||
(byte*) line_cursor#14 ← phi( @9/(byte*) line_cursor#16 )
|
||||
(byte*) char_cursor#33 ← phi( @9/(byte*) char_cursor#35 )
|
||||
call main param-assignment
|
||||
to:@37
|
||||
@37: scope:[] from @36
|
||||
(byte*) line_cursor#11 ← phi( @36/(byte*) line_cursor#4 )
|
||||
(byte*) char_cursor#28 ← phi( @36/(byte*) char_cursor#13 )
|
||||
to:@38
|
||||
@38: scope:[] from @37
|
||||
(byte*) line_cursor#11 ← phi( @37/(byte*) line_cursor#4 )
|
||||
(byte*) char_cursor#28 ← phi( @37/(byte*) char_cursor#13 )
|
||||
(byte*) char_cursor#14 ← (byte*) char_cursor#28
|
||||
(byte*) line_cursor#5 ← (byte*) line_cursor#11
|
||||
to:@end
|
||||
@end: scope:[] from @37
|
||||
@end: scope:[] from @38
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @36
|
||||
(label) @37
|
||||
(label) @8
|
||||
(label) @38
|
||||
(label) @9
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -2034,9 +2068,9 @@ Succesful SSA optimization Pass2NopCastElimination
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
Culled Empty Block (label) print_word::@2
|
||||
Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) @8
|
||||
Culled Empty Block (label) @9
|
||||
Culled Empty Block (label) main::@5
|
||||
Culled Empty Block (label) @37
|
||||
Culled Empty Block (label) @38
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: line_cursor#6 line_cursor#13
|
||||
Not aliassing across scopes: print_byte::b#2 print_byte::b#0
|
||||
@ -2105,12 +2139,12 @@ Constant inlined setMEMtoFAC::mem#0 = (const byte[]) main::f_127#0
|
||||
Constant inlined mulFACbyMEM::mem#1 = (const byte[]) main::f_127#0
|
||||
Constant inlined setFAC::w#0 = (word/signed word/dword/signed dword) 1275
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @36 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Block Sequence Planned @begin @37 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Added new block during phi lifting main::@17(between main::@16 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Block Sequence Planned @begin @36 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return main::@17 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Block Sequence Planned @begin @37 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return main::@17 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @36
|
||||
Adding NOP phi() at start of @37
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -2181,9 +2215,9 @@ Coalesced [87] prepareMEM::mem#6 ← prepareMEM::mem#4
|
||||
Coalesced [104] prepareMEM::mem#8 ← prepareMEM::mem#1
|
||||
Coalesced down to 9 phi equivalence classes
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Block Sequence Planned @begin @36 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return main::@17 print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Block Sequence Planned @begin @37 @end main main::@3 main::@4 main::@1 main::@6 main::@7 main::@8 main::@9 main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@return main::@17 print_ln print_ln::@1 print_ln::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return divFACby10 divFACby10::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @36
|
||||
Adding NOP phi() at start of @37
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -2229,14 +2263,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@36
|
||||
@36: scope:[] from @begin
|
||||
to:@37
|
||||
@37: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @36
|
||||
@end: scope:[] from @37
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @36
|
||||
main: scope:[main] from @37
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call setFAC param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@3
|
||||
@ -2437,59 +2471,59 @@ divFACby10::@return: scope:[divFACby10] from divFACby10
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@36 dominated by @begin @36
|
||||
@end dominated by @end @begin @36
|
||||
main dominated by main @begin @36
|
||||
main::@3 dominated by main main::@3 @begin @36
|
||||
main::@4 dominated by main main::@3 main::@4 @begin @36
|
||||
main::@1 dominated by main main::@1 main::@3 main::@4 @begin @36
|
||||
main::@6 dominated by main main::@1 main::@6 main::@3 main::@4 @begin @36
|
||||
main::@7 dominated by main::@7 main main::@1 main::@6 main::@3 main::@4 @begin @36
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@10
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 main::@12
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 main::@13 main::@12
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@return main::@11 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 main::@17 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 print_ln main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln::@1 dominated by main::@9 print_ln::@1 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 print_ln main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln::@return dominated by main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@1 main::@6 main::@3 main::@4 @begin @36 print_ln main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_word dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_word::@1 dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @36 print_word::@1 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_word::@return dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @36 print_word::@return print_word::@1 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_byte dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_byte::@1 dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @36 print_byte::@1 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_byte::@return dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @36 print_byte::@return print_byte::@1 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_char dominated by main::@9 main::@7 main::@8 main print_word print_char main::@1 main::@6 main::@3 main::@4 @begin @36 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_char::@return dominated by main::@9 main::@7 main::@8 main print_word print_char main::@1 main::@6 main::@3 main::@4 print_char::@return @begin @36 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
getFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 getFAC main::@11 main::@10 main::@13 main::@12
|
||||
getFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 getFAC main::@11 main::@10 main::@13 main::@12 getFAC::@return
|
||||
addMEMtoFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 addMEMtoFAC main::@11 main::@10 main::@12
|
||||
addMEMtoFAC::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 addMEMtoFAC::@1 addMEMtoFAC main::@11 main::@10 main::@12
|
||||
addMEMtoFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 addMEMtoFAC::@1 addMEMtoFAC main::@11 main::@10 addMEMtoFAC::@return main::@12
|
||||
prepareMEM dominated by main @begin @36 prepareMEM
|
||||
prepareMEM::@return dominated by main @begin @36 prepareMEM::@return prepareMEM
|
||||
mulFACbyMEM dominated by main mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @36
|
||||
mulFACbyMEM::@1 dominated by main mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @36 mulFACbyMEM::@1
|
||||
mulFACbyMEM::@return dominated by main mulFACbyMEM::@return mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @36 mulFACbyMEM::@1
|
||||
sinFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 sinFAC main::@10
|
||||
sinFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 sinFAC sinFAC::@return main::@10
|
||||
divMEMbyFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 divMEMbyFAC
|
||||
divMEMbyFAC::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 divMEMbyFAC::@1 divMEMbyFAC
|
||||
divMEMbyFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @36 divMEMbyFAC::@1 divMEMbyFAC divMEMbyFAC::@return
|
||||
setFAC dominated by main @begin @36 setFAC
|
||||
setFAC::@1 dominated by main @begin @36 setFAC setFAC::@1
|
||||
setFAC::@return dominated by setFAC::@return main @begin @36 setFAC setFAC::@1
|
||||
setMEMtoFAC dominated by main main::@3 main::@4 @begin @36 setMEMtoFAC
|
||||
setMEMtoFAC::@1 dominated by main main::@3 main::@4 @begin @36 setMEMtoFAC setMEMtoFAC::@1
|
||||
setMEMtoFAC::@return dominated by main main::@3 main::@4 @begin @36 setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return
|
||||
divFACby10 dominated by main main::@3 @begin @36 divFACby10
|
||||
divFACby10::@return dominated by divFACby10::@return main main::@3 @begin @36 divFACby10
|
||||
@37 dominated by @begin @37
|
||||
@end dominated by @end @begin @37
|
||||
main dominated by main @begin @37
|
||||
main::@3 dominated by main main::@3 @begin @37
|
||||
main::@4 dominated by main main::@3 main::@4 @begin @37
|
||||
main::@1 dominated by main main::@1 main::@3 main::@4 @begin @37
|
||||
main::@6 dominated by main main::@1 main::@6 main::@3 main::@4 @begin @37
|
||||
main::@7 dominated by main::@7 main main::@1 main::@6 main::@3 main::@4 @begin @37
|
||||
main::@8 dominated by main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@10
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 main::@12
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 main::@13 main::@12
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@return main::@11 main::@10 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 main::@17 main::@16 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 print_ln main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln::@1 dominated by main::@9 print_ln::@1 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 print_ln main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_ln::@return dominated by main::@9 print_ln::@1 main::@7 main::@8 main print_ln::@return main::@1 main::@6 main::@3 main::@4 @begin @37 print_ln main::@11 main::@10 main::@13 main::@12 main::@15 main::@14
|
||||
print_word dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_word::@1 dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @37 print_word::@1 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_word::@return dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @37 print_word::@return print_word::@1 main::@11 main::@10 main::@13 main::@12 main::@14
|
||||
print_byte dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_byte::@1 dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @37 print_byte::@1 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_byte::@return dominated by main::@9 main::@7 main::@8 main print_word main::@1 main::@6 main::@3 main::@4 @begin @37 print_byte::@return print_byte::@1 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_char dominated by main::@9 main::@7 main::@8 main print_word print_char main::@1 main::@6 main::@3 main::@4 @begin @37 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
print_char::@return dominated by main::@9 main::@7 main::@8 main print_word print_char main::@1 main::@6 main::@3 main::@4 print_char::@return @begin @37 main::@11 main::@10 print_byte main::@13 main::@12 main::@14
|
||||
getFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 getFAC main::@11 main::@10 main::@13 main::@12
|
||||
getFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 getFAC main::@11 main::@10 main::@13 main::@12 getFAC::@return
|
||||
addMEMtoFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 addMEMtoFAC main::@11 main::@10 main::@12
|
||||
addMEMtoFAC::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 addMEMtoFAC::@1 addMEMtoFAC main::@11 main::@10 main::@12
|
||||
addMEMtoFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 addMEMtoFAC::@1 addMEMtoFAC main::@11 main::@10 addMEMtoFAC::@return main::@12
|
||||
prepareMEM dominated by main @begin @37 prepareMEM
|
||||
prepareMEM::@return dominated by main @begin @37 prepareMEM::@return prepareMEM
|
||||
mulFACbyMEM dominated by main mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @37
|
||||
mulFACbyMEM::@1 dominated by main mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @37 mulFACbyMEM::@1
|
||||
mulFACbyMEM::@return dominated by main mulFACbyMEM::@return mulFACbyMEM main::@1 main::@6 main::@3 main::@4 @begin @37 mulFACbyMEM::@1
|
||||
sinFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 sinFAC main::@10
|
||||
sinFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 sinFAC sinFAC::@return main::@10
|
||||
divMEMbyFAC dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 divMEMbyFAC
|
||||
divMEMbyFAC::@1 dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 divMEMbyFAC::@1 divMEMbyFAC
|
||||
divMEMbyFAC::@return dominated by main::@9 main::@7 main::@8 main main::@1 main::@6 main::@3 main::@4 @begin @37 divMEMbyFAC::@1 divMEMbyFAC divMEMbyFAC::@return
|
||||
setFAC dominated by main @begin @37 setFAC
|
||||
setFAC::@1 dominated by main @begin @37 setFAC setFAC::@1
|
||||
setFAC::@return dominated by setFAC::@return main @begin @37 setFAC setFAC::@1
|
||||
setMEMtoFAC dominated by main main::@3 main::@4 @begin @37 setMEMtoFAC
|
||||
setMEMtoFAC::@1 dominated by main main::@3 main::@4 @begin @37 setMEMtoFAC setMEMtoFAC::@1
|
||||
setMEMtoFAC::@return dominated by main main::@3 main::@4 @begin @37 setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return
|
||||
divFACby10 dominated by main main::@3 @begin @37 divFACby10
|
||||
divFACby10::@return dominated by divFACby10::@return main main::@3 @begin @37 divFACby10
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@1 tails: main::@17 blocks: null
|
||||
@ -2653,17 +2687,17 @@ INITIAL ASM
|
||||
.label char_cursor = 7
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
b36_from_bbegin:
|
||||
jmp b36
|
||||
//SEG4 @36
|
||||
b36:
|
||||
//SEG3 [1] phi from @begin to @37 [phi:@begin->@37]
|
||||
b37_from_bbegin:
|
||||
jmp b37
|
||||
//SEG4 @37
|
||||
b37:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
main_from_b36:
|
||||
//SEG6 [4] phi from @37 to main [phi:@37->main]
|
||||
main_from_b37:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
bend_from_b36:
|
||||
//SEG7 [3] phi from @37 to @end [phi:@37->@end]
|
||||
bend_from_b37:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -3303,17 +3337,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label char_cursor = 5
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
b36_from_bbegin:
|
||||
jmp b36
|
||||
//SEG4 @36
|
||||
b36:
|
||||
//SEG3 [1] phi from @begin to @37 [phi:@begin->@37]
|
||||
b37_from_bbegin:
|
||||
jmp b37
|
||||
//SEG4 @37
|
||||
b37:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
main_from_b36:
|
||||
//SEG6 [4] phi from @37 to main [phi:@37->main]
|
||||
main_from_b37:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
bend_from_b36:
|
||||
//SEG7 [3] phi from @37 to @end [phi:@37->@end]
|
||||
bend_from_b37:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -3806,7 +3840,7 @@ divFACby10: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b36
|
||||
Removing instruction jmp b37
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b3
|
||||
Removing instruction jmp b4
|
||||
@ -3848,9 +3882,9 @@ Succesful ASM optimization Pass5NextJumpElimination
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b36_from_bbegin:
|
||||
Removing instruction main_from_b36:
|
||||
Removing instruction bend_from_b36:
|
||||
Removing instruction b37_from_bbegin:
|
||||
Removing instruction main_from_b37:
|
||||
Removing instruction bend_from_b37:
|
||||
Removing instruction b3_from_main:
|
||||
Removing instruction b4_from_b3:
|
||||
Removing instruction setMEMtoFAC_from_b4:
|
||||
@ -3873,7 +3907,7 @@ Removing instruction print_ln_from_b15:
|
||||
Removing instruction b1_from_print_ln:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b36:
|
||||
Removing instruction b37:
|
||||
Removing instruction bend:
|
||||
Removing instruction setFAC_from_main:
|
||||
Removing instruction b3:
|
||||
@ -3925,7 +3959,7 @@ Removing instruction breturn:
|
||||
Succesful ASM optimization Pass5UnusedLabelElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @36
|
||||
(label) @37
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -4065,12 +4099,12 @@ Score: 4973
|
||||
.label line_cursor = 3
|
||||
.label char_cursor = 5
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @36 [phi:@begin->@36]
|
||||
//SEG4 @36
|
||||
//SEG3 [1] phi from @begin to @37 [phi:@begin->@37]
|
||||
//SEG4 @37
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @36 to main [phi:@36->main]
|
||||
//SEG6 [4] phi from @37 to main [phi:@37->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @36 to @end [phi:@36->@end]
|
||||
//SEG7 [3] phi from @37 to @end [phi:@37->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @36
|
||||
(label) @37
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@45
|
||||
@45: scope:[] from @begin
|
||||
to:@46
|
||||
@46: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @45
|
||||
@end: scope:[] from @46
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @45
|
||||
main: scope:[main] from @46
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call init param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@2
|
||||
|
@ -580,6 +580,12 @@ void print_word(word w) {
|
||||
print_byte(<w);
|
||||
}
|
||||
|
||||
// Print a dword as HEX
|
||||
void print_dword(dword dw) {
|
||||
print_word(>dw);
|
||||
print_word(<dw);
|
||||
}
|
||||
|
||||
// Print a byte as HEX
|
||||
void print_byte(byte b) {
|
||||
// Table of hexadecimal digits
|
||||
@ -871,6 +877,14 @@ proc (void()) print_word((word) print_word::w)
|
||||
print_word::@return:
|
||||
return
|
||||
endproc // print_word()
|
||||
proc (void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
print_dword::@return:
|
||||
return
|
||||
endproc // print_dword()
|
||||
proc (void()) print_byte((byte) print_byte::b)
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -1421,6 +1435,13 @@ SYMBOLS
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0
|
||||
(void~) print_dword::$1
|
||||
(word~) print_dword::$2
|
||||
(void~) print_dword::$3
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0
|
||||
(boolean~) print_ln::$1
|
||||
@ -1906,6 +1927,17 @@ print_word::@return: scope:[print_word] from print_word
|
||||
to:@return
|
||||
@32: scope:[] from @31
|
||||
to:@33
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
to:print_dword::@return
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -1916,8 +1948,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@33: scope:[] from @32
|
||||
to:@34
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) char_cursor) ← (byte) print_char::ch
|
||||
(byte*) char_cursor ← ++ (byte*) char_cursor
|
||||
@ -1925,8 +1957,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@34: scope:[] from @33
|
||||
to:@35
|
||||
@35: scope:[] from @34
|
||||
to:@36
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) SCREEN
|
||||
to:print_cls::@1
|
||||
@ -1944,13 +1976,13 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@35: scope:[] from @34
|
||||
@36: scope:[] from @35
|
||||
(byte) sinlen_x ← (byte/word/signed word/dword/signed dword) 221
|
||||
(byte[221]) sintab_x ← { fill( 221, 0) }
|
||||
(byte) sinlen_y ← (byte/word/signed word/dword/signed dword) 197
|
||||
(byte[197]) sintab_y ← { fill( 197, 0) }
|
||||
(byte*) sprites ← ((byte*)) (word/signed word/dword/signed dword) 8192
|
||||
to:@36
|
||||
to:@37
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call init
|
||||
to:main::@1
|
||||
@ -1969,8 +2001,8 @@ main::@4: scope:[main] from main::@3
|
||||
main::@return: scope:[main] from main::@4
|
||||
return
|
||||
to:@return
|
||||
@36: scope:[] from @35
|
||||
to:@37
|
||||
@37: scope:[] from @36
|
||||
to:@38
|
||||
init: scope:[init] from
|
||||
(void~) init::$0 ← call clear_screen
|
||||
(byte) init::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1996,8 +2028,8 @@ init::@2: scope:[init] from init::@1
|
||||
init::@return: scope:[init] from init::@2
|
||||
return
|
||||
to:@return
|
||||
@37: scope:[] from @36
|
||||
to:@38
|
||||
@38: scope:[] from @37
|
||||
to:@39
|
||||
clear_screen: scope:[clear_screen] from
|
||||
(byte*) clear_screen::sc ← (byte*) SCREEN
|
||||
to:clear_screen::@1
|
||||
@ -2013,10 +2045,10 @@ clear_screen::@2: scope:[clear_screen] from clear_screen::@1
|
||||
clear_screen::@return: scope:[clear_screen] from clear_screen::@2
|
||||
return
|
||||
to:@return
|
||||
@38: scope:[] from @37
|
||||
@39: scope:[] from @38
|
||||
(byte*) progress_cursor ← (byte*) SCREEN
|
||||
(byte) progress_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@39
|
||||
to:@40
|
||||
progress_init: scope:[progress_init] from
|
||||
(byte*) progress_cursor ← (byte*) progress_init::line
|
||||
(byte) progress_idx ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -2024,8 +2056,8 @@ progress_init: scope:[progress_init] from
|
||||
progress_init::@return: scope:[progress_init] from progress_init
|
||||
return
|
||||
to:@return
|
||||
@39: scope:[] from @38
|
||||
to:@40
|
||||
@40: scope:[] from @39
|
||||
to:@41
|
||||
progress_inc: scope:[progress_inc] from
|
||||
(byte[]) progress_inc::progress_chars ← { (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 116, (byte/signed byte/word/signed word/dword/signed dword) 117, (byte/signed byte/word/signed word/dword/signed dword) 97, (byte/word/signed word/dword/signed dword) 246, (byte/word/signed word/dword/signed dword) 231, (byte/word/signed word/dword/signed dword) 234, (byte/word/signed word/dword/signed dword) 224 }
|
||||
(byte) progress_idx ← ++ (byte) progress_idx
|
||||
@ -2044,10 +2076,10 @@ progress_inc::@2: scope:[progress_inc] from progress_inc
|
||||
progress_inc::@return: scope:[progress_inc] from progress_inc::@1
|
||||
return
|
||||
to:@return
|
||||
@40: scope:[] from @39
|
||||
@41: scope:[] from @40
|
||||
(byte) sin_idx_x ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) sin_idx_y ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@41
|
||||
to:@42
|
||||
anim: scope:[anim] from
|
||||
*((byte*) BORDERCOL) ← ++ *((byte*) BORDERCOL)
|
||||
(byte) anim::xidx ← (byte) sin_idx_x
|
||||
@ -2120,8 +2152,8 @@ anim::@10: scope:[anim] from anim::@4
|
||||
anim::@return: scope:[anim] from anim::@5
|
||||
return
|
||||
to:@return
|
||||
@41: scope:[] from @40
|
||||
to:@42
|
||||
@42: scope:[] from @41
|
||||
to:@43
|
||||
place_sprites: scope:[place_sprites] from
|
||||
*((byte*) SPRITES_ENABLE) ← (byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
*((byte*) SPRITES_EXPAND_X) ← (byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
@ -2158,8 +2190,8 @@ place_sprites::@2: scope:[place_sprites] from place_sprites::@1
|
||||
place_sprites::@return: scope:[place_sprites] from place_sprites::@2
|
||||
return
|
||||
to:@return
|
||||
@42: scope:[] from @41
|
||||
to:@43
|
||||
@43: scope:[] from @42
|
||||
to:@44
|
||||
gen_sprites: scope:[gen_sprites] from
|
||||
(byte[]) gen_sprites::cml ← (string) "camelot"
|
||||
(byte*) gen_sprites::spr ← (byte*) sprites
|
||||
@ -2178,8 +2210,8 @@ gen_sprites::@2: scope:[gen_sprites] from gen_sprites::@1
|
||||
gen_sprites::@return: scope:[gen_sprites] from gen_sprites::@2
|
||||
return
|
||||
to:@return
|
||||
@43: scope:[] from @42
|
||||
to:@44
|
||||
@44: scope:[] from @43
|
||||
to:@45
|
||||
gen_chargen_sprite: scope:[gen_chargen_sprite] from
|
||||
(word~) gen_chargen_sprite::$0 ← ((word)) (byte) gen_chargen_sprite::ch
|
||||
(word~) gen_chargen_sprite::$1 ← (word~) gen_chargen_sprite::$0 << (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
@ -2251,8 +2283,8 @@ gen_chargen_sprite::@10: scope:[gen_chargen_sprite] from gen_chargen_sprite::@9
|
||||
gen_chargen_sprite::@return: scope:[gen_chargen_sprite] from gen_chargen_sprite::@10
|
||||
return
|
||||
to:@return
|
||||
@44: scope:[] from @43
|
||||
to:@45
|
||||
@45: scope:[] from @44
|
||||
to:@46
|
||||
gen_sintab: scope:[gen_sintab] from
|
||||
(byte[]) gen_sintab::f_i ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||
(byte[]) gen_sintab::f_min ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||
@ -2298,10 +2330,10 @@ gen_sintab::@2: scope:[gen_sintab] from gen_sintab::@1
|
||||
gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@2
|
||||
return
|
||||
to:@return
|
||||
@45: scope:[] from @44
|
||||
@46: scope:[] from @45
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @45
|
||||
@end: scope:[] from @46
|
||||
|
||||
Removing unused procedure setFACtoARG
|
||||
Removing unused procedure setFACtoMEM
|
||||
@ -2324,6 +2356,7 @@ Removing unused procedure print_str
|
||||
Removing unused procedure print_ln
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_dword
|
||||
Removing unused procedure print_cls
|
||||
Removing unused procedure print_word
|
||||
Removing unused procedure print_byte
|
||||
@ -2422,17 +2455,18 @@ Removing empty block @31
|
||||
Removing empty block @32
|
||||
Removing empty block @33
|
||||
Removing empty block @34
|
||||
Removing empty block @35
|
||||
Removing empty block main::@4
|
||||
Removing empty block @36
|
||||
Removing empty block @37
|
||||
Removing empty block @38
|
||||
Removing empty block clear_screen::@2
|
||||
Removing empty block @39
|
||||
Removing empty block @41
|
||||
Removing empty block place_sprites::@2
|
||||
Removing empty block @40
|
||||
Removing empty block @42
|
||||
Removing empty block gen_sprites::@2
|
||||
Removing empty block place_sprites::@2
|
||||
Removing empty block @43
|
||||
Removing empty block gen_sprites::@2
|
||||
Removing empty block @44
|
||||
Removing empty block @45
|
||||
Removing empty block gen_sintab::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
main modifies progress_cursor
|
||||
@ -2587,19 +2621,19 @@ sinFAC::@return: scope:[sinFAC] from sinFAC
|
||||
to:@return
|
||||
@27: scope:[] from @begin
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
to:@35
|
||||
@35: scope:[] from @27
|
||||
to:@36
|
||||
@36: scope:[] from @27
|
||||
(byte) sinlen_x#0 ← (byte/word/signed word/dword/signed dword) 221
|
||||
(byte[221]) sintab_x#0 ← { fill( 221, 0) }
|
||||
(byte) sinlen_y#0 ← (byte/word/signed word/dword/signed dword) 197
|
||||
(byte[197]) sintab_y#0 ← { fill( 197, 0) }
|
||||
(byte*) sprites#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192
|
||||
to:@38
|
||||
main: scope:[main] from @45
|
||||
(byte) sin_idx_y#24 ← phi( @45/(byte) sin_idx_y#17 )
|
||||
(byte) sin_idx_x#26 ← phi( @45/(byte) sin_idx_x#16 )
|
||||
(byte) progress_idx#30 ← phi( @45/(byte) progress_idx#35 )
|
||||
(byte*) progress_cursor#29 ← phi( @45/(byte*) progress_cursor#35 )
|
||||
to:@39
|
||||
main: scope:[main] from @46
|
||||
(byte) sin_idx_y#24 ← phi( @46/(byte) sin_idx_y#17 )
|
||||
(byte) sin_idx_x#26 ← phi( @46/(byte) sin_idx_x#16 )
|
||||
(byte) progress_idx#30 ← phi( @46/(byte) progress_idx#35 )
|
||||
(byte*) progress_cursor#29 ← phi( @46/(byte*) progress_cursor#35 )
|
||||
call init param-assignment
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main
|
||||
@ -2751,10 +2785,10 @@ clear_screen::@1: scope:[clear_screen] from clear_screen clear_screen::@1
|
||||
clear_screen::@return: scope:[clear_screen] from clear_screen::@1
|
||||
return
|
||||
to:@return
|
||||
@38: scope:[] from @35
|
||||
@39: scope:[] from @36
|
||||
(byte*) progress_cursor#7 ← (byte*) SCREEN#0
|
||||
(byte) progress_idx#7 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@40
|
||||
to:@41
|
||||
progress_init: scope:[progress_init] from init::@5 init::@7
|
||||
(byte*) progress_init::line#2 ← phi( init::@5/(byte*) progress_init::line#0 init::@7/(byte*) progress_init::line#1 )
|
||||
(byte*) progress_cursor#8 ← (byte*) progress_init::line#2
|
||||
@ -2794,12 +2828,12 @@ progress_inc::@return: scope:[progress_inc] from progress_inc::@1
|
||||
(byte*) progress_cursor#11 ← (byte*) progress_cursor#25
|
||||
return
|
||||
to:@return
|
||||
@40: scope:[] from @38
|
||||
(byte) progress_idx#39 ← phi( @38/(byte) progress_idx#7 )
|
||||
(byte*) progress_cursor#39 ← phi( @38/(byte*) progress_cursor#7 )
|
||||
@41: scope:[] from @39
|
||||
(byte) progress_idx#39 ← phi( @39/(byte) progress_idx#7 )
|
||||
(byte*) progress_cursor#39 ← phi( @39/(byte*) progress_cursor#7 )
|
||||
(byte) sin_idx_x#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) sin_idx_y#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@45
|
||||
to:@46
|
||||
anim: scope:[anim] from main::@3
|
||||
(byte) sin_idx_y#9 ← phi( main::@3/(byte) sin_idx_y#13 )
|
||||
(byte) sin_idx_x#9 ← phi( main::@3/(byte) sin_idx_x#13 )
|
||||
@ -3359,32 +3393,32 @@ gen_sintab::@return: scope:[gen_sintab] from gen_sintab::@23
|
||||
(byte*) progress_cursor#13 ← (byte*) progress_cursor#27
|
||||
return
|
||||
to:@return
|
||||
@45: scope:[] from @40
|
||||
(byte) sin_idx_y#17 ← phi( @40/(byte) sin_idx_y#2 )
|
||||
(byte) sin_idx_x#16 ← phi( @40/(byte) sin_idx_x#2 )
|
||||
(byte) progress_idx#35 ← phi( @40/(byte) progress_idx#39 )
|
||||
(byte*) progress_cursor#35 ← phi( @40/(byte*) progress_cursor#39 )
|
||||
@46: scope:[] from @41
|
||||
(byte) sin_idx_y#17 ← phi( @41/(byte) sin_idx_y#2 )
|
||||
(byte) sin_idx_x#16 ← phi( @41/(byte) sin_idx_x#2 )
|
||||
(byte) progress_idx#35 ← phi( @41/(byte) progress_idx#39 )
|
||||
(byte*) progress_cursor#35 ← phi( @41/(byte*) progress_cursor#39 )
|
||||
call main param-assignment
|
||||
to:@46
|
||||
@46: scope:[] from @45
|
||||
(byte) sin_idx_y#12 ← phi( @45/(byte) sin_idx_y#1 )
|
||||
(byte) sin_idx_x#12 ← phi( @45/(byte) sin_idx_x#1 )
|
||||
(byte) progress_idx#29 ← phi( @45/(byte) progress_idx#1 )
|
||||
(byte*) progress_cursor#28 ← phi( @45/(byte*) progress_cursor#1 )
|
||||
to:@47
|
||||
@47: scope:[] from @46
|
||||
(byte) sin_idx_y#12 ← phi( @46/(byte) sin_idx_y#1 )
|
||||
(byte) sin_idx_x#12 ← phi( @46/(byte) sin_idx_x#1 )
|
||||
(byte) progress_idx#29 ← phi( @46/(byte) progress_idx#1 )
|
||||
(byte*) progress_cursor#28 ← phi( @46/(byte*) progress_cursor#1 )
|
||||
(byte*) progress_cursor#14 ← (byte*) progress_cursor#28
|
||||
(byte) progress_idx#15 ← (byte) progress_idx#29
|
||||
(byte) sin_idx_x#6 ← (byte) sin_idx_x#12
|
||||
(byte) sin_idx_y#6 ← (byte) sin_idx_y#12
|
||||
to:@end
|
||||
@end: scope:[] from @46
|
||||
@end: scope:[] from @47
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @27
|
||||
(label) @35
|
||||
(label) @38
|
||||
(label) @40
|
||||
(label) @45
|
||||
(label) @36
|
||||
(label) @39
|
||||
(label) @41
|
||||
(label) @46
|
||||
(label) @47
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BORDERCOL
|
||||
@ -4684,18 +4718,18 @@ Succesful SSA optimization PassNEliminateUnusedVars
|
||||
Eliminating Noop Cast (byte*) prepareMEM::mem#0 ← ((byte*)) (word) setFAC::w#5
|
||||
Succesful SSA optimization Pass2NopCastElimination
|
||||
Culled Empty Block (label) @27
|
||||
Culled Empty Block (label) @35
|
||||
Culled Empty Block (label) @36
|
||||
Culled Empty Block (label) main::@5
|
||||
Culled Empty Block (label) main::@1
|
||||
Culled Empty Block (label) init::@3
|
||||
Culled Empty Block (label) init::@10
|
||||
Culled Empty Block (label) @38
|
||||
Culled Empty Block (label) @40
|
||||
Culled Empty Block (label) @39
|
||||
Culled Empty Block (label) @41
|
||||
Not culling empty block because it shares successor with its predecessor. (label) anim::@9
|
||||
Not culling empty block because it shares successor with its predecessor. (label) anim::@10
|
||||
Not culling empty block because it shares successor with its predecessor. (label) gen_chargen_sprite::@6
|
||||
Culled Empty Block (label) gen_sintab::@13
|
||||
Culled Empty Block (label) @46
|
||||
Culled Empty Block (label) @47
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not culling empty block because it shares successor with its predecessor. (label) anim::@9
|
||||
Not culling empty block because it shares successor with its predecessor. (label) anim::@10
|
||||
@ -4955,7 +4989,7 @@ Constant inlined progress_idx#11 = (byte/signed byte/word/signed word/dword/sign
|
||||
Constant inlined gen_sprites::$3 = (const string) gen_sprites::cml#0
|
||||
Constant inlined anim::j2#0 = (byte/signed byte/word/signed word/dword/signed dword) 12
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @45 @end main main::@2 main::@3 main::@6 main::@return anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@9 anim::@4 anim::@10 anim::@5 anim::@return init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return clear_screen clear_screen::@1 clear_screen::@return gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return place_sprites place_sprites::@1 place_sprites::@return
|
||||
Block Sequence Planned @begin @46 @end main main::@2 main::@3 main::@6 main::@return anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@9 anim::@4 anim::@10 anim::@5 anim::@return init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return clear_screen clear_screen::@1 clear_screen::@return gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return place_sprites place_sprites::@1 place_sprites::@return
|
||||
Added new block during phi lifting main::@7(between main::@6 and main::@2)
|
||||
Added new block during phi lifting anim::@11(between anim::@3 and anim::@1)
|
||||
Added new block during phi lifting anim::@12(between anim::@1 and anim::@2)
|
||||
@ -4972,9 +5006,9 @@ Added new block during phi lifting gen_chargen_sprite::@12(between gen_chargen_s
|
||||
Added new block during phi lifting gen_chargen_sprite::@13(between gen_chargen_sprite::@5 and gen_chargen_sprite::@4)
|
||||
Added new block during phi lifting gen_chargen_sprite::@14(between gen_chargen_sprite::@4 and gen_chargen_sprite::@5)
|
||||
Added new block during phi lifting place_sprites::@3(between place_sprites::@1 and place_sprites::@1)
|
||||
Block Sequence Planned @begin @45 @end main main::@2 main::@3 main::@6 main::@return main::@7 anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@9 anim::@4 anim::@10 anim::@5 anim::@return anim::@15 anim::@14 anim::@11 anim::@13 anim::@12 init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return init::@11 clear_screen clear_screen::@1 clear_screen::@return clear_screen::@3 gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return gen_sintab::@24 progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return progress_inc::@3 getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_sprites::@4 gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return gen_chargen_sprite::@11 gen_chargen_sprite::@12 gen_chargen_sprite::@13 gen_chargen_sprite::@14 place_sprites place_sprites::@1 place_sprites::@return place_sprites::@3
|
||||
Block Sequence Planned @begin @46 @end main main::@2 main::@3 main::@6 main::@return main::@7 anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@9 anim::@4 anim::@10 anim::@5 anim::@return anim::@15 anim::@14 anim::@11 anim::@13 anim::@12 init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return init::@11 clear_screen clear_screen::@1 clear_screen::@return clear_screen::@3 gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return gen_sintab::@24 progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return progress_inc::@3 getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_sprites::@4 gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return gen_chargen_sprite::@11 gen_chargen_sprite::@12 gen_chargen_sprite::@13 gen_chargen_sprite::@14 place_sprites place_sprites::@1 place_sprites::@return place_sprites::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @45
|
||||
Adding NOP phi() at start of @46
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -5153,9 +5187,9 @@ Culled Empty Block (label) gen_chargen_sprite::@12
|
||||
Culled Empty Block (label) gen_chargen_sprite::@13
|
||||
Culled Empty Block (label) gen_chargen_sprite::@14
|
||||
Culled Empty Block (label) place_sprites::@3
|
||||
Block Sequence Planned @begin @45 @end main main::@2 main::@3 main::@6 main::@return anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@4 anim::@5 anim::@return anim::@15 anim::@14 init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return clear_screen clear_screen::@1 clear_screen::@return gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return place_sprites place_sprites::@1 place_sprites::@return
|
||||
Block Sequence Planned @begin @46 @end main main::@2 main::@3 main::@6 main::@return anim anim::@1 anim::@6 anim::@2 anim::@7 anim::@3 anim::@8 anim::@4 anim::@5 anim::@return anim::@15 anim::@14 init init::@1 init::@2 init::@4 init::@5 init::@6 init::@7 init::@8 init::@9 init::@return clear_screen clear_screen::@1 clear_screen::@return gen_sintab gen_sintab::@3 gen_sintab::@4 gen_sintab::@5 gen_sintab::@6 gen_sintab::@7 gen_sintab::@8 gen_sintab::@9 gen_sintab::@10 gen_sintab::@11 gen_sintab::@12 gen_sintab::@1 gen_sintab::@14 gen_sintab::@15 gen_sintab::@16 gen_sintab::@17 gen_sintab::@18 gen_sintab::@19 gen_sintab::@20 gen_sintab::@21 gen_sintab::@22 gen_sintab::@23 gen_sintab::@return progress_inc progress_inc::@2 progress_inc::@1 progress_inc::@return getFAC getFAC::@return addMEMtoFAC addMEMtoFAC::@1 addMEMtoFAC::@return prepareMEM prepareMEM::@return mulFACbyMEM mulFACbyMEM::@1 mulFACbyMEM::@return sinFAC sinFAC::@return divMEMbyFAC divMEMbyFAC::@1 divMEMbyFAC::@return setFAC setFAC::@1 setFAC::@return setMEMtoFAC setMEMtoFAC::@1 setMEMtoFAC::@return subFACfromARG subFACfromARG::@return setARGtoFAC setARGtoFAC::@return progress_init progress_init::@return gen_sprites gen_sprites::@1 gen_sprites::@3 gen_sprites::@return gen_chargen_sprite gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite::@7 gen_chargen_sprite::@5 gen_chargen_sprite::@8 gen_chargen_sprite::@9 gen_chargen_sprite::@10 gen_chargen_sprite::@return place_sprites place_sprites::@1 place_sprites::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @45
|
||||
Adding NOP phi() at start of @46
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@3
|
||||
@ -5239,14 +5273,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@45
|
||||
@45: scope:[] from @begin
|
||||
to:@46
|
||||
@46: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @45
|
||||
@end: scope:[] from @46
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @45
|
||||
main: scope:[main] from @46
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call init param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@2
|
||||
@ -5708,111 +5742,111 @@ place_sprites::@return: scope:[place_sprites] from place_sprites::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@45 dominated by @begin @45
|
||||
@end dominated by @end @begin @45
|
||||
main dominated by main @begin @45
|
||||
main::@2 dominated by main::@2 main @begin @45
|
||||
main::@3 dominated by main::@2 main::@3 main @begin @45
|
||||
main::@6 dominated by main::@2 main::@6 main::@3 main @begin @45
|
||||
main::@return dominated by main::@2 main::@6 main::@3 main::@return main @begin @45
|
||||
anim dominated by main::@2 main::@3 anim main @begin @45
|
||||
anim::@1 dominated by main::@2 main::@3 anim anim::@1 main @begin @45
|
||||
anim::@6 dominated by main::@2 main::@3 anim anim::@6 anim::@1 main @begin @45
|
||||
anim::@2 dominated by main::@2 main::@3 anim anim::@2 anim::@1 main @begin @45
|
||||
anim::@7 dominated by main::@2 main::@3 anim anim::@2 anim::@1 anim::@7 main @begin @45
|
||||
anim::@3 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 main @begin @45
|
||||
anim::@8 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 anim::@8 main @begin @45
|
||||
anim::@4 dominated by main::@2 main::@3 anim anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @45
|
||||
anim::@5 dominated by main::@2 main::@3 anim anim::@5 anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @45
|
||||
anim::@return dominated by main::@2 main::@3 anim anim::@5 anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 anim::@return main @begin @45
|
||||
anim::@15 dominated by main::@2 main::@3 anim anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @45 anim::@15
|
||||
anim::@14 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 anim::@8 main @begin @45 anim::@14
|
||||
init dominated by init main @begin @45
|
||||
init::@1 dominated by init main @begin init::@1 @45
|
||||
init::@2 dominated by init main @begin init::@2 init::@1 @45
|
||||
init::@4 dominated by init main @begin init::@2 init::@1 init::@4 @45
|
||||
init::@5 dominated by init main @begin init::@2 init::@1 init::@5 init::@4 @45
|
||||
init::@6 dominated by init main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45
|
||||
init::@7 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 @45
|
||||
init::@8 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@8 @45
|
||||
init::@9 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@9 init::@8 @45
|
||||
init::@return dominated by init main @begin init::@return init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@9 init::@8 @45
|
||||
clear_screen dominated by init clear_screen main @begin @45
|
||||
clear_screen::@1 dominated by init clear_screen main @begin @45 clear_screen::@1
|
||||
clear_screen::@return dominated by init clear_screen main @begin @45 clear_screen::@1 clear_screen::@return
|
||||
gen_sintab dominated by init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45
|
||||
gen_sintab::@3 dominated by init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@4 dominated by init gen_sintab main gen_sintab::@4 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@5 dominated by init gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@6 dominated by init gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@7 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@8 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@9 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@10 dominated by gen_sintab::@10 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@11 dominated by gen_sintab::@10 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@12 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
gen_sintab::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@14 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@15 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@15 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@16 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@17 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@17 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@18 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@19 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@20 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@20 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@21 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@22 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@23 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@23 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@23 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 gen_sintab::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@2 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@2 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 progress_inc::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
getFAC dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 getFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
getFAC::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 getFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1 getFAC::@return
|
||||
addMEMtoFAC dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
addMEMtoFAC::@1 dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC::@1 addMEMtoFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
addMEMtoFAC::@return dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC::@1 addMEMtoFAC addMEMtoFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
prepareMEM dominated by init prepareMEM gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45
|
||||
prepareMEM::@return dominated by init prepareMEM gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 prepareMEM::@return
|
||||
mulFACbyMEM dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
mulFACbyMEM::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 mulFACbyMEM::@1 gen_sintab::@3 gen_sintab::@1
|
||||
mulFACbyMEM::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM::@return mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 mulFACbyMEM::@1 gen_sintab::@3 gen_sintab::@1
|
||||
sinFAC dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init sinFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
sinFAC::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init sinFAC sinFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3 gen_sintab::@1
|
||||
divMEMbyFAC dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 divMEMbyFAC gen_sintab::@3
|
||||
divMEMbyFAC::@1 dominated by init divMEMbyFAC::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 divMEMbyFAC gen_sintab::@3
|
||||
divMEMbyFAC::@return dominated by init divMEMbyFAC::@1 divMEMbyFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 divMEMbyFAC gen_sintab::@3
|
||||
setFAC dominated by init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45
|
||||
setFAC::@1 dominated by init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 setFAC::@1
|
||||
setFAC::@return dominated by setFAC::@return init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 setFAC::@1
|
||||
setMEMtoFAC dominated by init setMEMtoFAC gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
setMEMtoFAC::@1 dominated by init setMEMtoFAC setMEMtoFAC::@1 gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
setMEMtoFAC::@return dominated by init setMEMtoFAC setMEMtoFAC::@1 gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 setMEMtoFAC::@return gen_sintab::@3
|
||||
subFACfromARG dominated by init subFACfromARG gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
subFACfromARG::@return dominated by init subFACfromARG gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 subFACfromARG::@return gen_sintab::@3
|
||||
setARGtoFAC dominated by setARGtoFAC init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
setARGtoFAC::@return dominated by setARGtoFAC init gen_sintab main setARGtoFAC::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @45 gen_sintab::@3
|
||||
progress_init dominated by init progress_init main @begin init::@2 init::@1 init::@5 init::@4 @45
|
||||
progress_init::@return dominated by init progress_init main @begin init::@2 init::@1 init::@5 init::@4 @45 progress_init::@return
|
||||
gen_sprites dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 @45
|
||||
gen_sprites::@1 dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_sprites::@3 dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45 gen_sprites::@3
|
||||
gen_sprites::@return dominated by init main gen_sprites::@return @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45 gen_sprites::@3
|
||||
gen_chargen_sprite dominated by init gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@1 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@2 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@6 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@3 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@4 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@7 dominated by init gen_chargen_sprite::@7 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@5 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@8 dominated by init gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@9 dominated by init gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@10 dominated by init gen_chargen_sprite::@10 gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
gen_chargen_sprite::@return dominated by init gen_chargen_sprite::@10 gen_chargen_sprite::@return gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @45
|
||||
place_sprites dominated by init main @begin init::@2 init::@1 @45 place_sprites
|
||||
place_sprites::@1 dominated by init place_sprites::@1 main @begin init::@2 init::@1 @45 place_sprites
|
||||
place_sprites::@return dominated by init place_sprites::@return place_sprites::@1 main @begin init::@2 init::@1 @45 place_sprites
|
||||
@46 dominated by @begin @46
|
||||
@end dominated by @end @begin @46
|
||||
main dominated by main @begin @46
|
||||
main::@2 dominated by main::@2 main @begin @46
|
||||
main::@3 dominated by main::@2 main::@3 main @begin @46
|
||||
main::@6 dominated by main::@2 main::@6 main::@3 main @begin @46
|
||||
main::@return dominated by main::@2 main::@6 main::@3 main::@return main @begin @46
|
||||
anim dominated by main::@2 main::@3 anim main @begin @46
|
||||
anim::@1 dominated by main::@2 main::@3 anim anim::@1 main @begin @46
|
||||
anim::@6 dominated by main::@2 main::@3 anim anim::@6 anim::@1 main @begin @46
|
||||
anim::@2 dominated by main::@2 main::@3 anim anim::@2 anim::@1 main @begin @46
|
||||
anim::@7 dominated by main::@2 main::@3 anim anim::@2 anim::@1 anim::@7 main @begin @46
|
||||
anim::@3 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 main @begin @46
|
||||
anim::@8 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 anim::@8 main @begin @46
|
||||
anim::@4 dominated by main::@2 main::@3 anim anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @46
|
||||
anim::@5 dominated by main::@2 main::@3 anim anim::@5 anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @46
|
||||
anim::@return dominated by main::@2 main::@3 anim anim::@5 anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 anim::@return main @begin @46
|
||||
anim::@15 dominated by main::@2 main::@3 anim anim::@4 anim::@3 anim::@2 anim::@1 anim::@8 main @begin @46 anim::@15
|
||||
anim::@14 dominated by main::@2 main::@3 anim anim::@3 anim::@2 anim::@1 anim::@8 main @begin @46 anim::@14
|
||||
init dominated by init main @begin @46
|
||||
init::@1 dominated by init main @begin init::@1 @46
|
||||
init::@2 dominated by init main @begin init::@2 init::@1 @46
|
||||
init::@4 dominated by init main @begin init::@2 init::@1 init::@4 @46
|
||||
init::@5 dominated by init main @begin init::@2 init::@1 init::@5 init::@4 @46
|
||||
init::@6 dominated by init main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46
|
||||
init::@7 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 @46
|
||||
init::@8 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@8 @46
|
||||
init::@9 dominated by init main @begin init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@9 init::@8 @46
|
||||
init::@return dominated by init main @begin init::@return init::@2 init::@1 init::@7 init::@6 init::@5 init::@4 init::@9 init::@8 @46
|
||||
clear_screen dominated by init clear_screen main @begin @46
|
||||
clear_screen::@1 dominated by init clear_screen main @begin @46 clear_screen::@1
|
||||
clear_screen::@return dominated by init clear_screen main @begin @46 clear_screen::@1 clear_screen::@return
|
||||
gen_sintab dominated by init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46
|
||||
gen_sintab::@3 dominated by init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@4 dominated by init gen_sintab main gen_sintab::@4 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@5 dominated by init gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@6 dominated by init gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@7 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@8 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@9 dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@10 dominated by gen_sintab::@10 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@11 dominated by gen_sintab::@10 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@12 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
gen_sintab::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@14 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@15 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@15 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@16 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@17 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@17 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@18 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@19 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@20 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@20 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@21 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@22 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@23 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@23 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
gen_sintab::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@23 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 gen_sintab::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@2 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@2 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
progress_inc::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 progress_inc gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 gen_sintab::@22 progress_inc::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 progress_inc::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
getFAC dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 getFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
getFAC::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 gen_sintab::@19 init gen_sintab::@21 gen_sintab::@20 getFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1 getFAC::@return
|
||||
addMEMtoFAC dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
addMEMtoFAC::@1 dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC::@1 addMEMtoFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
addMEMtoFAC::@return dominated by gen_sintab::@10 gen_sintab::@11 init addMEMtoFAC::@1 addMEMtoFAC addMEMtoFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
prepareMEM dominated by init prepareMEM gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46
|
||||
prepareMEM::@return dominated by init prepareMEM gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 prepareMEM::@return
|
||||
mulFACbyMEM dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
mulFACbyMEM::@1 dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 mulFACbyMEM::@1 gen_sintab::@3 gen_sintab::@1
|
||||
mulFACbyMEM::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 mulFACbyMEM::@return mulFACbyMEM init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 mulFACbyMEM::@1 gen_sintab::@3 gen_sintab::@1
|
||||
sinFAC dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init sinFAC gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
sinFAC::@return dominated by gen_sintab::@10 gen_sintab::@12 gen_sintab::@11 gen_sintab::@14 gen_sintab::@16 gen_sintab::@15 gen_sintab::@18 gen_sintab::@17 init sinFAC sinFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3 gen_sintab::@1
|
||||
divMEMbyFAC dominated by init gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 divMEMbyFAC gen_sintab::@3
|
||||
divMEMbyFAC::@1 dominated by init divMEMbyFAC::@1 gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 divMEMbyFAC gen_sintab::@3
|
||||
divMEMbyFAC::@return dominated by init divMEMbyFAC::@1 divMEMbyFAC::@return gen_sintab gen_sintab::@6 gen_sintab::@7 main gen_sintab::@4 gen_sintab::@5 gen_sintab::@8 gen_sintab::@9 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 divMEMbyFAC gen_sintab::@3
|
||||
setFAC dominated by init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46
|
||||
setFAC::@1 dominated by init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 setFAC::@1
|
||||
setFAC::@return dominated by setFAC::@return init setFAC gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 setFAC::@1
|
||||
setMEMtoFAC dominated by init setMEMtoFAC gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
setMEMtoFAC::@1 dominated by init setMEMtoFAC setMEMtoFAC::@1 gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
setMEMtoFAC::@return dominated by init setMEMtoFAC setMEMtoFAC::@1 gen_sintab main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 setMEMtoFAC::@return gen_sintab::@3
|
||||
subFACfromARG dominated by init subFACfromARG gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
subFACfromARG::@return dominated by init subFACfromARG gen_sintab gen_sintab::@6 main gen_sintab::@4 gen_sintab::@5 @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 subFACfromARG::@return gen_sintab::@3
|
||||
setARGtoFAC dominated by setARGtoFAC init gen_sintab main @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
setARGtoFAC::@return dominated by setARGtoFAC init gen_sintab main setARGtoFAC::@return @begin init::@2 init::@1 init::@6 init::@5 init::@4 @46 gen_sintab::@3
|
||||
progress_init dominated by init progress_init main @begin init::@2 init::@1 init::@5 init::@4 @46
|
||||
progress_init::@return dominated by init progress_init main @begin init::@2 init::@1 init::@5 init::@4 @46 progress_init::@return
|
||||
gen_sprites dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 @46
|
||||
gen_sprites::@1 dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_sprites::@3 dominated by init main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46 gen_sprites::@3
|
||||
gen_sprites::@return dominated by init main gen_sprites::@return @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46 gen_sprites::@3
|
||||
gen_chargen_sprite dominated by init gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@1 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@2 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@6 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@6 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@3 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@4 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@7 dominated by init gen_chargen_sprite::@7 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@5 dominated by init gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@8 dominated by init gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@9 dominated by init gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@10 dominated by init gen_chargen_sprite::@10 gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
gen_chargen_sprite::@return dominated by init gen_chargen_sprite::@10 gen_chargen_sprite::@return gen_chargen_sprite::@9 gen_chargen_sprite::@8 gen_chargen_sprite::@1 gen_chargen_sprite::@2 gen_chargen_sprite::@5 gen_chargen_sprite::@3 gen_chargen_sprite::@4 gen_chargen_sprite main @begin gen_sprites init::@2 init::@1 init::@4 gen_sprites::@1 @46
|
||||
place_sprites dominated by init main @begin init::@2 init::@1 @46 place_sprites
|
||||
place_sprites::@1 dominated by init place_sprites::@1 main @begin init::@2 init::@1 @46 place_sprites
|
||||
place_sprites::@return dominated by init place_sprites::@return place_sprites::@1 main @begin init::@2 init::@1 @46 place_sprites
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@2 tails: main::@2 blocks: null
|
||||
@ -6292,17 +6326,17 @@ INITIAL ASM
|
||||
.label sin_idx_y = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @45 [phi:@begin->@45]
|
||||
b45_from_bbegin:
|
||||
jmp b45
|
||||
//SEG4 @45
|
||||
b45:
|
||||
//SEG3 [1] phi from @begin to @46 [phi:@begin->@46]
|
||||
b46_from_bbegin:
|
||||
jmp b46
|
||||
//SEG4 @46
|
||||
b46:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @45 to main [phi:@45->main]
|
||||
main_from_b45:
|
||||
//SEG6 [4] phi from @46 to main [phi:@46->main]
|
||||
main_from_b46:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @45 to @end [phi:@45->@end]
|
||||
bend_from_b45:
|
||||
//SEG7 [3] phi from @46 to @end [phi:@46->@end]
|
||||
bend_from_b46:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -8053,17 +8087,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label sin_idx_y = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @45 [phi:@begin->@45]
|
||||
b45_from_bbegin:
|
||||
jmp b45
|
||||
//SEG4 @45
|
||||
b45:
|
||||
//SEG3 [1] phi from @begin to @46 [phi:@begin->@46]
|
||||
b46_from_bbegin:
|
||||
jmp b46
|
||||
//SEG4 @46
|
||||
b46:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @45 to main [phi:@45->main]
|
||||
main_from_b45:
|
||||
//SEG6 [4] phi from @46 to main [phi:@46->main]
|
||||
main_from_b46:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @45 to @end [phi:@45->@end]
|
||||
bend_from_b45:
|
||||
//SEG7 [3] phi from @46 to @end [phi:@46->@end]
|
||||
bend_from_b46:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -9360,7 +9394,7 @@ place_sprites: {
|
||||
sintab_y: .fill $c5, 0
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b45
|
||||
Removing instruction jmp b46
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b2
|
||||
Removing instruction jmp b3
|
||||
@ -9480,9 +9514,9 @@ Replacing label b2_from_b8 with b2
|
||||
Replacing label b1_from_b9 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b45_from_bbegin:
|
||||
Removing instruction main_from_b45:
|
||||
Removing instruction bend_from_b45:
|
||||
Removing instruction b46_from_bbegin:
|
||||
Removing instruction main_from_b46:
|
||||
Removing instruction bend_from_b46:
|
||||
Removing instruction b2_from_b6:
|
||||
Removing instruction b3_from_b2:
|
||||
Removing instruction b1_from_b3:
|
||||
@ -9549,7 +9583,7 @@ Removing instruction b4_from_b5:
|
||||
Removing instruction b5_from_b4:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b45:
|
||||
Removing instruction b46:
|
||||
Removing instruction bend:
|
||||
Removing instruction init_from_main:
|
||||
Removing instruction b2_from_main:
|
||||
@ -9678,7 +9712,7 @@ Removing instruction jmp b2
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @45
|
||||
(label) @46
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BORDERCOL
|
||||
@ -10051,12 +10085,12 @@ Score: 767890
|
||||
.label sin_idx_x = 2
|
||||
.label sin_idx_y = 3
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @45 [phi:@begin->@45]
|
||||
//SEG4 @45
|
||||
//SEG3 [1] phi from @begin to @46 [phi:@begin->@46]
|
||||
//SEG4 @46
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @45 to main [phi:@45->main]
|
||||
//SEG6 [4] phi from @46 to main [phi:@46->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @45 to @end [phi:@45->@end]
|
||||
//SEG7 [3] phi from @46 to @end [phi:@46->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @45
|
||||
(label) @46
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BORDERCOL
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@10
|
||||
@10: scope:[] from @begin
|
||||
to:@11
|
||||
@11: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @10
|
||||
@end: scope:[] from @11
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @10
|
||||
main: scope:[main] from @11
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -97,6 +97,12 @@ void print_word(word w) {
|
||||
print_byte(<w);
|
||||
}
|
||||
|
||||
// Print a dword as HEX
|
||||
void print_dword(dword dw) {
|
||||
print_word(>dw);
|
||||
print_word(<dw);
|
||||
}
|
||||
|
||||
// Print a byte as HEX
|
||||
void print_byte(byte b) {
|
||||
// Table of hexadecimal digits
|
||||
@ -188,6 +194,14 @@ proc (void()) print_word((word) print_word::w)
|
||||
print_word::@return:
|
||||
return
|
||||
endproc // print_word()
|
||||
proc (void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
print_dword::@return:
|
||||
return
|
||||
endproc // print_dword()
|
||||
proc (void()) print_byte((byte) print_byte::b)
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -510,6 +524,13 @@ SYMBOLS
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0
|
||||
(void~) print_dword::$1
|
||||
(word~) print_dword::$2
|
||||
(void~) print_dword::$3
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0
|
||||
(boolean~) print_ln::$1
|
||||
@ -658,6 +679,17 @@ print_word::@return: scope:[print_word] from print_word
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
to:print_dword::@return
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -668,8 +700,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) char_cursor) ← (byte) print_char::ch
|
||||
(byte*) char_cursor ← ++ (byte*) char_cursor
|
||||
@ -677,8 +709,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) SCREEN
|
||||
to:print_cls::@1
|
||||
@ -696,8 +728,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_cls
|
||||
(byte) main::a ← (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
@ -928,8 +960,8 @@ main::@44: scope:[main] from main::@22
|
||||
main::@return: scope:[main] from main::@44
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
to:@10
|
||||
@10: scope:[] from @9
|
||||
to:@11
|
||||
printu: scope:[printu] from
|
||||
(void~) printu::$0 ← call print_char (byte) ' '
|
||||
(void~) printu::$1 ← call print_byte (byte) printu::a
|
||||
@ -941,13 +973,14 @@ printu: scope:[printu] from
|
||||
printu::@return: scope:[printu] from printu
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
@11: scope:[] from @10
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @10
|
||||
@end: scope:[] from @11
|
||||
|
||||
Removing unused procedure print_sword
|
||||
Removing unused procedure print_sbyte
|
||||
Removing unused procedure print_dword
|
||||
Removing unused procedure print_word
|
||||
Eliminating unused variable - keeping the call (void~) print_byte::$1
|
||||
Eliminating unused variable - keeping the call (void~) print_byte::$3
|
||||
@ -1016,9 +1049,10 @@ Removing empty block @5
|
||||
Removing empty block @6
|
||||
Removing empty block @7
|
||||
Removing empty block @8
|
||||
Removing empty block @9
|
||||
Removing empty block main::@43
|
||||
Removing empty block main::@44
|
||||
Removing empty block @9
|
||||
Removing empty block @10
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies char_cursor
|
||||
print_ln modifies line_cursor
|
||||
@ -1047,7 +1081,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) line_cursor#0 ← (byte*) SCREEN#0
|
||||
(byte*) char_cursor#0 ← (byte*) line_cursor#0
|
||||
to:@10
|
||||
to:@11
|
||||
print_str: scope:[print_str] from printu::@2
|
||||
(byte*) char_cursor#119 ← phi( printu::@2/(byte*) char_cursor#40 )
|
||||
(byte*) print_str::str#4 ← phi( printu::@2/(byte*) print_str::str#1 )
|
||||
@ -1151,9 +1185,9 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) char_cursor#11 ← (byte*) char_cursor#56
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @10
|
||||
(byte*) char_cursor#96 ← phi( @10/(byte*) char_cursor#118 )
|
||||
(byte*) line_cursor#26 ← phi( @10/(byte*) line_cursor#33 )
|
||||
main: scope:[main] from @11
|
||||
(byte*) char_cursor#96 ← phi( @11/(byte*) char_cursor#118 )
|
||||
(byte*) line_cursor#26 ← phi( @11/(byte*) line_cursor#33 )
|
||||
call print_cls param-assignment
|
||||
to:main::@45
|
||||
main::@45: scope:[main] from main
|
||||
@ -1948,22 +1982,22 @@ printu::@return: scope:[printu] from printu::@6
|
||||
(byte*) char_cursor#45 ← (byte*) char_cursor#90
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @begin
|
||||
@11: scope:[] from @begin
|
||||
(byte*) char_cursor#118 ← phi( @begin/(byte*) char_cursor#0 )
|
||||
(byte*) line_cursor#33 ← phi( @begin/(byte*) line_cursor#0 )
|
||||
call main param-assignment
|
||||
to:@11
|
||||
@11: scope:[] from @10
|
||||
(byte*) char_cursor#91 ← phi( @10/(byte*) char_cursor#38 )
|
||||
(byte*) line_cursor#24 ← phi( @10/(byte*) line_cursor#11 )
|
||||
to:@12
|
||||
@12: scope:[] from @11
|
||||
(byte*) char_cursor#91 ← phi( @11/(byte*) char_cursor#38 )
|
||||
(byte*) line_cursor#24 ← phi( @11/(byte*) line_cursor#11 )
|
||||
(byte*) line_cursor#12 ← (byte*) line_cursor#24
|
||||
(byte*) char_cursor#46 ← (byte*) char_cursor#91
|
||||
to:@end
|
||||
@end: scope:[] from @11
|
||||
@end: scope:[] from @12
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @10
|
||||
(label) @11
|
||||
(label) @12
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -3467,7 +3501,7 @@ Not culling empty block because it shares successor with its predecessor. (label
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@41
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@42
|
||||
Culled Empty Block (label) printu::@6
|
||||
Culled Empty Block (label) @11
|
||||
Culled Empty Block (label) @12
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@23
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@24
|
||||
@ -6196,13 +6230,13 @@ Constant inlined printu::op#16 = (const string) main::op16
|
||||
Constant inlined main::r#25 = (byte) '-'
|
||||
Constant inlined print_byte::$4 = (const string) print_byte::hextab#0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @11 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting main::@71(between main::@70 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return main::@71 print_ln print_ln::@1 print_ln::@return print_ln::@3 printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @11 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return main::@71 print_ln print_ln::@1 print_ln::@return print_ln::@3 printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @10
|
||||
Adding NOP phi() at start of @11
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@23
|
||||
@ -6400,9 +6434,9 @@ Not culling empty block because it shares successor with its predecessor. (label
|
||||
Not culling empty block because it shares successor with its predecessor. (label) main::@42
|
||||
Culled Empty Block (label) print_ln::@3
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @10 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return main::@71 print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @11 @end main main::@1 main::@23 main::@2 main::@46 main::@24 main::@3 main::@47 main::@25 main::@4 main::@48 main::@26 main::@5 main::@49 main::@50 main::@27 main::@6 main::@51 main::@28 main::@7 main::@52 main::@29 main::@8 main::@53 main::@30 main::@9 main::@54 main::@55 main::@31 main::@10 main::@56 main::@32 main::@11 main::@57 main::@33 main::@12 main::@58 main::@34 main::@13 main::@59 main::@60 main::@35 main::@14 main::@61 main::@36 main::@15 main::@62 main::@37 main::@16 main::@63 main::@38 main::@17 main::@64 main::@65 main::@39 main::@18 main::@66 main::@40 main::@19 main::@67 main::@41 main::@20 main::@68 main::@42 main::@21 main::@69 main::@70 main::@22 main::@return main::@71 print_ln print_ln::@1 print_ln::@return printu printu::@1 printu::@2 printu::@3 printu::@4 printu::@5 printu::@return print_char print_char::@return print_byte print_byte::@1 print_byte::@return print_str print_str::@1 print_str::@return print_str::@2 print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @10
|
||||
Adding NOP phi() at start of @11
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@23
|
||||
@ -6464,14 +6498,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@10
|
||||
@10: scope:[] from @begin
|
||||
to:@11
|
||||
@11: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @10
|
||||
@end: scope:[] from @11
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @10
|
||||
main: scope:[main] from @11
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -6870,100 +6904,100 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@10 dominated by @begin @10
|
||||
@end dominated by @end @begin @10
|
||||
main dominated by main @begin @10
|
||||
main::@1 dominated by main main::@1 @begin @10
|
||||
main::@23 dominated by main main::@1 @begin main::@23 @10
|
||||
main::@2 dominated by main main::@1 main::@2 @begin @10
|
||||
main::@46 dominated by main main::@46 main::@1 main::@2 @begin @10
|
||||
main::@24 dominated by main main::@46 main::@1 main::@2 @begin main::@24 @10
|
||||
main::@3 dominated by main main::@46 main::@1 main::@2 main::@3 @begin @10
|
||||
main::@47 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 @begin @10
|
||||
main::@25 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 @begin main::@25 @10
|
||||
main::@4 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 main::@4 @begin @10
|
||||
main::@48 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@3 main::@4 @begin @10
|
||||
main::@26 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@3 main::@4 @begin main::@26 @10
|
||||
main::@5 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @10
|
||||
main::@49 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @10
|
||||
main::@50 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @10 main::@50
|
||||
main::@27 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin main::@27 @10 main::@50
|
||||
main::@6 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@50
|
||||
main::@51 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@51 main::@50
|
||||
main::@28 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@28 @10 main::@51 main::@50
|
||||
main::@7 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@51 main::@50
|
||||
main::@52 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@52 main::@51 main::@50
|
||||
main::@29 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@29 @10 main::@52 main::@51 main::@50
|
||||
main::@8 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@52 main::@51 main::@50
|
||||
main::@53 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@51 main::@50
|
||||
main::@30 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@30 @begin @10 main::@53 main::@52 main::@51 main::@50
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@51 main::@50
|
||||
main::@54 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@54 main::@51 main::@50
|
||||
main::@55 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@54 main::@51 main::@50
|
||||
main::@31 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 @begin @10 main::@53 main::@52 main::@55 main::@54 main::@51 main::@50
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@54 main::@10 main::@51 main::@50
|
||||
main::@56 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@54 main::@10 main::@51 main::@50 main::@56
|
||||
main::@32 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@32 @10 main::@53 main::@52 main::@55 main::@54 main::@10 main::@51 main::@50 main::@56
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@56
|
||||
main::@57 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56
|
||||
main::@33 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@33 @begin @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56 main::@12
|
||||
main::@58 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56 main::@12 main::@58
|
||||
main::@34 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@34 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56 main::@12 main::@58
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@58
|
||||
main::@59 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@60 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@35 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@35 main::@60 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@61 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@36 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@36 main::@60 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@62 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@37 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@37 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@63 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@63 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@38 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@38 main::@63 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@63 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@64 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@65 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@39 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@39 main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@18 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@66 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@40 dominated by main::@9 main::@7 main::@8 main::@40 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@19 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@67 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@41 dominated by main::@9 main::@41 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@20 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@68 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@68 main::@67 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@42 dominated by main::@9 main::@42 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@68 main::@67 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@21 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@69 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@70 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@22 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@63 main::@66 main::@22 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@return main::@63 main::@66 main::@22 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@71 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@71 main::@70 main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @10 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
print_ln dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @10
|
||||
print_ln::@1 dominated by print_ln::@1 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @10
|
||||
print_ln::@return dominated by print_ln::@1 main::@49 main main::@46 main::@48 main::@47 print_ln::@return main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @10
|
||||
printu dominated by main main::@1 main::@2 @begin @10 printu
|
||||
printu::@1 dominated by main main::@1 main::@2 @begin @10 printu::@1 printu
|
||||
printu::@2 dominated by main main::@1 main::@2 @begin @10 printu::@1 printu::@2 printu
|
||||
printu::@3 dominated by main main::@1 main::@2 @begin @10 printu::@1 printu::@3 printu::@2 printu
|
||||
printu::@4 dominated by main main::@1 main::@2 @begin @10 printu::@1 printu::@3 printu::@2 printu::@4 printu
|
||||
printu::@5 dominated by main main::@1 main::@2 @begin @10 printu::@1 printu::@3 printu::@2 printu::@5 printu::@4 printu
|
||||
printu::@return dominated by main main::@1 main::@2 printu::@return @begin @10 printu::@1 printu::@3 printu::@2 printu::@5 printu::@4 printu
|
||||
print_char dominated by main print_char main::@1 main::@2 @begin @10 printu
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 print_char::@return @begin @10 printu
|
||||
print_byte dominated by main main::@1 main::@2 @begin @10 print_byte printu::@1 printu
|
||||
print_byte::@1 dominated by main main::@1 main::@2 @begin print_byte::@1 @10 print_byte printu::@1 printu
|
||||
print_byte::@return dominated by main main::@1 main::@2 @begin print_byte::@return print_byte::@1 @10 print_byte printu::@1 printu
|
||||
print_str dominated by main main::@1 main::@2 @begin @10 print_str printu::@1 printu::@2 printu
|
||||
print_str::@1 dominated by main main::@1 main::@2 @begin print_str::@1 @10 print_str printu::@1 printu::@2 printu
|
||||
print_str::@return dominated by main main::@1 main::@2 @begin print_str::@return print_str::@1 @10 print_str printu::@1 printu::@2 printu
|
||||
print_str::@2 dominated by main main::@1 main::@2 @begin print_str::@1 print_str::@2 @10 print_str printu::@1 printu::@2 printu
|
||||
print_cls dominated by main @begin @10 print_cls
|
||||
print_cls::@1 dominated by main @begin @10 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main @begin print_cls::@return @10 print_cls::@1 print_cls
|
||||
@11 dominated by @begin @11
|
||||
@end dominated by @end @begin @11
|
||||
main dominated by main @begin @11
|
||||
main::@1 dominated by main main::@1 @begin @11
|
||||
main::@23 dominated by main main::@1 @begin main::@23 @11
|
||||
main::@2 dominated by main main::@1 main::@2 @begin @11
|
||||
main::@46 dominated by main main::@46 main::@1 main::@2 @begin @11
|
||||
main::@24 dominated by main main::@46 main::@1 main::@2 @begin main::@24 @11
|
||||
main::@3 dominated by main main::@46 main::@1 main::@2 main::@3 @begin @11
|
||||
main::@47 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 @begin @11
|
||||
main::@25 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 @begin main::@25 @11
|
||||
main::@4 dominated by main main::@46 main::@47 main::@1 main::@2 main::@3 main::@4 @begin @11
|
||||
main::@48 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@3 main::@4 @begin @11
|
||||
main::@26 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@3 main::@4 @begin main::@26 @11
|
||||
main::@5 dominated by main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @11
|
||||
main::@49 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @11
|
||||
main::@50 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin @11 main::@50
|
||||
main::@27 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin main::@27 @11 main::@50
|
||||
main::@6 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@50
|
||||
main::@51 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@51 main::@50
|
||||
main::@28 dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@28 @11 main::@51 main::@50
|
||||
main::@7 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@51 main::@50
|
||||
main::@52 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@52 main::@51 main::@50
|
||||
main::@29 dominated by main::@7 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@29 @11 main::@52 main::@51 main::@50
|
||||
main::@8 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@52 main::@51 main::@50
|
||||
main::@53 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@51 main::@50
|
||||
main::@30 dominated by main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@30 @begin @11 main::@53 main::@52 main::@51 main::@50
|
||||
main::@9 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@51 main::@50
|
||||
main::@54 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@54 main::@51 main::@50
|
||||
main::@55 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@54 main::@51 main::@50
|
||||
main::@31 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@31 @begin @11 main::@53 main::@52 main::@55 main::@54 main::@51 main::@50
|
||||
main::@10 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@54 main::@10 main::@51 main::@50
|
||||
main::@56 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@54 main::@10 main::@51 main::@50 main::@56
|
||||
main::@32 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@32 @11 main::@53 main::@52 main::@55 main::@54 main::@10 main::@51 main::@50 main::@56
|
||||
main::@11 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@56
|
||||
main::@57 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56
|
||||
main::@33 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 main::@33 @begin @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56
|
||||
main::@12 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56 main::@12
|
||||
main::@58 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56 main::@12 main::@58
|
||||
main::@34 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@34 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@56 main::@12 main::@58
|
||||
main::@13 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@58
|
||||
main::@59 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@60 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@35 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@35 main::@60 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58
|
||||
main::@14 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@61 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@36 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@36 main::@60 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@58 main::@14
|
||||
main::@15 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@62 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@37 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@37 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@16 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@63 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@63 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@38 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@38 main::@63 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@17 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@63 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@64 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@65 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@39 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@39 main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@18 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@65 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@66 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@40 dominated by main::@9 main::@7 main::@8 main::@40 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@19 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@67 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@41 dominated by main::@9 main::@41 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@20 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@67 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@68 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@68 main::@67 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@42 dominated by main::@9 main::@42 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@60 main::@62 main::@61 main::@68 main::@67 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@21 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@69 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@70 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@22 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@63 main::@66 main::@22 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@return dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@70 main::@64 main::@20 main::@return main::@63 main::@66 main::@22 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
main::@71 dominated by main::@9 main::@7 main::@8 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@6 main::@3 main::@4 @begin main::@71 main::@70 main::@64 main::@20 main::@63 main::@66 main::@65 main::@21 main::@60 main::@62 main::@61 main::@68 main::@67 main::@69 @11 main::@53 main::@52 main::@55 main::@11 main::@54 main::@10 main::@51 main::@50 main::@17 main::@16 main::@19 main::@18 main::@57 main::@13 main::@56 main::@12 main::@59 main::@15 main::@58 main::@14
|
||||
print_ln dominated by main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @11
|
||||
print_ln::@1 dominated by print_ln::@1 main::@49 main main::@46 main::@48 main::@47 main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @11
|
||||
print_ln::@return dominated by print_ln::@1 main::@49 main main::@46 main::@48 main::@47 print_ln::@return main::@1 main::@2 main::@5 main::@3 main::@4 @begin print_ln @11
|
||||
printu dominated by main main::@1 main::@2 @begin @11 printu
|
||||
printu::@1 dominated by main main::@1 main::@2 @begin @11 printu::@1 printu
|
||||
printu::@2 dominated by main main::@1 main::@2 @begin @11 printu::@1 printu::@2 printu
|
||||
printu::@3 dominated by main main::@1 main::@2 @begin @11 printu::@1 printu::@3 printu::@2 printu
|
||||
printu::@4 dominated by main main::@1 main::@2 @begin @11 printu::@1 printu::@3 printu::@2 printu::@4 printu
|
||||
printu::@5 dominated by main main::@1 main::@2 @begin @11 printu::@1 printu::@3 printu::@2 printu::@5 printu::@4 printu
|
||||
printu::@return dominated by main main::@1 main::@2 printu::@return @begin @11 printu::@1 printu::@3 printu::@2 printu::@5 printu::@4 printu
|
||||
print_char dominated by main print_char main::@1 main::@2 @begin @11 printu
|
||||
print_char::@return dominated by main print_char main::@1 main::@2 print_char::@return @begin @11 printu
|
||||
print_byte dominated by main main::@1 main::@2 @begin @11 print_byte printu::@1 printu
|
||||
print_byte::@1 dominated by main main::@1 main::@2 @begin print_byte::@1 @11 print_byte printu::@1 printu
|
||||
print_byte::@return dominated by main main::@1 main::@2 @begin print_byte::@return print_byte::@1 @11 print_byte printu::@1 printu
|
||||
print_str dominated by main main::@1 main::@2 @begin @11 print_str printu::@1 printu::@2 printu
|
||||
print_str::@1 dominated by main main::@1 main::@2 @begin print_str::@1 @11 print_str printu::@1 printu::@2 printu
|
||||
print_str::@return dominated by main main::@1 main::@2 @begin print_str::@return print_str::@1 @11 print_str printu::@1 printu::@2 printu
|
||||
print_str::@2 dominated by main main::@1 main::@2 @begin print_str::@1 print_str::@2 @11 print_str printu::@1 printu::@2 printu
|
||||
print_cls dominated by main @begin @11 print_cls
|
||||
print_cls::@1 dominated by main @begin @11 print_cls::@1 print_cls
|
||||
print_cls::@return dominated by main @begin print_cls::@return @11 print_cls::@1 print_cls
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: main::@22 tails: main::@22 blocks: null
|
||||
@ -7262,17 +7296,17 @@ INITIAL ASM
|
||||
.label line_cursor = $18
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
b10_from_bbegin:
|
||||
jmp b10
|
||||
//SEG4 @10
|
||||
b10:
|
||||
//SEG3 [1] phi from @begin to @11 [phi:@begin->@11]
|
||||
b11_from_bbegin:
|
||||
jmp b11
|
||||
//SEG4 @11
|
||||
b11:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
main_from_b10:
|
||||
//SEG6 [4] phi from @11 to main [phi:@11->main]
|
||||
main_from_b11:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
bend_from_b10:
|
||||
//SEG7 [3] phi from @11 to @end [phi:@11->@end]
|
||||
bend_from_b11:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -8918,17 +8952,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label line_cursor = 4
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
b10_from_bbegin:
|
||||
jmp b10
|
||||
//SEG4 @10
|
||||
b10:
|
||||
//SEG3 [1] phi from @begin to @11 [phi:@begin->@11]
|
||||
b11_from_bbegin:
|
||||
jmp b11
|
||||
//SEG4 @11
|
||||
b11:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
main_from_b10:
|
||||
//SEG6 [4] phi from @11 to main [phi:@11->main]
|
||||
main_from_b11:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
bend_from_b10:
|
||||
//SEG7 [3] phi from @11 to @end [phi:@11->@end]
|
||||
bend_from_b11:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -10224,7 +10258,7 @@ print_cls: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b10
|
||||
Removing instruction jmp b11
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b23
|
||||
@ -10318,9 +10352,9 @@ Replacing label b1_from_b2 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b10_from_bbegin:
|
||||
Removing instruction main_from_b10:
|
||||
Removing instruction bend_from_b10:
|
||||
Removing instruction b11_from_bbegin:
|
||||
Removing instruction main_from_b11:
|
||||
Removing instruction bend_from_b11:
|
||||
Removing instruction b23_from_b1:
|
||||
Removing instruction b2_from_b23:
|
||||
Removing instruction b24_from_b46:
|
||||
@ -10379,7 +10413,7 @@ Removing instruction b1_from_print_str:
|
||||
Removing instruction b1_from_b2:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b10:
|
||||
Removing instruction b11:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1_from_main:
|
||||
@ -10498,7 +10532,7 @@ Removing instruction jmp b1
|
||||
Succesful ASM optimization Pass5NextJumpElimination
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @10
|
||||
(label) @11
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -10794,12 +10828,12 @@ Score: 15772
|
||||
.label char_cursor = 9
|
||||
.label line_cursor = 4
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @10 [phi:@begin->@10]
|
||||
//SEG4 @10
|
||||
//SEG3 [1] phi from @begin to @11 [phi:@begin->@11]
|
||||
//SEG4 @11
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @10 to main [phi:@10->main]
|
||||
//SEG6 [4] phi from @11 to main [phi:@11->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @10 to @end [phi:@10->@end]
|
||||
//SEG7 [3] phi from @11 to @end [phi:@11->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @10
|
||||
(label) @11
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@17
|
||||
@17: scope:[] from @begin
|
||||
to:@18
|
||||
@18: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @17
|
||||
@end: scope:[] from @18
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @17
|
||||
main: scope:[main] from @18
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
@ -131,6 +131,12 @@ void print_word(word w) {
|
||||
print_byte(<w);
|
||||
}
|
||||
|
||||
// Print a dword as HEX
|
||||
void print_dword(dword dw) {
|
||||
print_word(>dw);
|
||||
print_word(<dw);
|
||||
}
|
||||
|
||||
// Print a byte as HEX
|
||||
void print_byte(byte b) {
|
||||
// Table of hexadecimal digits
|
||||
@ -354,6 +360,14 @@ proc (void()) print_word((word) print_word::w)
|
||||
print_word::@return:
|
||||
return
|
||||
endproc // print_word()
|
||||
proc (void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
print_dword::@return:
|
||||
return
|
||||
endproc // print_dword()
|
||||
proc (void()) print_byte((byte) print_byte::b)
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -818,6 +832,13 @@ SYMBOLS
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(void()) print_dword((dword) print_dword::dw)
|
||||
(word~) print_dword::$0
|
||||
(void~) print_dword::$1
|
||||
(word~) print_dword::$2
|
||||
(void~) print_dword::$3
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0
|
||||
(boolean~) print_ln::$1
|
||||
@ -1047,6 +1068,17 @@ print_word::@return: scope:[print_word] from print_word
|
||||
to:@return
|
||||
@5: scope:[] from @4
|
||||
to:@6
|
||||
print_dword: scope:[print_dword] from
|
||||
(word~) print_dword::$0 ← > (dword) print_dword::dw
|
||||
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
|
||||
(word~) print_dword::$2 ← < (dword) print_dword::dw
|
||||
(void~) print_dword::$3 ← call print_word (word~) print_dword::$2
|
||||
to:print_dword::@return
|
||||
print_dword::@return: scope:[print_dword] from print_dword
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
print_byte: scope:[print_byte] from
|
||||
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
|
||||
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
@ -1057,8 +1089,8 @@ print_byte: scope:[print_byte] from
|
||||
print_byte::@return: scope:[print_byte] from print_byte
|
||||
return
|
||||
to:@return
|
||||
@6: scope:[] from @5
|
||||
to:@7
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
print_char: scope:[print_char] from
|
||||
*((byte*) char_cursor) ← (byte) print_char::ch
|
||||
(byte*) char_cursor ← ++ (byte*) char_cursor
|
||||
@ -1066,8 +1098,8 @@ print_char: scope:[print_char] from
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
return
|
||||
to:@return
|
||||
@7: scope:[] from @6
|
||||
to:@8
|
||||
@8: scope:[] from @7
|
||||
to:@9
|
||||
print_cls: scope:[print_cls] from
|
||||
(byte*) print_cls::sc ← (byte*) SCREEN
|
||||
to:print_cls::@1
|
||||
@ -1085,9 +1117,9 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @7
|
||||
@9: scope:[] from @8
|
||||
(byte) rem8u ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@9
|
||||
to:@10
|
||||
div8u: scope:[div8u] from
|
||||
(byte) div8u::rem ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) div8u::quotient ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1133,9 +1165,9 @@ div8u::@return: scope:[div8u] from div8u::@6 div8u::@7
|
||||
to:@return
|
||||
div8u::@7: scope:[div8u] from
|
||||
to:div8u::@return
|
||||
@9: scope:[] from @8
|
||||
@10: scope:[] from @9
|
||||
(word) rem16u ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@10
|
||||
to:@11
|
||||
div16u: scope:[div16u] from
|
||||
(word) div16u::rem ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16u::quotient ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1182,9 +1214,9 @@ div16u::@return: scope:[div16u] from div16u::@6 div16u::@7
|
||||
to:@return
|
||||
div16u::@7: scope:[div16u] from
|
||||
to:div16u::@return
|
||||
@10: scope:[] from @9
|
||||
@11: scope:[] from @10
|
||||
(signed byte) rem8s ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@11
|
||||
to:@12
|
||||
div8s: scope:[div8s] from
|
||||
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1256,9 +1288,9 @@ div8s::@13: scope:[div8s] from
|
||||
to:div8s::@5
|
||||
div8s::@14: scope:[div8s] from
|
||||
to:div8s::@6
|
||||
@11: scope:[] from @10
|
||||
@12: scope:[] from @11
|
||||
(signed word) rem16s ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@12
|
||||
to:@13
|
||||
div16s: scope:[div16s] from
|
||||
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -1330,8 +1362,8 @@ div16s::@13: scope:[div16s] from
|
||||
to:div16s::@5
|
||||
div16s::@14: scope:[div16s] from
|
||||
to:div16s::@6
|
||||
@12: scope:[] from @11
|
||||
to:@13
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
main: scope:[main] from
|
||||
(void~) main::$0 ← call print_cls
|
||||
(void~) main::$1 ← call test_8u
|
||||
@ -1342,8 +1374,8 @@ main: scope:[main] from
|
||||
main::@return: scope:[main] from main
|
||||
return
|
||||
to:@return
|
||||
@13: scope:[] from @12
|
||||
to:@14
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
test_8u: scope:[test_8u] from
|
||||
(byte[]) test_8u::dividends ← { (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255, (byte/word/signed word/dword/signed dword) 255 }
|
||||
(byte[]) test_8u::divisors ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 }
|
||||
@ -1372,8 +1404,8 @@ test_8u::@2: scope:[test_8u] from test_8u::@1
|
||||
test_8u::@return: scope:[test_8u] from test_8u::@2
|
||||
return
|
||||
to:@return
|
||||
@14: scope:[] from @13
|
||||
to:@15
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
test_16u: scope:[test_16u] from
|
||||
(word[]) test_16u::dividends ← { (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535, (word/dword/signed dword) 65535 }
|
||||
(word[]) test_16u::divisors ← { (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 7, (byte/signed byte/word/signed word/dword/signed dword) 11, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 17, (byte/signed byte/word/signed word/dword/signed dword) 19 }
|
||||
@ -1402,8 +1434,8 @@ test_16u::@2: scope:[test_16u] from test_16u::@1
|
||||
test_16u::@return: scope:[test_16u] from test_16u::@2
|
||||
return
|
||||
to:@return
|
||||
@15: scope:[] from @14
|
||||
to:@16
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
test_8s: scope:[test_8s] from
|
||||
(signed byte/signed word/signed dword~) test_8s::$0 ← - (byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
(signed byte/signed word/signed dword~) test_8s::$1 ← - (byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
@ -1435,8 +1467,8 @@ test_8s::@2: scope:[test_8s] from test_8s::@1
|
||||
test_8s::@return: scope:[test_8s] from test_8s::@2
|
||||
return
|
||||
to:@return
|
||||
@16: scope:[] from @15
|
||||
to:@17
|
||||
@17: scope:[] from @16
|
||||
to:@18
|
||||
test_16s: scope:[test_16s] from
|
||||
(signed word/signed dword~) test_16s::$0 ← - (word/signed word/dword/signed dword) 32767
|
||||
(signed word/signed dword~) test_16s::$1 ← - (word/signed word/dword/signed dword) 32767
|
||||
@ -1471,11 +1503,12 @@ test_16s::@2: scope:[test_16s] from test_16s::@1
|
||||
test_16s::@return: scope:[test_16s] from test_16s::@2
|
||||
return
|
||||
to:@return
|
||||
@17: scope:[] from @16
|
||||
@18: scope:[] from @17
|
||||
call main
|
||||
to:@end
|
||||
@end: scope:[] from @17
|
||||
@end: scope:[] from @18
|
||||
|
||||
Removing unused procedure print_dword
|
||||
Eliminating unused variable - keeping the call (void~) print_sword::$5
|
||||
Eliminating unused variable - keeping the call (void~) print_sword::$2
|
||||
Eliminating unused variable - keeping the call (void~) print_sbyte::$5
|
||||
@ -1546,6 +1579,7 @@ Removing empty block @4
|
||||
Removing empty block @5
|
||||
Removing empty block @6
|
||||
Removing empty block @7
|
||||
Removing empty block @8
|
||||
Removing empty block div8u::@7
|
||||
Removing empty block div16u::@7
|
||||
Removing empty block div8s::@8
|
||||
@ -1560,14 +1594,14 @@ Removing empty block div16s::@12
|
||||
Removing empty block div16s::@6
|
||||
Removing empty block div16s::@13
|
||||
Removing empty block div16s::@14
|
||||
Removing empty block @12
|
||||
Removing empty block @13
|
||||
Removing empty block test_8u::@2
|
||||
Removing empty block @14
|
||||
Removing empty block test_16u::@2
|
||||
Removing empty block test_8u::@2
|
||||
Removing empty block @15
|
||||
Removing empty block test_8s::@2
|
||||
Removing empty block test_16u::@2
|
||||
Removing empty block @16
|
||||
Removing empty block test_8s::@2
|
||||
Removing empty block @17
|
||||
Removing empty block test_16s::@2
|
||||
PROCEDURE MODIFY VARIABLE ANALYSIS
|
||||
print_str modifies char_cursor
|
||||
@ -1624,7 +1658,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
|
||||
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
|
||||
(byte*) line_cursor#0 ← (byte*) SCREEN#0
|
||||
(byte*) char_cursor#0 ← (byte*) line_cursor#0
|
||||
to:@8
|
||||
to:@9
|
||||
print_str: scope:[print_str] from test_16s::@4 test_16s::@6 test_16s::@8 test_16u::@4 test_16u::@6 test_16u::@8 test_8s::@4 test_8s::@6 test_8s::@8 test_8u::@4 test_8u::@6 test_8u::@8
|
||||
(byte*) char_cursor#140 ← phi( test_16s::@4/(byte*) char_cursor#54 test_16s::@6/(byte*) char_cursor#56 test_16s::@8/(byte*) char_cursor#58 test_16u::@4/(byte*) char_cursor#36 test_16u::@6/(byte*) char_cursor#38 test_16u::@8/(byte*) char_cursor#40 test_8s::@4/(byte*) char_cursor#45 test_8s::@6/(byte*) char_cursor#47 test_8s::@8/(byte*) char_cursor#49 test_8u::@4/(byte*) char_cursor#27 test_8u::@6/(byte*) char_cursor#29 test_8u::@8/(byte*) char_cursor#31 )
|
||||
(byte*) print_str::str#15 ← phi( test_16s::@4/(byte*) print_str::str#10 test_16s::@6/(byte*) print_str::str#11 test_16s::@8/(byte*) print_str::str#12 test_16u::@4/(byte*) print_str::str#4 test_16u::@6/(byte*) print_str::str#5 test_16u::@8/(byte*) print_str::str#6 test_8s::@4/(byte*) print_str::str#7 test_8s::@6/(byte*) print_str::str#8 test_8s::@8/(byte*) print_str::str#9 test_8u::@4/(byte*) print_str::str#1 test_8u::@6/(byte*) print_str::str#2 test_8u::@8/(byte*) print_str::str#3 )
|
||||
@ -1824,11 +1858,11 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
|
||||
(byte*) char_cursor#20 ← (byte*) char_cursor#82
|
||||
return
|
||||
to:@return
|
||||
@8: scope:[] from @begin
|
||||
@9: scope:[] from @begin
|
||||
(byte*) char_cursor#154 ← phi( @begin/(byte*) char_cursor#0 )
|
||||
(byte*) line_cursor#61 ← phi( @begin/(byte*) line_cursor#0 )
|
||||
(byte) rem8u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@9
|
||||
to:@10
|
||||
div8u: scope:[div8u] from div8s::@4 test_8u::@1
|
||||
(byte) div8u::divisor#6 ← phi( div8s::@4/(byte) div8u::divisor#0 test_8u::@1/(byte) div8u::divisor#1 )
|
||||
(byte) div8u::dividend#5 ← phi( div8s::@4/(byte) div8u::dividend#1 test_8u::@1/(byte) div8u::dividend#2 )
|
||||
@ -1904,12 +1938,12 @@ div8u::@return: scope:[div8u] from div8u::@6
|
||||
(byte) rem8u#2 ← (byte) rem8u#13
|
||||
return
|
||||
to:@return
|
||||
@9: scope:[] from @8
|
||||
(byte) rem8u#50 ← phi( @8/(byte) rem8u#0 )
|
||||
(byte*) char_cursor#153 ← phi( @8/(byte*) char_cursor#154 )
|
||||
(byte*) line_cursor#56 ← phi( @8/(byte*) line_cursor#61 )
|
||||
@10: scope:[] from @9
|
||||
(byte) rem8u#50 ← phi( @9/(byte) rem8u#0 )
|
||||
(byte*) char_cursor#153 ← phi( @9/(byte*) char_cursor#154 )
|
||||
(byte*) line_cursor#56 ← phi( @9/(byte*) line_cursor#61 )
|
||||
(word) rem16u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@10
|
||||
to:@11
|
||||
div16u: scope:[div16u] from div16s::@4 test_16u::@1
|
||||
(word) div16u::divisor#6 ← phi( div16s::@4/(word) div16u::divisor#0 test_16u::@1/(word) div16u::divisor#1 )
|
||||
(word) div16u::dividend#5 ← phi( div16s::@4/(word) div16u::dividend#1 test_16u::@1/(word) div16u::dividend#2 )
|
||||
@ -1986,13 +2020,13 @@ div16u::@return: scope:[div16u] from div16u::@6
|
||||
(word) rem16u#2 ← (word) rem16u#13
|
||||
return
|
||||
to:@return
|
||||
@10: scope:[] from @9
|
||||
(word) rem16u#45 ← phi( @9/(word) rem16u#0 )
|
||||
(byte) rem8u#47 ← phi( @9/(byte) rem8u#50 )
|
||||
(byte*) char_cursor#148 ← phi( @9/(byte*) char_cursor#153 )
|
||||
(byte*) line_cursor#51 ← phi( @9/(byte*) line_cursor#56 )
|
||||
@11: scope:[] from @10
|
||||
(word) rem16u#45 ← phi( @10/(word) rem16u#0 )
|
||||
(byte) rem8u#47 ← phi( @10/(byte) rem8u#50 )
|
||||
(byte*) char_cursor#148 ← phi( @10/(byte*) char_cursor#153 )
|
||||
(byte*) line_cursor#51 ← phi( @10/(byte*) line_cursor#56 )
|
||||
(signed byte) rem8s#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@11
|
||||
to:@12
|
||||
div8s: scope:[div8s] from test_8s::@1
|
||||
(byte) rem8u#55 ← phi( test_8s::@1/(byte) rem8u#34 )
|
||||
(signed byte) div8s::divisor#6 ← phi( test_8s::@1/(signed byte) div8s::divisor#0 )
|
||||
@ -2097,14 +2131,14 @@ div8s::@return: scope:[div8s] from div8s::@11 div8s::@5
|
||||
(signed byte) rem8s#3 ← (signed byte) rem8s#9
|
||||
return
|
||||
to:@return
|
||||
@11: scope:[] from @10
|
||||
(signed byte) rem8s#26 ← phi( @10/(signed byte) rem8s#0 )
|
||||
(word) rem16u#44 ← phi( @10/(word) rem16u#45 )
|
||||
(byte) rem8u#45 ← phi( @10/(byte) rem8u#47 )
|
||||
(byte*) char_cursor#147 ← phi( @10/(byte*) char_cursor#148 )
|
||||
(byte*) line_cursor#50 ← phi( @10/(byte*) line_cursor#51 )
|
||||
@12: scope:[] from @11
|
||||
(signed byte) rem8s#26 ← phi( @11/(signed byte) rem8s#0 )
|
||||
(word) rem16u#44 ← phi( @11/(word) rem16u#45 )
|
||||
(byte) rem8u#45 ← phi( @11/(byte) rem8u#47 )
|
||||
(byte*) char_cursor#147 ← phi( @11/(byte*) char_cursor#148 )
|
||||
(byte*) line_cursor#50 ← phi( @11/(byte*) line_cursor#51 )
|
||||
(signed word) rem16s#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
to:@17
|
||||
to:@18
|
||||
div16s: scope:[div16s] from test_16s::@1
|
||||
(word) rem16u#54 ← phi( test_16s::@1/(word) rem16u#33 )
|
||||
(signed word) div16s::divisor#6 ← phi( test_16s::@1/(signed word) div16s::divisor#0 )
|
||||
@ -2209,13 +2243,13 @@ div16s::@return: scope:[div16s] from div16s::@11 div16s::@5
|
||||
(signed word) rem16s#3 ← (signed word) rem16s#9
|
||||
return
|
||||
to:@return
|
||||
main: scope:[main] from @17
|
||||
(signed word) rem16s#29 ← phi( @17/(signed word) rem16s#20 )
|
||||
(signed byte) rem8s#29 ← phi( @17/(signed byte) rem8s#21 )
|
||||
(word) rem16u#47 ← phi( @17/(word) rem16u#35 )
|
||||
(byte) rem8u#39 ← phi( @17/(byte) rem8u#36 )
|
||||
(byte*) char_cursor#134 ← phi( @17/(byte*) char_cursor#139 )
|
||||
(byte*) line_cursor#40 ← phi( @17/(byte*) line_cursor#45 )
|
||||
main: scope:[main] from @18
|
||||
(signed word) rem16s#29 ← phi( @18/(signed word) rem16s#20 )
|
||||
(signed byte) rem8s#29 ← phi( @18/(signed byte) rem8s#21 )
|
||||
(word) rem16u#47 ← phi( @18/(word) rem16u#35 )
|
||||
(byte) rem8u#39 ← phi( @18/(byte) rem8u#36 )
|
||||
(byte*) char_cursor#134 ← phi( @18/(byte*) char_cursor#139 )
|
||||
(byte*) line_cursor#40 ← phi( @18/(byte*) line_cursor#45 )
|
||||
call print_cls param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
@ -2821,22 +2855,22 @@ test_16s::@return: scope:[test_16s] from test_16s::@11
|
||||
(byte*) line_cursor#18 ← (byte*) line_cursor#37
|
||||
return
|
||||
to:@return
|
||||
@17: scope:[] from @11
|
||||
(signed word) rem16s#20 ← phi( @11/(signed word) rem16s#0 )
|
||||
(signed byte) rem8s#21 ← phi( @11/(signed byte) rem8s#26 )
|
||||
(word) rem16u#35 ← phi( @11/(word) rem16u#44 )
|
||||
(byte) rem8u#36 ← phi( @11/(byte) rem8u#45 )
|
||||
(byte*) char_cursor#139 ← phi( @11/(byte*) char_cursor#147 )
|
||||
(byte*) line_cursor#45 ← phi( @11/(byte*) line_cursor#50 )
|
||||
@18: scope:[] from @12
|
||||
(signed word) rem16s#20 ← phi( @12/(signed word) rem16s#0 )
|
||||
(signed byte) rem8s#21 ← phi( @12/(signed byte) rem8s#26 )
|
||||
(word) rem16u#35 ← phi( @12/(word) rem16u#44 )
|
||||
(byte) rem8u#36 ← phi( @12/(byte) rem8u#45 )
|
||||
(byte*) char_cursor#139 ← phi( @12/(byte*) char_cursor#147 )
|
||||
(byte*) line_cursor#45 ← phi( @12/(byte*) line_cursor#50 )
|
||||
call main param-assignment
|
||||
to:@18
|
||||
@18: scope:[] from @17
|
||||
(signed word) rem16s#15 ← phi( @17/(signed word) rem16s#5 )
|
||||
(signed byte) rem8s#15 ← phi( @17/(signed byte) rem8s#5 )
|
||||
(word) rem16u#26 ← phi( @17/(word) rem16u#7 )
|
||||
(byte) rem8u#26 ← phi( @17/(byte) rem8u#7 )
|
||||
(byte*) char_cursor#125 ← phi( @17/(byte*) char_cursor#26 )
|
||||
(byte*) line_cursor#38 ← phi( @17/(byte*) line_cursor#10 )
|
||||
to:@19
|
||||
@19: scope:[] from @18
|
||||
(signed word) rem16s#15 ← phi( @18/(signed word) rem16s#5 )
|
||||
(signed byte) rem8s#15 ← phi( @18/(signed byte) rem8s#5 )
|
||||
(word) rem16u#26 ← phi( @18/(word) rem16u#7 )
|
||||
(byte) rem8u#26 ← phi( @18/(byte) rem8u#7 )
|
||||
(byte*) char_cursor#125 ← phi( @18/(byte*) char_cursor#26 )
|
||||
(byte*) line_cursor#38 ← phi( @18/(byte*) line_cursor#10 )
|
||||
(byte*) line_cursor#19 ← (byte*) line_cursor#38
|
||||
(byte*) char_cursor#63 ← (byte*) char_cursor#125
|
||||
(byte) rem8u#12 ← (byte) rem8u#26
|
||||
@ -2844,14 +2878,14 @@ test_16s::@return: scope:[test_16s] from test_16s::@11
|
||||
(signed byte) rem8s#8 ← (signed byte) rem8s#15
|
||||
(signed word) rem16s#8 ← (signed word) rem16s#15
|
||||
to:@end
|
||||
@end: scope:[] from @18
|
||||
@end: scope:[] from @19
|
||||
|
||||
SYMBOL TABLE SSA
|
||||
(label) @10
|
||||
(label) @11
|
||||
(label) @17
|
||||
(label) @12
|
||||
(label) @18
|
||||
(label) @8
|
||||
(label) @19
|
||||
(label) @9
|
||||
(label) @begin
|
||||
(label) @end
|
||||
@ -4880,18 +4914,18 @@ Culled Empty Block (label) print_sbyte::@3
|
||||
Culled Empty Block (label) print_word::@2
|
||||
Culled Empty Block (label) print_byte::@2
|
||||
Culled Empty Block (label) print_cls::@2
|
||||
Culled Empty Block (label) @8
|
||||
Culled Empty Block (label) @9
|
||||
Culled Empty Block (label) @10
|
||||
Culled Empty Block (label) @11
|
||||
Culled Empty Block (label) div8s::@1
|
||||
Culled Empty Block (label) div8s::@3
|
||||
Culled Empty Block (label) div8s::@11
|
||||
Culled Empty Block (label) @11
|
||||
Culled Empty Block (label) @12
|
||||
Culled Empty Block (label) div16s::@1
|
||||
Culled Empty Block (label) div16s::@3
|
||||
Culled Empty Block (label) div16s::@11
|
||||
Culled Empty Block (label) main::@5
|
||||
Culled Empty Block (label) @18
|
||||
Culled Empty Block (label) @19
|
||||
Succesful SSA optimization Pass2CullEmptyBlocks
|
||||
Not aliassing across scopes: char_cursor#126 char_cursor#17
|
||||
Not aliassing across scopes: print_sword::w#5 print_sword::w#1
|
||||
@ -5157,7 +5191,7 @@ Constant inlined print_str::str#5 = (const string) test_16u::str1
|
||||
Constant inlined div8u::rem#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined rem8u#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
Block Sequence Planned @begin @17 @end main main::@1 main::@2 main::@3 main::@4 main::@return test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 test_16s::@9 test_16s::@10 test_16s::@11 test_16s::@return print_ln print_ln::@1 print_ln::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 div16s div16s::@7 div16s::@2 div16s::@9 div16s::@4 div16s::@15 div16s::@return div16s::@5 div16u div16u::@1 div16u::@4 div16u::@2 div16u::@5 div16u::@3 div16u::@6 div16u::@return test_8s test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7 test_8s::@8 test_8s::@9 test_8s::@10 test_8s::@11 test_8s::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return div8s div8s::@7 div8s::@2 div8s::@9 div8s::@4 div8s::@15 div8s::@return div8s::@5 div8u div8u::@1 div8u::@4 div8u::@2 div8u::@5 div8u::@3 div8u::@6 div8u::@return test_16u test_16u::@1 test_16u::@3 test_16u::@4 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@9 test_16u::@10 test_16u::@11 test_16u::@return test_8u test_8u::@1 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@return print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @18 @end main main::@1 main::@2 main::@3 main::@4 main::@return test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 test_16s::@9 test_16s::@10 test_16s::@11 test_16s::@return print_ln print_ln::@1 print_ln::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 div16s div16s::@7 div16s::@2 div16s::@9 div16s::@4 div16s::@15 div16s::@return div16s::@5 div16u div16u::@1 div16u::@4 div16u::@2 div16u::@5 div16u::@3 div16u::@6 div16u::@return test_8s test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7 test_8s::@8 test_8s::@9 test_8s::@10 test_8s::@11 test_8s::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return div8s div8s::@7 div8s::@2 div8s::@9 div8s::@4 div8s::@15 div8s::@return div8s::@5 div8u div8u::@1 div8u::@4 div8u::@2 div8u::@5 div8u::@3 div8u::@6 div8u::@return test_16u test_16u::@1 test_16u::@3 test_16u::@4 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@9 test_16u::@10 test_16u::@11 test_16u::@return test_8u test_8u::@1 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@return print_cls print_cls::@1 print_cls::@return
|
||||
Added new block during phi lifting test_16s::@12(between test_16s::@11 and test_16s::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
Added new block during phi lifting print_sword::@5(between print_sword and print_sword::@1)
|
||||
@ -5180,9 +5214,9 @@ Added new block during phi lifting div8u::@10(between div8u::@2 and div8u::@3)
|
||||
Added new block during phi lifting test_16u::@12(between test_16u::@11 and test_16u::@1)
|
||||
Added new block during phi lifting test_8u::@12(between test_8u::@11 and test_8u::@1)
|
||||
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
Block Sequence Planned @begin @17 @end main main::@1 main::@2 main::@3 main::@4 main::@return test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 test_16s::@9 test_16s::@10 test_16s::@11 test_16s::@return test_16s::@12 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 div16s div16s::@7 div16s::@2 div16s::@9 div16s::@4 div16s::@15 div16s::@18 div16s::@return div16s::@5 div16s::@17 div16s::@16 div16u div16u::@1 div16u::@4 div16u::@2 div16u::@5 div16u::@3 div16u::@6 div16u::@return div16u::@8 div16u::@10 div16u::@9 test_8s test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7 test_8s::@8 test_8s::@9 test_8s::@10 test_8s::@11 test_8s::@return test_8s::@12 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_sbyte::@5 div8s div8s::@7 div8s::@2 div8s::@9 div8s::@4 div8s::@15 div8s::@18 div8s::@return div8s::@5 div8s::@17 div8s::@16 div8u div8u::@1 div8u::@4 div8u::@2 div8u::@5 div8u::@3 div8u::@6 div8u::@return div8u::@8 div8u::@10 div8u::@9 test_16u test_16u::@1 test_16u::@3 test_16u::@4 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@9 test_16u::@10 test_16u::@11 test_16u::@return test_16u::@12 test_8u test_8u::@1 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@return test_8u::@12 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Block Sequence Planned @begin @18 @end main main::@1 main::@2 main::@3 main::@4 main::@return test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 test_16s::@9 test_16s::@10 test_16s::@11 test_16s::@return test_16s::@12 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 div16s div16s::@7 div16s::@2 div16s::@9 div16s::@4 div16s::@15 div16s::@18 div16s::@return div16s::@5 div16s::@17 div16s::@16 div16u div16u::@1 div16u::@4 div16u::@2 div16u::@5 div16u::@3 div16u::@6 div16u::@return div16u::@8 div16u::@10 div16u::@9 test_8s test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7 test_8s::@8 test_8s::@9 test_8s::@10 test_8s::@11 test_8s::@return test_8s::@12 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_sbyte::@5 div8s div8s::@7 div8s::@2 div8s::@9 div8s::@4 div8s::@15 div8s::@18 div8s::@return div8s::@5 div8s::@17 div8s::@16 div8u div8u::@1 div8u::@4 div8u::@2 div8u::@5 div8u::@3 div8u::@6 div8u::@return div8u::@8 div8u::@10 div8u::@9 test_16u test_16u::@1 test_16u::@3 test_16u::@4 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@9 test_16u::@10 test_16u::@11 test_16u::@return test_16u::@12 test_8u test_8u::@1 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@return test_8u::@12 print_cls print_cls::@1 print_cls::@return print_cls::@3
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @17
|
||||
Adding NOP phi() at start of @18
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -5379,9 +5413,9 @@ Culled Empty Block (label) div8u::@10
|
||||
Culled Empty Block (label) div8u::@9
|
||||
Culled Empty Block (label) test_16u::@12
|
||||
Culled Empty Block (label) print_cls::@3
|
||||
Block Sequence Planned @begin @17 @end main main::@1 main::@2 main::@3 main::@4 main::@return test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 test_16s::@9 test_16s::@10 test_16s::@11 test_16s::@return print_ln print_ln::@1 print_ln::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 div16s div16s::@7 div16s::@2 div16s::@9 div16s::@4 div16s::@15 div16s::@18 div16s::@return div16s::@5 div16s::@17 div16s::@16 div16u div16u::@1 div16u::@4 div16u::@2 div16u::@5 div16u::@3 div16u::@6 div16u::@return test_8s test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7 test_8s::@8 test_8s::@9 test_8s::@10 test_8s::@11 test_8s::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return div8s div8s::@7 div8s::@2 div8s::@9 div8s::@4 div8s::@15 div8s::@18 div8s::@return div8s::@5 div8s::@17 div8s::@16 div8u div8u::@1 div8u::@4 div8u::@2 div8u::@5 div8u::@3 div8u::@6 div8u::@return test_16u test_16u::@1 test_16u::@3 test_16u::@4 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@9 test_16u::@10 test_16u::@11 test_16u::@return test_8u test_8u::@1 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@return test_8u::@12 print_cls print_cls::@1 print_cls::@return
|
||||
Block Sequence Planned @begin @18 @end main main::@1 main::@2 main::@3 main::@4 main::@return test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 test_16s::@9 test_16s::@10 test_16s::@11 test_16s::@return print_ln print_ln::@1 print_ln::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_str print_str::@1 print_str::@return print_str::@2 div16s div16s::@7 div16s::@2 div16s::@9 div16s::@4 div16s::@15 div16s::@18 div16s::@return div16s::@5 div16s::@17 div16s::@16 div16u div16u::@1 div16u::@4 div16u::@2 div16u::@5 div16u::@3 div16u::@6 div16u::@return test_8s test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7 test_8s::@8 test_8s::@9 test_8s::@10 test_8s::@11 test_8s::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return div8s div8s::@7 div8s::@2 div8s::@9 div8s::@4 div8s::@15 div8s::@18 div8s::@return div8s::@5 div8s::@17 div8s::@16 div8u div8u::@1 div8u::@4 div8u::@2 div8u::@5 div8u::@3 div8u::@6 div8u::@return test_16u test_16u::@1 test_16u::@3 test_16u::@4 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@9 test_16u::@10 test_16u::@11 test_16u::@return test_8u test_8u::@1 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@return test_8u::@12 print_cls print_cls::@1 print_cls::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
Adding NOP phi() at start of @17
|
||||
Adding NOP phi() at start of @18
|
||||
Adding NOP phi() at start of @end
|
||||
Adding NOP phi() at start of main
|
||||
Adding NOP phi() at start of main::@1
|
||||
@ -5439,14 +5473,14 @@ Propagating live ranges...
|
||||
FINAL CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@17
|
||||
@17: scope:[] from @begin
|
||||
to:@18
|
||||
@18: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @17
|
||||
@end: scope:[] from @18
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @17
|
||||
main: scope:[main] from @18
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
@ -5983,129 +6017,129 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
|
||||
DOMINATORS
|
||||
@begin dominated by @begin
|
||||
@17 dominated by @17 @begin
|
||||
@end dominated by @17 @end @begin
|
||||
main dominated by @17 main @begin
|
||||
main::@1 dominated by main::@1 @17 main @begin
|
||||
main::@2 dominated by main::@1 main::@2 @17 main @begin
|
||||
main::@3 dominated by main::@1 main::@2 main::@3 @17 main @begin
|
||||
main::@4 dominated by main::@1 main::@2 main::@3 main::@4 @17 main @begin
|
||||
main::@return dominated by main::@1 main::@2 main::@3 main::@4 main::@return @17 main @begin
|
||||
test_16s dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s main @begin
|
||||
test_16s::@1 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 main @begin
|
||||
test_16s::@3 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 main @begin
|
||||
test_16s::@4 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 main @begin
|
||||
test_16s::@5 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 main @begin
|
||||
test_16s::@6 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 main @begin
|
||||
test_16s::@7 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 main @begin
|
||||
test_16s::@8 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main @begin
|
||||
test_16s::@9 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main test_16s::@9 @begin
|
||||
test_16s::@10 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main test_16s::@9 @begin test_16s::@10
|
||||
test_16s::@11 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main test_16s::@9 @begin test_16s::@11 test_16s::@10
|
||||
test_16s::@return dominated by main::@1 main::@2 main::@3 main::@4 test_16s::@return @17 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main test_16s::@9 @begin test_16s::@11 test_16s::@10
|
||||
print_ln dominated by main::@1 print_ln @17 main @begin
|
||||
print_ln::@1 dominated by main::@1 print_ln @17 print_ln::@1 main @begin
|
||||
print_ln::@return dominated by print_ln::@return main::@1 print_ln @17 print_ln::@1 main @begin
|
||||
print_sword dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s print_sword test_16s::@1 test_16s::@3 main @begin
|
||||
print_sword::@2 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s print_sword test_16s::@1 test_16s::@3 print_sword::@2 main @begin
|
||||
print_sword::@4 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s print_sword test_16s::@1 test_16s::@3 print_sword::@2 print_sword::@4 main @begin
|
||||
print_sword::@1 dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s print_sword test_16s::@1 test_16s::@3 print_sword::@1 main @begin
|
||||
print_sword::@return dominated by main::@1 main::@2 main::@3 main::@4 @17 test_16s print_sword test_16s::@1 test_16s::@3 print_sword::@1 main @begin print_sword::@return
|
||||
print_word dominated by print_word main::@1 main::@2 @17 main @begin
|
||||
print_word::@1 dominated by print_word main::@1 main::@2 print_word::@1 @17 main @begin
|
||||
print_word::@return dominated by print_word main::@1 main::@2 print_word::@return print_word::@1 @17 main @begin
|
||||
print_byte dominated by main::@1 print_byte @17 main @begin
|
||||
print_byte::@1 dominated by main::@1 print_byte::@1 print_byte @17 main @begin
|
||||
print_byte::@return dominated by main::@1 print_byte::@1 print_byte @17 main @begin print_byte::@return
|
||||
print_char dominated by main::@1 @17 main print_char @begin
|
||||
print_char::@return dominated by main::@1 @17 main print_char print_char::@return @begin
|
||||
print_str dominated by main::@1 @17 print_str main @begin
|
||||
print_str::@1 dominated by main::@1 print_str::@1 @17 print_str main @begin
|
||||
print_str::@return dominated by main::@1 print_str::@return print_str::@1 @17 print_str main @begin
|
||||
print_str::@2 dominated by main::@1 print_str::@1 print_str::@2 @17 print_str main @begin
|
||||
div16s dominated by main::@1 main::@2 main::@3 main::@4 div16s @17 test_16s test_16s::@1 main @begin
|
||||
div16s::@7 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@7 @17 test_16s test_16s::@1 main @begin
|
||||
div16s::@2 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@2 @17 test_16s test_16s::@1 main @begin
|
||||
div16s::@9 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@9 div16s::@2 @17 test_16s test_16s::@1 main @begin
|
||||
div16s::@4 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@4 div16s::@2 @17 test_16s test_16s::@1 main @begin
|
||||
div16s::@15 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@4 div16s::@2 @17 test_16s test_16s::@1 main @begin div16s::@15
|
||||
div16s::@18 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@4 div16s::@2 @17 test_16s test_16s::@1 main @begin div16s::@15 div16s::@18
|
||||
div16s::@return dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@4 div16s::@2 @17 test_16s test_16s::@1 main @begin div16s::@return div16s::@15
|
||||
div16s::@5 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@5 div16s::@4 div16s::@2 @17 test_16s test_16s::@1 main @begin div16s::@15
|
||||
div16s::@17 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@2 @17 test_16s test_16s::@1 main @begin div16s::@17
|
||||
div16s::@16 dominated by main::@1 main::@2 main::@3 main::@4 div16s @17 test_16s test_16s::@1 main @begin div16s::@16
|
||||
div16u dominated by main::@1 main::@2 div16u @17 main @begin
|
||||
div16u::@1 dominated by main::@1 main::@2 div16u div16u::@1 @17 main @begin
|
||||
div16u::@4 dominated by main::@1 main::@2 div16u div16u::@4 div16u::@1 @17 main @begin
|
||||
div16u::@2 dominated by main::@1 main::@2 div16u div16u::@2 div16u::@1 @17 main @begin
|
||||
div16u::@5 dominated by main::@1 main::@2 div16u div16u::@5 div16u::@2 div16u::@1 @17 main @begin
|
||||
div16u::@3 dominated by main::@1 main::@2 div16u div16u::@3 div16u::@2 div16u::@1 @17 main @begin
|
||||
div16u::@6 dominated by main::@1 main::@2 div16u div16u::@6 div16u::@3 div16u::@2 div16u::@1 @17 main @begin
|
||||
div16u::@return dominated by div16u::@return main::@1 main::@2 div16u div16u::@6 div16u::@3 div16u::@2 div16u::@1 @17 main @begin
|
||||
test_8s dominated by main::@1 main::@2 main::@3 test_8s @17 main @begin
|
||||
test_8s::@1 dominated by main::@1 main::@2 main::@3 test_8s @17 main @begin test_8s::@1
|
||||
test_8s::@3 dominated by main::@1 main::@2 main::@3 test_8s @17 main @begin test_8s::@1 test_8s::@3
|
||||
test_8s::@4 dominated by main::@1 main::@2 main::@3 test_8s @17 main @begin test_8s::@1 test_8s::@3 test_8s::@4
|
||||
test_8s::@5 dominated by main::@1 main::@2 main::@3 test_8s @17 main @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5
|
||||
test_8s::@6 dominated by main::@1 main::@2 main::@3 test_8s @17 main @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6
|
||||
test_8s::@7 dominated by main::@1 main::@2 main::@3 test_8s @17 main @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@8 dominated by main::@1 main::@2 main::@3 test_8s @17 main test_8s::@8 @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@9 dominated by main::@1 main::@2 main::@3 test_8s @17 main test_8s::@8 test_8s::@9 @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@10 dominated by main::@1 main::@2 main::@3 test_8s::@10 test_8s @17 main test_8s::@8 test_8s::@9 @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@11 dominated by main::@1 main::@2 main::@3 test_8s::@10 test_8s::@11 test_8s @17 main test_8s::@8 test_8s::@9 @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@return dominated by main::@1 main::@2 main::@3 test_8s::@10 test_8s::@11 test_8s @17 main test_8s::@8 test_8s::@9 @begin test_8s::@return test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
print_sbyte dominated by main::@1 main::@2 main::@3 test_8s @17 print_sbyte main @begin test_8s::@1 test_8s::@3
|
||||
print_sbyte::@2 dominated by main::@1 main::@2 main::@3 test_8s @17 print_sbyte main print_sbyte::@2 @begin test_8s::@1 test_8s::@3
|
||||
print_sbyte::@4 dominated by main::@1 main::@2 main::@3 test_8s @17 print_sbyte main print_sbyte::@4 print_sbyte::@2 @begin test_8s::@1 test_8s::@3
|
||||
print_sbyte::@1 dominated by main::@1 main::@2 main::@3 test_8s @17 print_sbyte main print_sbyte::@1 @begin test_8s::@1 test_8s::@3
|
||||
print_sbyte::@return dominated by main::@1 main::@2 main::@3 test_8s @17 print_sbyte main print_sbyte::@1 @begin print_sbyte::@return test_8s::@1 test_8s::@3
|
||||
div8s dominated by main::@1 main::@2 main::@3 div8s test_8s @17 main @begin test_8s::@1
|
||||
div8s::@7 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 main @begin test_8s::@1 div8s::@7
|
||||
div8s::@2 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 main div8s::@2 @begin test_8s::@1
|
||||
div8s::@9 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 main div8s::@2 @begin test_8s::@1 div8s::@9
|
||||
div8s::@4 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 main div8s::@2 @begin test_8s::@1 div8s::@4
|
||||
div8s::@15 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 div8s::@15 main div8s::@2 @begin test_8s::@1 div8s::@4
|
||||
div8s::@18 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 div8s::@18 div8s::@15 main div8s::@2 @begin test_8s::@1 div8s::@4
|
||||
div8s::@return dominated by main::@1 main::@2 main::@3 div8s test_8s @17 div8s::@15 main div8s::@2 div8s::@return @begin test_8s::@1 div8s::@4
|
||||
div8s::@5 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 div8s::@15 main div8s::@2 @begin test_8s::@1 div8s::@5 div8s::@4
|
||||
div8s::@17 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 div8s::@17 main div8s::@2 @begin test_8s::@1
|
||||
div8s::@16 dominated by main::@1 main::@2 main::@3 div8s test_8s @17 div8s::@16 main @begin test_8s::@1
|
||||
div8u dominated by main::@1 div8u @17 main @begin
|
||||
div8u::@1 dominated by main::@1 div8u @17 main @begin div8u::@1
|
||||
div8u::@4 dominated by main::@1 div8u @17 main div8u::@4 @begin div8u::@1
|
||||
div8u::@2 dominated by main::@1 div8u @17 main div8u::@2 @begin div8u::@1
|
||||
div8u::@5 dominated by main::@1 div8u @17 main div8u::@2 div8u::@5 @begin div8u::@1
|
||||
div8u::@3 dominated by main::@1 div8u @17 main div8u::@3 div8u::@2 @begin div8u::@1
|
||||
div8u::@6 dominated by main::@1 div8u @17 main div8u::@3 div8u::@2 div8u::@6 @begin div8u::@1
|
||||
div8u::@return dominated by main::@1 div8u div8u::@return @17 main div8u::@3 div8u::@2 div8u::@6 @begin div8u::@1
|
||||
test_16u dominated by main::@1 main::@2 @17 test_16u main @begin
|
||||
test_16u::@1 dominated by main::@1 main::@2 @17 test_16u test_16u::@1 main @begin
|
||||
test_16u::@3 dominated by main::@1 main::@2 @17 test_16u test_16u::@1 test_16u::@3 main @begin
|
||||
test_16u::@4 dominated by main::@1 main::@2 @17 test_16u test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@5 dominated by main::@1 main::@2 @17 test_16u test_16u::@5 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@6 dominated by main::@1 main::@2 @17 test_16u test_16u::@5 test_16u::@6 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@7 dominated by main::@1 main::@2 @17 test_16u test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@8 dominated by main::@1 main::@2 @17 test_16u test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@9 dominated by main::@1 main::@2 @17 test_16u test_16u::@9 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@10 dominated by main::@1 main::@2 test_16u::@10 @17 test_16u test_16u::@9 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@11 dominated by main::@1 main::@2 test_16u::@11 test_16u::@10 @17 test_16u test_16u::@9 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@return dominated by main::@1 main::@2 test_16u::@11 test_16u::@10 @17 test_16u test_16u::@9 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin test_16u::@return
|
||||
test_8u dominated by main::@1 test_8u @17 main @begin
|
||||
test_8u::@1 dominated by main::@1 test_8u @17 main @begin test_8u::@1
|
||||
test_8u::@3 dominated by main::@1 test_8u @17 main @begin test_8u::@3 test_8u::@1
|
||||
test_8u::@4 dominated by main::@1 test_8u @17 main @begin test_8u::@3 test_8u::@4 test_8u::@1
|
||||
test_8u::@5 dominated by main::@1 test_8u @17 main @begin test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@6 dominated by main::@1 test_8u @17 main @begin test_8u::@6 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@7 dominated by main::@1 test_8u @17 main @begin test_8u::@6 test_8u::@7 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@8 dominated by main::@1 test_8u @17 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@9 dominated by main::@1 test_8u @17 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@10 dominated by main::@1 test_8u @17 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@11 dominated by main::@1 test_8u @17 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@return dominated by main::@1 test_8u @17 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1 test_8u::@return
|
||||
test_8u::@12 dominated by main::@1 test_8u @17 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@12 test_8u::@11 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
print_cls dominated by @17 print_cls main @begin
|
||||
print_cls::@1 dominated by @17 print_cls main @begin print_cls::@1
|
||||
print_cls::@return dominated by @17 print_cls main @begin print_cls::@return print_cls::@1
|
||||
@18 dominated by @18 @begin
|
||||
@end dominated by @18 @end @begin
|
||||
main dominated by @18 main @begin
|
||||
main::@1 dominated by main::@1 @18 main @begin
|
||||
main::@2 dominated by main::@1 main::@2 @18 main @begin
|
||||
main::@3 dominated by main::@1 main::@2 main::@3 @18 main @begin
|
||||
main::@4 dominated by main::@1 main::@2 main::@3 main::@4 @18 main @begin
|
||||
main::@return dominated by main::@1 main::@2 main::@3 main::@4 main::@return @18 main @begin
|
||||
test_16s dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s main @begin
|
||||
test_16s::@1 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 main @begin
|
||||
test_16s::@3 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 main @begin
|
||||
test_16s::@4 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 main @begin
|
||||
test_16s::@5 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 main @begin
|
||||
test_16s::@6 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 main @begin
|
||||
test_16s::@7 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 main @begin
|
||||
test_16s::@8 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main @begin
|
||||
test_16s::@9 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main test_16s::@9 @begin
|
||||
test_16s::@10 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main test_16s::@9 @begin test_16s::@10
|
||||
test_16s::@11 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main test_16s::@9 @begin test_16s::@11 test_16s::@10
|
||||
test_16s::@return dominated by main::@1 main::@2 main::@3 main::@4 test_16s::@return @18 test_16s test_16s::@1 test_16s::@3 test_16s::@4 test_16s::@5 test_16s::@6 test_16s::@7 test_16s::@8 main test_16s::@9 @begin test_16s::@11 test_16s::@10
|
||||
print_ln dominated by main::@1 print_ln @18 main @begin
|
||||
print_ln::@1 dominated by main::@1 print_ln @18 print_ln::@1 main @begin
|
||||
print_ln::@return dominated by print_ln::@return main::@1 print_ln @18 print_ln::@1 main @begin
|
||||
print_sword dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s print_sword test_16s::@1 test_16s::@3 main @begin
|
||||
print_sword::@2 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s print_sword test_16s::@1 test_16s::@3 print_sword::@2 main @begin
|
||||
print_sword::@4 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s print_sword test_16s::@1 test_16s::@3 print_sword::@2 print_sword::@4 main @begin
|
||||
print_sword::@1 dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s print_sword test_16s::@1 test_16s::@3 print_sword::@1 main @begin
|
||||
print_sword::@return dominated by main::@1 main::@2 main::@3 main::@4 @18 test_16s print_sword test_16s::@1 test_16s::@3 print_sword::@1 main @begin print_sword::@return
|
||||
print_word dominated by print_word main::@1 main::@2 @18 main @begin
|
||||
print_word::@1 dominated by print_word main::@1 main::@2 print_word::@1 @18 main @begin
|
||||
print_word::@return dominated by print_word main::@1 main::@2 print_word::@return print_word::@1 @18 main @begin
|
||||
print_byte dominated by main::@1 print_byte @18 main @begin
|
||||
print_byte::@1 dominated by main::@1 print_byte::@1 print_byte @18 main @begin
|
||||
print_byte::@return dominated by main::@1 print_byte::@1 print_byte @18 main @begin print_byte::@return
|
||||
print_char dominated by main::@1 @18 main print_char @begin
|
||||
print_char::@return dominated by main::@1 @18 main print_char print_char::@return @begin
|
||||
print_str dominated by main::@1 @18 print_str main @begin
|
||||
print_str::@1 dominated by main::@1 print_str::@1 @18 print_str main @begin
|
||||
print_str::@return dominated by main::@1 print_str::@return print_str::@1 @18 print_str main @begin
|
||||
print_str::@2 dominated by main::@1 print_str::@1 print_str::@2 @18 print_str main @begin
|
||||
div16s dominated by main::@1 main::@2 main::@3 main::@4 div16s @18 test_16s test_16s::@1 main @begin
|
||||
div16s::@7 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@7 @18 test_16s test_16s::@1 main @begin
|
||||
div16s::@2 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@2 @18 test_16s test_16s::@1 main @begin
|
||||
div16s::@9 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@9 div16s::@2 @18 test_16s test_16s::@1 main @begin
|
||||
div16s::@4 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@4 div16s::@2 @18 test_16s test_16s::@1 main @begin
|
||||
div16s::@15 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@4 div16s::@2 @18 test_16s test_16s::@1 main @begin div16s::@15
|
||||
div16s::@18 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@4 div16s::@2 @18 test_16s test_16s::@1 main @begin div16s::@15 div16s::@18
|
||||
div16s::@return dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@4 div16s::@2 @18 test_16s test_16s::@1 main @begin div16s::@return div16s::@15
|
||||
div16s::@5 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@5 div16s::@4 div16s::@2 @18 test_16s test_16s::@1 main @begin div16s::@15
|
||||
div16s::@17 dominated by main::@1 main::@2 main::@3 main::@4 div16s div16s::@2 @18 test_16s test_16s::@1 main @begin div16s::@17
|
||||
div16s::@16 dominated by main::@1 main::@2 main::@3 main::@4 div16s @18 test_16s test_16s::@1 main @begin div16s::@16
|
||||
div16u dominated by main::@1 main::@2 div16u @18 main @begin
|
||||
div16u::@1 dominated by main::@1 main::@2 div16u div16u::@1 @18 main @begin
|
||||
div16u::@4 dominated by main::@1 main::@2 div16u div16u::@4 div16u::@1 @18 main @begin
|
||||
div16u::@2 dominated by main::@1 main::@2 div16u div16u::@2 div16u::@1 @18 main @begin
|
||||
div16u::@5 dominated by main::@1 main::@2 div16u div16u::@5 div16u::@2 div16u::@1 @18 main @begin
|
||||
div16u::@3 dominated by main::@1 main::@2 div16u div16u::@3 div16u::@2 div16u::@1 @18 main @begin
|
||||
div16u::@6 dominated by main::@1 main::@2 div16u div16u::@6 div16u::@3 div16u::@2 div16u::@1 @18 main @begin
|
||||
div16u::@return dominated by div16u::@return main::@1 main::@2 div16u div16u::@6 div16u::@3 div16u::@2 div16u::@1 @18 main @begin
|
||||
test_8s dominated by main::@1 main::@2 main::@3 test_8s @18 main @begin
|
||||
test_8s::@1 dominated by main::@1 main::@2 main::@3 test_8s @18 main @begin test_8s::@1
|
||||
test_8s::@3 dominated by main::@1 main::@2 main::@3 test_8s @18 main @begin test_8s::@1 test_8s::@3
|
||||
test_8s::@4 dominated by main::@1 main::@2 main::@3 test_8s @18 main @begin test_8s::@1 test_8s::@3 test_8s::@4
|
||||
test_8s::@5 dominated by main::@1 main::@2 main::@3 test_8s @18 main @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5
|
||||
test_8s::@6 dominated by main::@1 main::@2 main::@3 test_8s @18 main @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6
|
||||
test_8s::@7 dominated by main::@1 main::@2 main::@3 test_8s @18 main @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@8 dominated by main::@1 main::@2 main::@3 test_8s @18 main test_8s::@8 @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@9 dominated by main::@1 main::@2 main::@3 test_8s @18 main test_8s::@8 test_8s::@9 @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@10 dominated by main::@1 main::@2 main::@3 test_8s::@10 test_8s @18 main test_8s::@8 test_8s::@9 @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@11 dominated by main::@1 main::@2 main::@3 test_8s::@10 test_8s::@11 test_8s @18 main test_8s::@8 test_8s::@9 @begin test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
test_8s::@return dominated by main::@1 main::@2 main::@3 test_8s::@10 test_8s::@11 test_8s @18 main test_8s::@8 test_8s::@9 @begin test_8s::@return test_8s::@1 test_8s::@3 test_8s::@4 test_8s::@5 test_8s::@6 test_8s::@7
|
||||
print_sbyte dominated by main::@1 main::@2 main::@3 test_8s @18 print_sbyte main @begin test_8s::@1 test_8s::@3
|
||||
print_sbyte::@2 dominated by main::@1 main::@2 main::@3 test_8s @18 print_sbyte main print_sbyte::@2 @begin test_8s::@1 test_8s::@3
|
||||
print_sbyte::@4 dominated by main::@1 main::@2 main::@3 test_8s @18 print_sbyte main print_sbyte::@4 print_sbyte::@2 @begin test_8s::@1 test_8s::@3
|
||||
print_sbyte::@1 dominated by main::@1 main::@2 main::@3 test_8s @18 print_sbyte main print_sbyte::@1 @begin test_8s::@1 test_8s::@3
|
||||
print_sbyte::@return dominated by main::@1 main::@2 main::@3 test_8s @18 print_sbyte main print_sbyte::@1 @begin print_sbyte::@return test_8s::@1 test_8s::@3
|
||||
div8s dominated by main::@1 main::@2 main::@3 div8s test_8s @18 main @begin test_8s::@1
|
||||
div8s::@7 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 main @begin test_8s::@1 div8s::@7
|
||||
div8s::@2 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 main div8s::@2 @begin test_8s::@1
|
||||
div8s::@9 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 main div8s::@2 @begin test_8s::@1 div8s::@9
|
||||
div8s::@4 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 main div8s::@2 @begin test_8s::@1 div8s::@4
|
||||
div8s::@15 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 div8s::@15 main div8s::@2 @begin test_8s::@1 div8s::@4
|
||||
div8s::@18 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 div8s::@18 div8s::@15 main div8s::@2 @begin test_8s::@1 div8s::@4
|
||||
div8s::@return dominated by main::@1 main::@2 main::@3 div8s test_8s @18 div8s::@15 main div8s::@2 div8s::@return @begin test_8s::@1 div8s::@4
|
||||
div8s::@5 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 div8s::@15 main div8s::@2 @begin test_8s::@1 div8s::@5 div8s::@4
|
||||
div8s::@17 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 div8s::@17 main div8s::@2 @begin test_8s::@1
|
||||
div8s::@16 dominated by main::@1 main::@2 main::@3 div8s test_8s @18 div8s::@16 main @begin test_8s::@1
|
||||
div8u dominated by main::@1 div8u @18 main @begin
|
||||
div8u::@1 dominated by main::@1 div8u @18 main @begin div8u::@1
|
||||
div8u::@4 dominated by main::@1 div8u @18 main div8u::@4 @begin div8u::@1
|
||||
div8u::@2 dominated by main::@1 div8u @18 main div8u::@2 @begin div8u::@1
|
||||
div8u::@5 dominated by main::@1 div8u @18 main div8u::@2 div8u::@5 @begin div8u::@1
|
||||
div8u::@3 dominated by main::@1 div8u @18 main div8u::@3 div8u::@2 @begin div8u::@1
|
||||
div8u::@6 dominated by main::@1 div8u @18 main div8u::@3 div8u::@2 div8u::@6 @begin div8u::@1
|
||||
div8u::@return dominated by main::@1 div8u div8u::@return @18 main div8u::@3 div8u::@2 div8u::@6 @begin div8u::@1
|
||||
test_16u dominated by main::@1 main::@2 @18 test_16u main @begin
|
||||
test_16u::@1 dominated by main::@1 main::@2 @18 test_16u test_16u::@1 main @begin
|
||||
test_16u::@3 dominated by main::@1 main::@2 @18 test_16u test_16u::@1 test_16u::@3 main @begin
|
||||
test_16u::@4 dominated by main::@1 main::@2 @18 test_16u test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@5 dominated by main::@1 main::@2 @18 test_16u test_16u::@5 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@6 dominated by main::@1 main::@2 @18 test_16u test_16u::@5 test_16u::@6 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@7 dominated by main::@1 main::@2 @18 test_16u test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@8 dominated by main::@1 main::@2 @18 test_16u test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@9 dominated by main::@1 main::@2 @18 test_16u test_16u::@9 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@10 dominated by main::@1 main::@2 test_16u::@10 @18 test_16u test_16u::@9 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@11 dominated by main::@1 main::@2 test_16u::@11 test_16u::@10 @18 test_16u test_16u::@9 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin
|
||||
test_16u::@return dominated by main::@1 main::@2 test_16u::@11 test_16u::@10 @18 test_16u test_16u::@9 test_16u::@5 test_16u::@6 test_16u::@7 test_16u::@8 test_16u::@1 test_16u::@3 test_16u::@4 main @begin test_16u::@return
|
||||
test_8u dominated by main::@1 test_8u @18 main @begin
|
||||
test_8u::@1 dominated by main::@1 test_8u @18 main @begin test_8u::@1
|
||||
test_8u::@3 dominated by main::@1 test_8u @18 main @begin test_8u::@3 test_8u::@1
|
||||
test_8u::@4 dominated by main::@1 test_8u @18 main @begin test_8u::@3 test_8u::@4 test_8u::@1
|
||||
test_8u::@5 dominated by main::@1 test_8u @18 main @begin test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@6 dominated by main::@1 test_8u @18 main @begin test_8u::@6 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@7 dominated by main::@1 test_8u @18 main @begin test_8u::@6 test_8u::@7 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@8 dominated by main::@1 test_8u @18 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@9 dominated by main::@1 test_8u @18 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@10 dominated by main::@1 test_8u @18 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@11 dominated by main::@1 test_8u @18 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
test_8u::@return dominated by main::@1 test_8u @18 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@11 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1 test_8u::@return
|
||||
test_8u::@12 dominated by main::@1 test_8u @18 main @begin test_8u::@6 test_8u::@7 test_8u::@8 test_8u::@9 test_8u::@10 test_8u::@12 test_8u::@11 test_8u::@3 test_8u::@4 test_8u::@5 test_8u::@1
|
||||
print_cls dominated by @18 print_cls main @begin
|
||||
print_cls::@1 dominated by @18 print_cls main @begin print_cls::@1
|
||||
print_cls::@return dominated by @18 print_cls main @begin print_cls::@return print_cls::@1
|
||||
|
||||
NATURAL LOOPS
|
||||
Found back edge: Loop head: test_16s::@1 tails: test_16s::@11 blocks: null
|
||||
@ -6653,17 +6687,17 @@ INITIAL ASM
|
||||
.label rem16s = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @17 [phi:@begin->@17]
|
||||
b17_from_bbegin:
|
||||
jmp b17
|
||||
//SEG4 @17
|
||||
b17:
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
b18_from_bbegin:
|
||||
jmp b18
|
||||
//SEG4 @18
|
||||
b18:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @17 to main [phi:@17->main]
|
||||
main_from_b17:
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
main_from_b18:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @17 to @end [phi:@17->@end]
|
||||
bend_from_b17:
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
bend_from_b18:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -8701,17 +8735,17 @@ ASSEMBLER BEFORE OPTIMIZATION
|
||||
.label rem16s = 3
|
||||
//SEG2 @begin
|
||||
bbegin:
|
||||
//SEG3 [1] phi from @begin to @17 [phi:@begin->@17]
|
||||
b17_from_bbegin:
|
||||
jmp b17
|
||||
//SEG4 @17
|
||||
b17:
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
b18_from_bbegin:
|
||||
jmp b18
|
||||
//SEG4 @18
|
||||
b18:
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @17 to main [phi:@17->main]
|
||||
main_from_b17:
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
main_from_b18:
|
||||
jsr main
|
||||
//SEG7 [3] phi from @17 to @end [phi:@17->@end]
|
||||
bend_from_b17:
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
bend_from_b18:
|
||||
jmp bend
|
||||
//SEG8 @end
|
||||
bend:
|
||||
@ -10242,7 +10276,7 @@ print_cls: {
|
||||
}
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b17
|
||||
Removing instruction jmp b18
|
||||
Removing instruction jmp bend
|
||||
Removing instruction jmp b1
|
||||
Removing instruction jmp b2
|
||||
@ -10383,9 +10417,9 @@ Replacing label b1_from_b11 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Replacing label b1_from_b1 with b1
|
||||
Removing instruction bbegin:
|
||||
Removing instruction b17_from_bbegin:
|
||||
Removing instruction main_from_b17:
|
||||
Removing instruction bend_from_b17:
|
||||
Removing instruction b18_from_bbegin:
|
||||
Removing instruction main_from_b18:
|
||||
Removing instruction bend_from_b18:
|
||||
Removing instruction b1_from_main:
|
||||
Removing instruction test_8u_from_b1:
|
||||
Removing instruction b2_from_b1:
|
||||
@ -10461,7 +10495,7 @@ Removing instruction b10_from_b9:
|
||||
Removing instruction print_ln_from_b10:
|
||||
Removing instruction b1_from_b1:
|
||||
Succesful ASM optimization Pass5RedundantLabelElimination
|
||||
Removing instruction b17:
|
||||
Removing instruction b18:
|
||||
Removing instruction bend:
|
||||
Removing instruction print_cls_from_main:
|
||||
Removing instruction b1:
|
||||
@ -10597,7 +10631,7 @@ Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
Fixing long branch [82] bne b1 to beq
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @17
|
||||
(label) @18
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
@ -11034,12 +11068,12 @@ Score: 33529
|
||||
.label rem16u = 3
|
||||
.label rem16s = 3
|
||||
//SEG2 @begin
|
||||
//SEG3 [1] phi from @begin to @17 [phi:@begin->@17]
|
||||
//SEG4 @17
|
||||
//SEG3 [1] phi from @begin to @18 [phi:@begin->@18]
|
||||
//SEG4 @18
|
||||
//SEG5 [2] call main param-assignment [ ] ( )
|
||||
//SEG6 [4] phi from @17 to main [phi:@17->main]
|
||||
//SEG6 [4] phi from @18 to main [phi:@18->main]
|
||||
jsr main
|
||||
//SEG7 [3] phi from @17 to @end [phi:@17->@end]
|
||||
//SEG7 [3] phi from @18 to @end [phi:@18->@end]
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
|
@ -1,4 +1,4 @@
|
||||
(label) @17
|
||||
(label) @18
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
|
239
src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.asm
Normal file
239
src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.asm
Normal file
@ -0,0 +1,239 @@
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
.label SCREEN = $400
|
||||
.label line_cursor = 6
|
||||
.label char_cursor = 8
|
||||
jsr main
|
||||
main: {
|
||||
.label _2 = $a
|
||||
.label _5 = $a
|
||||
.label _15 = $a
|
||||
.label _19 = $a
|
||||
.label _23 = $a
|
||||
.label _27 = $a
|
||||
.label _32 = $a
|
||||
.label _33 = $a
|
||||
.label dw2 = $c
|
||||
.label dw = 2
|
||||
jsr print_cls
|
||||
lda #<SCREEN
|
||||
sta line_cursor
|
||||
lda #>SCREEN
|
||||
sta line_cursor+1
|
||||
lda #<SCREEN
|
||||
sta char_cursor
|
||||
lda #>SCREEN
|
||||
sta char_cursor+1
|
||||
lda #<$12345678
|
||||
sta dw
|
||||
lda #>$12345678
|
||||
sta dw+1
|
||||
lda #<$12345678>>$10
|
||||
sta dw+2
|
||||
lda #>$12345678>>$10
|
||||
sta dw+3
|
||||
b1:
|
||||
lda dw+2
|
||||
sta _2
|
||||
lda dw+3
|
||||
sta _2+1
|
||||
lda _32
|
||||
clc
|
||||
adc #<$1111
|
||||
sta _32
|
||||
lda _32+1
|
||||
adc #>$1111
|
||||
sta _32+1
|
||||
lda dw
|
||||
sta dw2
|
||||
lda dw+1
|
||||
sta dw2+1
|
||||
lda _32
|
||||
sta dw2+2
|
||||
lda _32+1
|
||||
sta dw2+3
|
||||
lda dw
|
||||
sta _5
|
||||
lda dw+1
|
||||
sta _5+1
|
||||
lda _33
|
||||
clc
|
||||
adc #<$1111
|
||||
sta _33
|
||||
lda _33+1
|
||||
adc #>$1111
|
||||
sta _33+1
|
||||
lda _33
|
||||
sta dw2
|
||||
lda _33+1
|
||||
sta dw2+1
|
||||
jsr print_dword
|
||||
lda #' '
|
||||
jsr print_char
|
||||
lda dw2+2
|
||||
sta print_word.w
|
||||
lda dw2+3
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #' '
|
||||
jsr print_char
|
||||
lda dw2
|
||||
sta print_word.w
|
||||
lda dw2+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #' '
|
||||
jsr print_char
|
||||
lda dw2+2
|
||||
sta _15
|
||||
lda dw2+3
|
||||
sta _15+1
|
||||
tax
|
||||
jsr print_byte
|
||||
lda #' '
|
||||
jsr print_char
|
||||
lda dw2+2
|
||||
sta _19
|
||||
lda dw2+3
|
||||
sta _19+1
|
||||
lda _19
|
||||
tax
|
||||
jsr print_byte
|
||||
lda #' '
|
||||
jsr print_char
|
||||
lda dw2
|
||||
sta _23
|
||||
lda dw2+1
|
||||
sta _23+1
|
||||
tax
|
||||
jsr print_byte
|
||||
lda #' '
|
||||
jsr print_char
|
||||
lda dw2
|
||||
sta _27
|
||||
lda dw2+1
|
||||
sta _27+1
|
||||
lda _27
|
||||
tax
|
||||
jsr print_byte
|
||||
jsr print_ln
|
||||
inc dw
|
||||
bne !+
|
||||
inc dw+1
|
||||
bne !+
|
||||
inc dw+2
|
||||
bne !+
|
||||
inc dw+3
|
||||
!:
|
||||
lda dw+3
|
||||
cmp #>$12345690>>$10
|
||||
bne b18
|
||||
lda dw+2
|
||||
cmp #<$12345690>>$10
|
||||
bne b18
|
||||
lda dw+1
|
||||
cmp #>$12345690
|
||||
bne b18
|
||||
lda dw
|
||||
cmp #<$12345690
|
||||
bne b18
|
||||
rts
|
||||
b18:
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
lda line_cursor+1
|
||||
sta char_cursor+1
|
||||
jmp b1
|
||||
}
|
||||
print_ln: {
|
||||
b1:
|
||||
lda line_cursor
|
||||
clc
|
||||
adc #$28
|
||||
sta line_cursor
|
||||
bcc !+
|
||||
inc line_cursor+1
|
||||
!:
|
||||
lda line_cursor+1
|
||||
cmp char_cursor+1
|
||||
bcc b1
|
||||
bne !+
|
||||
lda line_cursor
|
||||
cmp char_cursor
|
||||
bcc b1
|
||||
!:
|
||||
rts
|
||||
}
|
||||
print_byte: {
|
||||
txa
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
tay
|
||||
lda hextab,y
|
||||
jsr print_char
|
||||
txa
|
||||
and #$f
|
||||
tay
|
||||
lda hextab,y
|
||||
jsr print_char
|
||||
rts
|
||||
hextab: .text "0123456789abcdef"
|
||||
}
|
||||
print_char: {
|
||||
ldy #0
|
||||
sta (char_cursor),y
|
||||
inc char_cursor
|
||||
bne !+
|
||||
inc char_cursor+1
|
||||
!:
|
||||
rts
|
||||
}
|
||||
print_word: {
|
||||
.label w = $a
|
||||
lda w+1
|
||||
tax
|
||||
jsr print_byte
|
||||
lda w
|
||||
tax
|
||||
jsr print_byte
|
||||
rts
|
||||
}
|
||||
print_dword: {
|
||||
.label dw = $c
|
||||
lda dw+2
|
||||
sta print_word.w
|
||||
lda dw+3
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda dw
|
||||
sta print_word.w
|
||||
lda dw+1
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
rts
|
||||
}
|
||||
print_cls: {
|
||||
.label sc = 6
|
||||
lda #<SCREEN
|
||||
sta sc
|
||||
lda #>SCREEN
|
||||
sta sc+1
|
||||
b1:
|
||||
lda #' '
|
||||
ldy #0
|
||||
sta (sc),y
|
||||
inc sc
|
||||
bne !+
|
||||
inc sc+1
|
||||
!:
|
||||
lda sc+1
|
||||
cmp #>SCREEN+$3e8
|
||||
bne b1
|
||||
lda sc
|
||||
cmp #<SCREEN+$3e8
|
||||
bne b1
|
||||
rts
|
||||
}
|
163
src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.cfg
Normal file
163
src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.cfg
Normal file
@ -0,0 +1,163 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@10
|
||||
@10: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @10
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @10
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@18
|
||||
[6] (byte*) line_cursor#19 ← phi( main::@18/(byte*) line_cursor#1 main/(const byte*) SCREEN#0 ) [ main::dw#10 char_cursor#69 line_cursor#19 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 ] )
|
||||
[6] (byte*) char_cursor#69 ← phi( main::@18/(byte*~) char_cursor#71 main/(const byte*) SCREEN#0 ) [ main::dw#10 char_cursor#69 line_cursor#19 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 ] )
|
||||
[6] (dword) main::dw#10 ← phi( main::@18/(dword) main::dw#1 main/(dword/signed dword) 305419896 ) [ main::dw#10 char_cursor#69 line_cursor#19 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 ] )
|
||||
[7] (word~) main::$2 ← > (dword) main::dw#10 [ main::dw#10 char_cursor#69 line_cursor#19 main::$2 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 main::$2 ] )
|
||||
[8] (word~) main::$32 ← (word~) main::$2 + (word/signed word/dword/signed dword) 4369 [ main::dw#10 char_cursor#69 line_cursor#19 main::$32 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 main::$32 ] )
|
||||
[9] (dword) main::dw2#1 ← (dword) main::dw#10 hi= (word~) main::$32 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#1 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#1 ] )
|
||||
[10] (word~) main::$5 ← < (dword) main::dw#10 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#1 main::$5 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#1 main::$5 ] )
|
||||
[11] (word~) main::$33 ← (word~) main::$5 + (word/signed word/dword/signed dword) 4369 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#1 main::$33 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#1 main::$33 ] )
|
||||
[12] (dword) main::dw2#10 ← (dword) main::dw2#1 lo= (word~) main::$33 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#10 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#10 ] )
|
||||
[13] (dword) print_dword::dw#0 ← (dword) main::dw2#10 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#10 print_dword::dw#0 ] ( main:2 [ main::dw#10 char_cursor#69 line_cursor#19 main::dw2#10 print_dword::dw#0 ] )
|
||||
[14] call print_dword param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@1
|
||||
[15] phi() [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
[16] call print_char param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@4
|
||||
[17] (word) print_word::w#2 ← > (dword) main::dw2#10 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#2 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#2 char_cursor#12 ] )
|
||||
[18] call print_word param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@5
|
||||
[19] phi() [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
[20] call print_char param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@6
|
||||
[21] (word) print_word::w#3 ← < (dword) main::dw2#10 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#3 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#3 char_cursor#12 ] )
|
||||
[22] call print_word param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@7
|
||||
[23] phi() [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
[24] call print_char param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@8
|
||||
[25] (word~) main::$15 ← > (dword) main::dw2#10 [ main::dw#10 line_cursor#19 main::dw2#10 main::$15 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 main::$15 char_cursor#12 ] )
|
||||
[26] (byte) print_byte::b#2 ← > (word~) main::$15 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#2 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#2 char_cursor#12 ] )
|
||||
[27] call print_byte param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@9
|
||||
[28] phi() [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
[29] call print_char param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@10
|
||||
[30] (word~) main::$19 ← > (dword) main::dw2#10 [ main::dw#10 line_cursor#19 main::dw2#10 main::$19 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 main::$19 char_cursor#12 ] )
|
||||
[31] (byte) print_byte::b#3 ← < (word~) main::$19 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#3 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#3 char_cursor#12 ] )
|
||||
[32] call print_byte param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@11
|
||||
[33] phi() [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
[34] call print_char param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@12
|
||||
[35] (word~) main::$23 ← < (dword) main::dw2#10 [ main::dw#10 line_cursor#19 main::dw2#10 main::$23 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 main::$23 char_cursor#12 ] )
|
||||
[36] (byte) print_byte::b#4 ← > (word~) main::$23 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#4 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#4 char_cursor#12 ] )
|
||||
[37] call print_byte param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@14
|
||||
main::@14: scope:[main] from main::@13
|
||||
[38] phi() [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
[39] call print_char param-assignment [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:main::@15
|
||||
main::@15: scope:[main] from main::@14
|
||||
[40] (word~) main::$27 ← < (dword) main::dw2#10 [ main::dw#10 line_cursor#19 main::$27 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 main::$27 char_cursor#12 ] )
|
||||
[41] (byte) print_byte::b#5 ← < (word~) main::$27 [ main::dw#10 line_cursor#19 print_byte::b#5 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 print_byte::b#5 char_cursor#12 ] )
|
||||
[42] call print_byte param-assignment [ main::dw#10 line_cursor#19 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 char_cursor#12 ] )
|
||||
to:main::@16
|
||||
main::@16: scope:[main] from main::@15
|
||||
[43] phi() [ main::dw#10 line_cursor#19 char_cursor#12 ] ( main:2 [ main::dw#10 line_cursor#19 char_cursor#12 ] )
|
||||
[44] call print_ln param-assignment [ main::dw#10 line_cursor#1 ] ( main:2 [ main::dw#10 line_cursor#1 ] )
|
||||
to:main::@17
|
||||
main::@17: scope:[main] from main::@16
|
||||
[45] (dword) main::dw#1 ← ++ (dword) main::dw#10 [ main::dw#1 line_cursor#1 ] ( main:2 [ main::dw#1 line_cursor#1 ] )
|
||||
[46] if((dword) main::dw#1!=(dword/signed dword) 305419920) goto main::@18 [ main::dw#1 line_cursor#1 ] ( main:2 [ main::dw#1 line_cursor#1 ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@17
|
||||
[47] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
main::@18: scope:[main] from main::@17
|
||||
[48] (byte*~) char_cursor#71 ← (byte*) line_cursor#1 [ main::dw#1 char_cursor#71 line_cursor#1 ] ( main:2 [ main::dw#1 char_cursor#71 line_cursor#1 ] )
|
||||
to:main::@1
|
||||
print_ln: scope:[print_ln] from main::@16
|
||||
[49] phi() [ line_cursor#19 char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 line_cursor#19 char_cursor#12 ] )
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
[50] (byte*) line_cursor#9 ← phi( print_ln/(byte*) line_cursor#19 print_ln::@1/(byte*) line_cursor#1 ) [ line_cursor#9 char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 line_cursor#9 char_cursor#12 ] )
|
||||
[51] (byte*) line_cursor#1 ← (byte*) line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 line_cursor#1 char_cursor#12 ] )
|
||||
[52] if((byte*) line_cursor#1<(byte*) char_cursor#12) goto print_ln::@1 [ line_cursor#1 char_cursor#12 ] ( main:2::print_ln:44 [ main::dw#10 line_cursor#1 char_cursor#12 ] )
|
||||
to:print_ln::@return
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
[53] return [ line_cursor#1 ] ( main:2::print_ln:44 [ main::dw#10 line_cursor#1 ] )
|
||||
to:@return
|
||||
print_byte: scope:[print_byte] from main::@11 main::@13 main::@15 main::@9 print_word print_word::@1
|
||||
[54] (byte*) char_cursor#67 ← phi( main::@11/(byte*) char_cursor#12 main::@13/(byte*) char_cursor#12 main::@15/(byte*) char_cursor#12 main::@9/(byte*) char_cursor#12 print_word/(byte*) char_cursor#65 print_word::@1/(byte*) char_cursor#12 ) [ print_byte::b#6 char_cursor#67 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 print_byte::b#6 char_cursor#67 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] )
|
||||
[54] (byte) print_byte::b#6 ← phi( main::@11/(byte) print_byte::b#3 main::@13/(byte) print_byte::b#4 main::@15/(byte) print_byte::b#5 main::@9/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#6 char_cursor#67 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 print_byte::b#6 char_cursor#67 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 char_cursor#67 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 ] )
|
||||
[55] (byte~) print_byte::$0 ← (byte) print_byte::b#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#6 char_cursor#67 print_byte::$0 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 char_cursor#67 print_byte::$0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_byte::$0 ] )
|
||||
[56] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#6 char_cursor#67 print_char::ch#0 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 char_cursor#67 print_char::ch#0 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#67 print_char::ch#0 ] )
|
||||
[57] call print_char param-assignment [ char_cursor#12 print_byte::b#6 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#6 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#6 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#6 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_byte::b#6 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#6 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 print_byte::b#6 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#6 ] )
|
||||
to:print_byte::@1
|
||||
print_byte::@1: scope:[print_byte] from print_byte
|
||||
[58] (byte~) print_byte::$2 ← (byte) print_byte::b#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ char_cursor#12 print_byte::$2 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::$2 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::$2 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::$2 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_byte::$2 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::$2 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 print_byte::$2 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::$2 ] )
|
||||
[59] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ char_cursor#12 print_char::ch#1 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_char::ch#1 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_char::ch#1 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_char::ch#1 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 print_char::ch#1 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_char::ch#1 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 print_char::ch#1 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_char::ch#1 ] )
|
||||
[60] call print_char param-assignment [ char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:print_byte::@return
|
||||
print_byte::@return: scope:[print_byte] from print_byte::@1
|
||||
[61] return [ char_cursor#12 ] ( main:2::print_byte:27 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:32 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:37 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:42 [ main::dw#10 line_cursor#19 char_cursor#12 ] main:2::print_word:18::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_word:22::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_word:18::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_word:22::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:@return
|
||||
print_char: scope:[print_char] from main::@10 main::@12 main::@14 main::@4 main::@6 main::@8 print_byte print_byte::@1
|
||||
[62] (byte*) char_cursor#44 ← phi( main::@10/(byte*) char_cursor#12 main::@12/(byte*) char_cursor#12 main::@14/(byte*) char_cursor#12 main::@4/(byte*) char_cursor#12 main::@6/(byte*) char_cursor#12 main::@8/(byte*) char_cursor#12 print_byte/(byte*) char_cursor#67 print_byte::@1/(byte*) char_cursor#12 ) [ print_char::ch#8 char_cursor#44 ] ( main:2::print_char:16 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:20 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:24 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:29 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:34 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:39 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_byte:27::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_byte:32::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_byte:37::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_byte:42::print_char:57 [ main::dw#10 line_cursor#19 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_byte:27::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_byte:32::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_byte:37::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_byte:42::print_char:60 [ main::dw#10 line_cursor#19 print_char::ch#8 char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_char::ch#8 char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_char::ch#8 char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] )
|
||||
[62] (byte) print_char::ch#8 ← phi( main::@10/(byte) ' ' main::@12/(byte) ' ' main::@14/(byte) ' ' main::@4/(byte) ' ' main::@6/(byte) ' ' main::@8/(byte) ' ' print_byte/(byte) print_char::ch#0 print_byte::@1/(byte) print_char::ch#1 ) [ print_char::ch#8 char_cursor#44 ] ( main:2::print_char:16 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:20 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:24 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:29 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:34 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_char:39 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_byte:27::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_byte:32::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_byte:37::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_byte:42::print_char:57 [ main::dw#10 line_cursor#19 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 print_char::ch#8 char_cursor#44 ] main:2::print_byte:27::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_byte:32::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_byte:37::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_byte:42::print_char:60 [ main::dw#10 line_cursor#19 print_char::ch#8 char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_char::ch#8 char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_char::ch#8 char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_char::ch#8 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_char::ch#8 char_cursor#44 ] )
|
||||
[63] *((byte*) char_cursor#44) ← (byte) print_char::ch#8 [ char_cursor#44 ] ( main:2::print_char:16 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_char:20 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_char:24 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_char:29 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_char:34 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_char:39 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_byte:27::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#44 ] main:2::print_byte:32::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#44 ] main:2::print_byte:37::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#44 ] main:2::print_byte:42::print_char:57 [ main::dw#10 line_cursor#19 print_byte::b#6 char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#44 ] main:2::print_byte:27::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_byte:32::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_byte:37::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_byte:42::print_char:60 [ main::dw#10 line_cursor#19 char_cursor#44 ] main:2::print_word:18::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#44 ] main:2::print_word:22::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#44 ] main:2::print_word:18::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_word:22::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#44 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#44 ] )
|
||||
[64] (byte*) char_cursor#12 ← ++ (byte*) char_cursor#44 [ char_cursor#12 ] ( main:2::print_char:16 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:20 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:24 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:29 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:34 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:39 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:27::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_byte:32::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_byte:37::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_byte:42::print_char:57 [ main::dw#10 line_cursor#19 print_byte::b#6 char_cursor#12 ] main:2::print_word:18::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#12 ] main:2::print_word:22::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#12 ] main:2::print_word:18::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_word:22::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_byte:27::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:32::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:37::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:42::print_char:60 [ main::dw#10 line_cursor#19 char_cursor#12 ] main:2::print_word:18::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_word:22::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_word:18::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_word:22::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[65] return [ char_cursor#12 ] ( main:2::print_char:16 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:20 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:24 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:29 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:34 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_char:39 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:27::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_byte:32::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_byte:37::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_byte:42::print_char:57 [ main::dw#10 line_cursor#19 print_byte::b#6 char_cursor#12 ] main:2::print_word:18::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#12 ] main:2::print_word:22::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 print_byte::b#6 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 print_byte::b#6 char_cursor#12 ] main:2::print_word:18::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_word:22::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#6 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:57 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#6 char_cursor#12 ] main:2::print_byte:27::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:32::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:37::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_byte:42::print_char:60 [ main::dw#10 line_cursor#19 char_cursor#12 ] main:2::print_word:18::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_word:22::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_word::w#4 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:68::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_word::w#4 char_cursor#12 ] main:2::print_word:18::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_word:22::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_dword:14::print_word:73::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 ] main:2::print_dword:14::print_word:75::print_byte:70::print_char:60 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:@return
|
||||
print_word: scope:[print_word] from main::@5 main::@7 print_dword print_dword::@1
|
||||
[66] (byte*) char_cursor#65 ← phi( main::@5/(byte*) char_cursor#12 main::@7/(byte*) char_cursor#12 print_dword/(byte*) char_cursor#69 print_dword::@1/(byte*) char_cursor#12 ) [ char_cursor#65 print_word::w#4 ] ( main:2::print_word:18 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#65 print_word::w#4 ] main:2::print_word:22 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:73 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:75 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#65 print_word::w#4 ] )
|
||||
[66] (word) print_word::w#4 ← phi( main::@5/(word) print_word::w#2 main::@7/(word) print_word::w#3 print_dword/(word) print_word::w#0 print_dword::@1/(word) print_word::w#1 ) [ char_cursor#65 print_word::w#4 ] ( main:2::print_word:18 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#65 print_word::w#4 ] main:2::print_word:22 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:73 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:75 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#65 print_word::w#4 ] )
|
||||
[67] (byte) print_byte::b#0 ← > (word) print_word::w#4 [ print_byte::b#0 char_cursor#65 print_word::w#4 ] ( main:2::print_word:18 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#0 char_cursor#65 print_word::w#4 ] main:2::print_word:22 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#0 char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:73 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 print_byte::b#0 char_cursor#65 print_word::w#4 ] main:2::print_dword:14::print_word:75 [ main::dw#10 line_cursor#19 main::dw2#10 print_byte::b#0 char_cursor#65 print_word::w#4 ] )
|
||||
[68] call print_byte param-assignment [ char_cursor#12 print_word::w#4 ] ( main:2::print_word:18 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_word::w#4 ] main:2::print_word:22 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_word::w#4 ] main:2::print_dword:14::print_word:73 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 print_word::w#4 ] main:2::print_dword:14::print_word:75 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_word::w#4 ] )
|
||||
to:print_word::@1
|
||||
print_word::@1: scope:[print_word] from print_word
|
||||
[69] (byte) print_byte::b#1 ← < (word) print_word::w#4 [ char_cursor#12 print_byte::b#1 ] ( main:2::print_word:18 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#1 ] main:2::print_word:22 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#1 ] main:2::print_dword:14::print_word:73 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 print_byte::b#1 ] main:2::print_dword:14::print_word:75 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_byte::b#1 ] )
|
||||
[70] call print_byte param-assignment [ char_cursor#12 ] ( main:2::print_word:18 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_word:22 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_dword:14::print_word:73 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 ] main:2::print_dword:14::print_word:75 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:print_word::@return
|
||||
print_word::@return: scope:[print_word] from print_word::@1
|
||||
[71] return [ char_cursor#12 ] ( main:2::print_word:18 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_word:22 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] main:2::print_dword:14::print_word:73 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 ] main:2::print_dword:14::print_word:75 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:@return
|
||||
print_dword: scope:[print_dword] from main::@1
|
||||
[72] (word) print_word::w#0 ← > (dword) print_dword::dw#0 [ char_cursor#69 print_dword::dw#0 print_word::w#0 ] ( main:2::print_dword:14 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#69 print_dword::dw#0 print_word::w#0 ] )
|
||||
[73] call print_word param-assignment [ print_dword::dw#0 char_cursor#12 ] ( main:2::print_dword:14 [ main::dw#10 line_cursor#19 main::dw2#10 print_dword::dw#0 char_cursor#12 ] )
|
||||
to:print_dword::@1
|
||||
print_dword::@1: scope:[print_dword] from print_dword
|
||||
[74] (word) print_word::w#1 ← < (dword) print_dword::dw#0 [ char_cursor#12 print_word::w#1 ] ( main:2::print_dword:14 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 print_word::w#1 ] )
|
||||
[75] call print_word param-assignment [ char_cursor#12 ] ( main:2::print_dword:14 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:print_dword::@return
|
||||
print_dword::@return: scope:[print_dword] from print_dword::@1
|
||||
[76] return [ char_cursor#12 ] ( main:2::print_dword:14 [ main::dw#10 line_cursor#19 main::dw2#10 char_cursor#12 ] )
|
||||
to:@return
|
||||
print_cls: scope:[print_cls] from main
|
||||
[77] phi() [ ] ( main:2::print_cls:5 [ ] )
|
||||
to:print_cls::@1
|
||||
print_cls::@1: scope:[print_cls] from print_cls print_cls::@1
|
||||
[78] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] )
|
||||
[79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] )
|
||||
[80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] )
|
||||
[81] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] )
|
||||
to:print_cls::@return
|
||||
print_cls::@return: scope:[print_cls] from print_cls::@1
|
||||
[82] return [ ] ( main:2::print_cls:5 [ ] )
|
||||
to:@return
|
3810
src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log
Normal file
3810
src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log
Normal file
File diff suppressed because it is too large
Load Diff
102
src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.sym
Normal file
102
src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.sym
Normal file
@ -0,0 +1,102 @@
|
||||
(label) @10
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
(byte*) char_cursor
|
||||
(byte*) char_cursor#12 char_cursor zp ZP_WORD:8 4.918367346938773
|
||||
(byte*) char_cursor#44 char_cursor zp ZP_WORD:8 37.0
|
||||
(byte*) char_cursor#65 char_cursor zp ZP_WORD:8 14.0
|
||||
(byte*) char_cursor#67 char_cursor zp ZP_WORD:8 16.666666666666664
|
||||
(byte*) char_cursor#69 char_cursor zp ZP_WORD:8 1.4444444444444446
|
||||
(byte*~) char_cursor#71 char_cursor zp ZP_WORD:8 22.0
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:6 46.42857142857143
|
||||
(byte*) line_cursor#19 line_cursor zp ZP_WORD:6 0.3333333333333333
|
||||
(byte*) line_cursor#9 line_cursor zp ZP_WORD:6 204.0
|
||||
(void()) main()
|
||||
(word~) main::$15 $15 zp ZP_WORD:10 22.0
|
||||
(word~) main::$19 $19 zp ZP_WORD:10 22.0
|
||||
(word~) main::$2 $2 zp ZP_WORD:10 22.0
|
||||
(word~) main::$23 $23 zp ZP_WORD:10 22.0
|
||||
(word~) main::$27 $27 zp ZP_WORD:10 22.0
|
||||
(word~) main::$32 $32 zp ZP_WORD:10 22.0
|
||||
(word~) main::$33 $33 zp ZP_WORD:10 22.0
|
||||
(word~) main::$5 $5 zp ZP_WORD:10 22.0
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@11
|
||||
(label) main::@12
|
||||
(label) main::@13
|
||||
(label) main::@14
|
||||
(label) main::@15
|
||||
(label) main::@16
|
||||
(label) main::@17
|
||||
(label) main::@18
|
||||
(label) main::@4
|
||||
(label) main::@5
|
||||
(label) main::@6
|
||||
(label) main::@7
|
||||
(label) main::@8
|
||||
(label) main::@9
|
||||
(label) main::@return
|
||||
(dword) main::dw
|
||||
(dword) main::dw#1 dw zp ZP_DWORD:2 11.0
|
||||
(dword) main::dw#10 dw zp ZP_DWORD:2 1.4102564102564101
|
||||
(dword) main::dw2
|
||||
(dword) main::dw2#1 dw2 zp ZP_DWORD:12 7.333333333333333
|
||||
(dword) main::dw2#10 dw2 zp ZP_DWORD:12 3.142857142857143
|
||||
(void()) print_byte((byte) print_byte::b)
|
||||
(byte~) print_byte::$0 reg byte a 4.0
|
||||
(byte~) print_byte::$2 reg byte a 4.0
|
||||
(label) print_byte::@1
|
||||
(label) print_byte::@return
|
||||
(byte) print_byte::b
|
||||
(byte) print_byte::b#0 reg byte x 4.0
|
||||
(byte) print_byte::b#1 reg byte x 4.0
|
||||
(byte) print_byte::b#2 reg byte x 22.0
|
||||
(byte) print_byte::b#3 reg byte x 22.0
|
||||
(byte) print_byte::b#4 reg byte x 22.0
|
||||
(byte) print_byte::b#5 reg byte x 22.0
|
||||
(byte) print_byte::b#6 reg byte x 13.0
|
||||
(byte[]) print_byte::hextab
|
||||
(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef"
|
||||
(void()) print_char((byte) print_char::ch)
|
||||
(label) print_char::@return
|
||||
(byte) print_char::ch
|
||||
(byte) print_char::ch#0 reg byte a 4.0
|
||||
(byte) print_char::ch#1 reg byte a 4.0
|
||||
(byte) print_char::ch#8 reg byte a 6.0
|
||||
(void()) print_cls()
|
||||
(label) print_cls::@1
|
||||
(label) print_cls::@return
|
||||
(byte*) print_cls::sc
|
||||
(byte*) print_cls::sc#1 sc zp ZP_WORD:6 16.5
|
||||
(byte*) print_cls::sc#2 sc zp ZP_WORD:6 16.5
|
||||
(void()) print_dword((dword) print_dword::dw)
|
||||
(label) print_dword::@1
|
||||
(label) print_dword::@return
|
||||
(dword) print_dword::dw
|
||||
(dword) print_dword::dw#0 dw zp ZP_DWORD:12 5.0
|
||||
(void()) print_ln()
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
(void()) print_word((word) print_word::w)
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
(word) print_word::w
|
||||
(word) print_word::w#0 w zp ZP_WORD:10 4.0
|
||||
(word) print_word::w#1 w zp ZP_WORD:10 4.0
|
||||
(word) print_word::w#2 w zp ZP_WORD:10 22.0
|
||||
(word) print_word::w#3 w zp ZP_WORD:10 22.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:10 9.999999999999998
|
||||
|
||||
zp ZP_DWORD:2 [ main::dw#10 main::dw#1 ]
|
||||
zp ZP_WORD:6 [ line_cursor#9 line_cursor#19 line_cursor#1 print_cls::sc#2 print_cls::sc#1 ]
|
||||
reg byte x [ print_byte::b#6 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||
reg byte a [ print_char::ch#8 print_char::ch#0 print_char::ch#1 ]
|
||||
zp ZP_WORD:8 [ char_cursor#44 char_cursor#67 char_cursor#12 char_cursor#65 char_cursor#69 char_cursor#71 ]
|
||||
zp ZP_WORD:10 [ print_word::w#4 print_word::w#2 print_word::w#3 print_word::w#0 print_word::w#1 main::$2 main::$32 main::$5 main::$33 main::$15 main::$19 main::$23 main::$27 ]
|
||||
zp ZP_DWORD:12 [ main::dw2#1 main::dw2#10 print_dword::dw#0 ]
|
||||
reg byte a [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$2 ]
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@22
|
||||
@22: scope:[] from @begin
|
||||
to:@28
|
||||
@28: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @22
|
||||
@end: scope:[] from @28
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @22
|
||||
main: scope:[main] from @28
|
||||
[4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
|
||||
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
(label) @22
|
||||
(label) @28
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
|
Loading…
x
Reference in New Issue
Block a user