Kann es sein, dass der Compiler schon wieder schlechter wurde ? Ein Programm hat sich von rund 3500 auf 3800Bytes vergrößert, nachdem ich die neue Version installiert habe. Interessant finde ich folgendes: a) ypos=Zeile*8; b) ypos=Zeile; ypos*=8; Version b erzeugt einen um 16Bytes kleineren Code, da u.a. bei B mul verwendet wird, während a 16bit shifts verwendet.
Kann sein dass er mehr auf Speed optimiert. Typisch ist z.B. das ausrollen von Schleifen, die machen den Code um einiges größer aber auch schneller,
Also ich kann das überhaupt nicht bestätigen. Ich habe jetzt mal 4 ältere Programme compiliert (-Os): WINAVR 20030913 20050214 20060125 Programm 1 2911 2935 2907 Programm 2 2376 2390 2380 Programm 3 2075 2089 2069 Programm 4 571 571 569 Vergleich: 100% 100,7% 99,9% Also nur das 2. Programm ist mit der 2003 Version um 2 Worte kleiner. In % sind die Unterschiede schlichtweg lächerlich, um so ein Gedöns drum zu machen. Peter
Ich habe mit 2, also auf Geschwindigkeit optimiert, compiled. Da wird dann aus x*zahl ein schift, wenn die Zahl 2^n ist, obwohl ein mul schneller und kleiner wäre. Und das ist nur ein Beispiel. Bei meinem Fall ist das Programm um rund 8% größer geworden, das ist schon einiges.
Hier mal ein Beispiel: ypos=Zeile*8; mov r24,r19 clr r25 movw r30,r24 lsl r30 rol r31 lsl r30 rol r31 lsl r30 rol r31 ypos=Zeile; ypos*=8; mov r11,r19 ldi r24,lo8(8) mul r11,r24
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.