Forum: Compiler & IDEs AVR-GCC Optimierungsoptionen


von Karl K. (karl_k69)


Lesenswert?

Hi,

ich kenne es von TI's ARM-Compiler, dass man neben den Optimierunsstufen 
-O0 bis -O5 auch noch einen zusätzlichen Parameter hat, mit dem man 
angeben kann, wie stark zu Gunsten der Geschwindigkeit (=größerer Code) 
oder der Codesize (=langsamerer Code) optimiert werden soll.

Gibt es sowas beim AVR-GCC auch oder ist da alles implizit in den 
Optimierungsleveln -O0...-O3 und -Os enthalten?

Danke!

: Verschoben durch Moderator
von (prx) A. K. (prx)


Lesenswert?

Karl K. schrieb:
> Gibt es sowas beim AVR-GCC auch oder ist da alles implizit in den
> Optimierungsleveln -O0...-O3 und -Os enthalten?

-O0 optimiert nicht
-Os ... auf Platz
-O1,-O2,.. auf Tempo

von Karl K. (karl_k69)


Lesenswert?

Ähm ja...meine Frage war eigentlich, ob es daneben noch eine 
zusätzliche Option gibt, mit der man den Compiler anweisen kann, 
Geschwindigkeitsoptimierung auf Kosten der Größe (oder anders herum) 
vorzunehmen.

von (prx) A. K. (prx)


Lesenswert?


von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

A. K. schrieb:

> -Os ... auf Platz
> -O1,-O2,.. auf Tempo

Naja, die Reihenfolge ist eher -O1, -Os, -O2, -O3.

Karl K. schrieb:
> ob es daneben noch eine zusätzliche Option gibt

Dutzende (fangen alle mit -f an).  Aber glaub' uns, daran willst du
nicht einzeln feilen. ;-)

Wenn du ins Handbuch schaust, siehst du, welche der -O-Optionen
jeweils welche der feiner granularen Optimierungsschritte impliziert.

Beim AVR ist im Allgemeinen kürzerer Code auch schnellerer, weshalb
sich -Os als „die Universaloption“ schlechthin eingebürgert hat.
Erst bei -O3 wird der Code dann wirklich massiv schneller (auf Kosten
der Größe natürlich), weil eben rigoros Schleifen aufgerollt werden und
dergleichen Dinge mehr.

Selbst auf dem IAR habe ich nie einen nennenswerten Unterschied
zwischen -z6 und -s6 bemerkt, wenn man Code für den AVR erzeugt hat.

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
Noch kein Account? Hier anmelden.