CC65 crosscompiler v2.12.0¢http://www.cc65.org¢¢Od m⑨ch test
cross-compileru CC65, uveden⑨ch ve Flopu 45, uplynulo jiə 7 let. Tehdy se jednalo o verzi 2.8.0 a douf⇧m, əe i v⇧s zaj m⇧, jak si vede aktu⇧ln verze 2.12.0.¢¢Zkompiloval jsem pokusn❎ stejn⑦ p② klady jako p②ed lety, hello.c a sieve.c a zde jsou v⑨sledky v tabulk⇧ch, n⇧sledovan⑦ vysv❎tluj c m koment⇧②em.¢¢---------------------------------------¢hello.c - d⑦lka v⑨sledn⑦ho kdu:¢---------------------------------------¢ v2.8.0 +- v2.12.0 +- v+-¢neoptim 3087 0 3110 0 +23¢opt -Oi 3066 -21 3083 -27 +17¢opt -Or 3068 -19 3078 -32 +10¢---------------------------------------¢¢---------------------------------------¢sieve.c - d⑦lka v⑨sledn⑦ho kdu:¢---------------------------------------¢ v2.8.0 +- v2.12.0 +- v+-¢neoptim 4023 0 4001 0 -22¢opt -Oi 3844 -179 3820 -181 -24¢opt -Or 3844 -179 3804 -197 -40¢---------------------------------------¢¢---------------------------------------¢sieve.c - ⇨as pot②ebn⑨ pro v⑨po⇨et:¢---------------------------------------¢sieve.c v2.8.0 +- v2.12.0 +- v+-¢neoptim 146 0 146 0 0¢opt -Oi 57 -89 57 -89 0¢opt -Or 57 -89 40 -106 -17¢---------------------------------------¢¢Koment⇧②¢Nepatrn⑨ n⇧r
st d⑦lky u hello.c m❎ p②ekvapil, ale p②i n⇧sledn⑦m pr
zkumu jsem zjistil, əe d
vodem jsou drobn⑦ opravy chyb funkc v knihovn⇧ch, kter⑦ program pouə v⇧. Celkov❎ byla kompilace vylep③ena - v③imn❎te si u optimalizovan⑨ch verz relativn ch ⑤bytk
27, respektive 32 bajt
oproti verzi neoptimalizovan⑦ (d② ve to bylo jen 21, respektive 19 bajt
).¢¢Zlep③en kvality kompilace se naplno ukazuje u druh⑦ho p② kladu - v⑨po⇨tu prvo⇨ sel v intervalu 2 aə 8192 metodou Eratosthenova s ta. Tam do③lo ve v③ech p② padech ke zkr⇧cen kdu. P❎kn⑨ je zejm⑦na ⑤bytek 40 bajt
u optimalizace "-Or", kter⇧ pracuje s lok⇧ln mi prom❎nn⑨mi p② mo v nult⑦ str⇧nce. Obecn❎ se takov⇧ optimalizace m
əe projevit r
zn❎, n❎kdy i nev⑨hodn❎, protoəe na za⇨⇧tku kaəd⑦ funkce mus b⑨t obsah pouə van⑨ch registr
v nult⑦ str⇧nce uschov⇧n do virtu⇧ln ho z⇧sobn ku a na konci funkce op❎t obnoven. V na③em p② pad❎ je v③ak tato optimalizace nadm ru ⑤sp❎③n⇧, nebo④ krom mal⑦ho zkr⇧cen kdu do③lo hlavn❎ k v⑨razn⑦mu zrychlen z 57 na 40 "ticks", tedy o 42% oproti nejlep③ mu v⑨sledku optimalizovan⑦ kompilace pod CC65v2.8.0.¢¢Na platform❎ C64 jsou v⑨sledky podobn⑦. Zkompilovan⑨ kd p② kladu hello.c se oproti star③ verzi prodlouəil z 2665 na 2744, coə ale sv❎d⇨ jen o daleko v❎t③ m po⇨tu oprav a p② davk
ve funkc ch v knihovn⇧ch. Skv❎le pak dopadla kompilace druh⑦ho p② kladu s optimalizac "-Or", kdy jsou prvo⇨ sla spo⇨ t⇧na za 62 "ticks" oproti d② v❎j③ m 87. Program je tedy rychlej③ o 40%.¢¢-Raster/C.P.U.-