1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-04-06 15:41:05 +00:00

Added final score to the log

This commit is contained in:
jespergravgaard 2017-12-30 13:45:59 +01:00
parent c7b137d631
commit 2367aa93cd
74 changed files with 143 additions and 24 deletions

@ -355,6 +355,7 @@ public class Compiler {
getLog().append(program.getScope().getSymbolTableContents(program));
getLog().append("\nFINAL ASSEMBLER");
getLog().append("Score: "+Pass4RegisterUpliftCombinations.getAsmScore(program)+"\n");
getLog().append(program.getAsm().toString());
}

@ -273,8 +273,6 @@ public class AsmFragmentManager {
synths.add(new FragmentSynthesis("p..([cz].)=(.*)_(sethi|setlo|plus|minus)_(.*)", null, null, "vwu$1=$2_$3_$4", null, null));
synths.add(new FragmentSynthesis("(.*)=p..([cz].)_(sethi|setlo|plus|minus)_(.*)", null, null, "$1=vwu$2_$3_$4", null, null));
for (FragmentSynthesis synth : synths) {
CharStream synthesized = synth.synthesize(signature, log);
if (synthesized != null) {
@ -284,30 +282,9 @@ public class AsmFragmentManager {
return synthesized;
}
}
return null;
}
/**
* Bindings/mappings used when synthesizing one fragment from another fragment.
* Eg. when synthesizing vbuz1=vbuz2_plus_vbuz3 from vbuaa=vbuz1_plus_vbuz2 the bindings (vbuz2->vbuz1, vbuz3->vbuz2) are used.
* <p>
* Often the same bindings are used in the signature-name and in the asm-code, but the bindings can be different.
* Eg. when synthesizing zpptrby1=zpptrby2_plus_zpwo1 from zpwo1=zpwo2_plus_zpwo3 the bindings (zpptrby1->zpwo1, zpptrby2->zpwo2, zpwo1->zpwo3)
* are used in the asm, but not in the signature.
*/
private static class FragmentBindings {
/** Bindings used for renaming in the sub-signature. */
private Map<String, String> sigBindings;
/** Bindings used for renaming in the assembler-code. */
private Map<String, String> asmBindings;
}
/**
* AsmFragment synthesis based on matching fragment signature and reusing another fragment with added prefix/postfix and some bind-mappings

@ -174,7 +174,6 @@ public class Pass4RegisterUpliftCombinations extends Pass2Base {
public static int getAsmScore(Program program) {
int score = 0;
AsmProgram asm = program.getAsm();
ControlFlowGraph graph = program.getGraph();
NaturalLoopSet loopSet = program.getLoopSet();
for (AsmSegment asmSegment : asm.getSegments()) {
double asmSegmentCycles = asmSegment.getCycles();

@ -343,6 +343,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 38
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -788,6 +788,8 @@ zp ZP_BYTE:2 [ main::l#2 main::l#1 ]
FINAL ASSEMBLER
Score: 4682
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -7135,6 +7135,8 @@ reg byte a [ init_plot_tables::$10 ]
FINAL ASSEMBLER
Score: 10556
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -2874,6 +2874,8 @@ reg byte a [ init_plot_tables::$10 ]
FINAL ASSEMBLER
Score: 7301
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -921,6 +921,8 @@ zp ZP_BYTE:5 [ main::y#2 main::y#4 main::y#1 ]
FINAL ASSEMBLER
Score: 1022
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -910,6 +910,8 @@ zp ZP_BYTE:4 [ main::y#2 main::y#4 main::y#1 ]
FINAL ASSEMBLER
Score: 1122
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -650,6 +650,8 @@ zp ZP_WORD:3 [ screen#10 screen#14 screen#11 ]
FINAL ASSEMBLER
Score: 365
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -970,6 +970,8 @@ reg byte x [ w::b2#0 ]
FINAL ASSEMBLER
Score: 714
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -1020,6 +1020,8 @@ reg byte a [ main::$1 ]
FINAL ASSEMBLER
Score: 5753
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -973,6 +973,8 @@ reg byte a [ plot::$0 ]
FINAL ASSEMBLER
Score: 2473
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -229,6 +229,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 18
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -476,6 +476,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 192
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -467,6 +467,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 179
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -3785,6 +3785,8 @@ reg byte x [ assert_byte::b#3 ]
FINAL ASSEMBLER
Score: 1972
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -248,6 +248,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 18
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -412,6 +412,8 @@ reg byte a [ main::$2 ]
FINAL ASSEMBLER
Score: 269
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -588,6 +588,8 @@ reg byte a [ fillscreen::c#0 ]
FINAL ASSEMBLER
Score: 313
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -1980,6 +1980,8 @@ reg byte x [ prepare::i#2 prepare::i#1 ]
FINAL ASSEMBLER
Score: 84527
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -374,6 +374,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 167
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -379,6 +379,8 @@ reg byte a [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 187
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -528,6 +528,8 @@ reg byte x [ main::j#2 main::j#1 ]
FINAL ASSEMBLER
Score: 322
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -2292,6 +2292,8 @@ reg byte a [ main::bits_gen#7 ]
FINAL ASSEMBLER
Score: 3214
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -439,6 +439,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 182
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -423,6 +423,8 @@ zp ZP_WORD:2 [ main::w#2 main::w#1 ]
FINAL ASSEMBLER
Score: 387
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -272,6 +272,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 24
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -302,6 +302,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 156
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -1551,6 +1551,8 @@ zp ZP_WORD:6 [ char_cursor#10 char_cursor#19 char_cursor#25 char_cursor#1 ]
FINAL ASSEMBLER
Score: 11798
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -239,6 +239,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 40
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -380,6 +380,8 @@ reg byte x [ main::a#0 main::i#1 ]
FINAL ASSEMBLER
Score: 237
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -752,6 +752,8 @@ zp ZP_WORD:4 [ print::msg#4 print::msg#6 print::msg#3 ]
FINAL ASSEMBLER
Score: 635
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -623,6 +623,8 @@ zp ZP_WORD:3 [ main::w#0 main::sc#0 ]
FINAL ASSEMBLER
Score: 3487
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -444,6 +444,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 287
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -656,6 +656,8 @@ reg byte y [ main::j#3 main::j#4 main::j#1 ]
FINAL ASSEMBLER
Score: 367
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -560,6 +560,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 297
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -603,6 +603,8 @@ zp ZP_WORD:2 [ main::cursor#2 main::cursor#1 ]
FINAL ASSEMBLER
Score: 672
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -398,6 +398,8 @@ reg byte a [ main::$1 ]
FINAL ASSEMBLER
Score: 207
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -509,6 +509,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 299
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -691,6 +691,8 @@ zp ZP_WORD:4 [ w1#10 w1#11 ]
FINAL ASSEMBLER
Score: 92
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -692,6 +692,8 @@ reg byte a [ inci::return#2 ]
FINAL ASSEMBLER
Score: 64
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -411,6 +411,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 267
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -477,6 +477,8 @@ reg byte a [ main::s#2 main::s#4 main::s#1 ]
FINAL ASSEMBLER
Score: 287
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -575,6 +575,8 @@ reg byte x [ nest::j#2 nest::j#1 ]
FINAL ASSEMBLER
Score: 1359
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -1210,6 +1210,8 @@ reg byte y [ nest2::j#2 nest2::j#1 ]
FINAL ASSEMBLER
Score: 13472241
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -511,6 +511,8 @@ reg byte y [ main::s#3 main::s#1 main::s#2 ]
FINAL ASSEMBLER
Score: 287
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -538,6 +538,8 @@ reg byte y [ main::i#5 main::i#3 ]
FINAL ASSEMBLER
Score: 387
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -812,6 +812,8 @@ reg byte a [ inccnt::return#2 ]
FINAL ASSEMBLER
Score: 60
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -513,6 +513,8 @@ reg byte x [ cnt#13 ]
FINAL ASSEMBLER
Score: 46
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -859,6 +859,8 @@ reg byte a [ plot::x#2 plot::x#0 plot::x#1 ]
FINAL ASSEMBLER
Score: 235
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -842,6 +842,8 @@ reg byte x [ plot::x#3 plot::x#0 plot::x#1 plot::x#2 ]
FINAL ASSEMBLER
Score: 298
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -618,6 +618,8 @@ reg byte a [ line#12 line#13 ]
FINAL ASSEMBLER
Score: 46
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -1473,6 +1473,8 @@ zp ZP_WORD:6 [ char_cursor#13 char_cursor#29 char_cursor#31 char_cursor#32 char_
FINAL ASSEMBLER
Score: 1098
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -833,6 +833,8 @@ zp ZP_WORD:4 [ main::$11 ]
FINAL ASSEMBLER
Score: 986
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -1401,6 +1401,8 @@ reg byte x [ lvalue::i#2 lvalue::i#1 ]
FINAL ASSEMBLER
Score: 1192
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -368,6 +368,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 127
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -627,6 +627,8 @@ zp ZP_WORD:2 [ main::nxt#4 main::nxt#3 main::nxt#1 ]
FINAL ASSEMBLER
Score: 681
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -1591,6 +1591,8 @@ zp ZP_WORD:2 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 fillscreen::curs
FINAL ASSEMBLER
Score: 6088
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -3790,6 +3790,8 @@ reg byte a [ scroll_bit::$9 ]
FINAL ASSEMBLER
Score: 7129
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -494,6 +494,8 @@ reg byte a [ main::$2 ]
FINAL ASSEMBLER
Score: 402
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -2494,6 +2494,8 @@ reg byte a [ anim::$16 ]
FINAL ASSEMBLER
Score: 6723
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -4043,6 +4043,8 @@ reg byte a [ prepareMEM::$1 ]
FINAL ASSEMBLER
Score: 5347
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -9966,6 +9966,8 @@ reg byte x [ place_sprites::j2#1 ]
FINAL ASSEMBLER
Score: 779436
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -786,6 +786,8 @@ reg byte a [ sum::return#3 ]
FINAL ASSEMBLER
Score: 82
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -10855,6 +10855,8 @@ reg byte a [ init_multiply::$6 ]
FINAL ASSEMBLER
Score: 179627
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -445,6 +445,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 43
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -262,6 +262,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 18
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -696,6 +696,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 249
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -240,6 +240,8 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 18
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -3318,6 +3318,8 @@ reg byte a [ findcol::$12 ]
FINAL ASSEMBLER
Score: 1439007
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -406,6 +406,8 @@ reg byte x [ main::i#2 main::i#1 ]
FINAL ASSEMBLER
Score: 387
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -1037,6 +1037,8 @@ reg byte a [ sum::return#1 ]
FINAL ASSEMBLER
Score: 663
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)

@ -778,6 +778,8 @@ zp ZP_WORD:6 [ main::w#0 ]
FINAL ASSEMBLER
Score: 73437
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)