Gast
#1593132
Hallo zusammen, gibt es eine Möglichkeit die eingestellte Optimierungsstufe auszugeben? Gruß Timo
|
Anzeige
|
Define für Optimierungsstufe?
Gast
#1593132
Hallo zusammen, gibt es eine Möglichkeit die eingestellte Optimierungsstufe auszugeben? Gruß Timo
Gast
#1593138
Der GCC stellt dir
zur Verfügung, wenn optimiert oder auf Größe optimiert wird. Davon sollte dein Programm aber i.d.R. nicht abhängig sein.
Gast
#1593142
Bei mir werden die Definitionen leider nicht gefunden. Ich schreibe nur eine Testroutine und möchte auf meinem Terminal dann sehen ob die Optimierung an oder aus ist... Gruß Die sind aber schon lange im gcc.
Gast
#1593195
Ja genau so hab ich es eigentlich gemacht... Liegt vielleicht an der IDE (CrossWorks), der aber GCC v4.1.1 verwendet Gruß Lass dir doch mal alle Makros ausgeben: avr-gcc -E -dM <filename> bzw. gcc -O1 -E -dM <filename> etc.
Gast
#1593414
Ja funktioniert nun... für die einzelnen stufen gibt es kein define oder?! keine ahnung, ich habe noch nie davon gehört. Der Wert von _OPTIMIZE_ ist auch immer 1, egal ob man mit -O1, -O2 oder -O3 aufruft. Letztlich würde das auch nicht viel helfen, weil -O... ohnehin nur eine Zusammenfassung vieler kleiner Einstllungen ist, die man eigentlich auch abfragen können müsste, wenn man es ernst meint.
Gast
#1593445
Vorallem, und da wiederhole ich mich gerne, sollte dein Programm unabhängig von der Optimierung funktionieren.
Gast
#1593461
Es gibt aber eben manchmal Dinge, die nicht davon unabhängig sind, wie z.B. bei der avr-libc die delay-Funktionen, die nur mit eingeschalteter Optimierung korrekt funktionieren.
Gast
#1593472
Rolf Magnus schrieb: > Es gibt aber eben manchmal Dinge, die nicht davon unabhängig sind, wie > z.B. bei der avr-libc die delay-Funktionen, die nur mit eingeschalteter > Optimierung korrekt funktionieren. Das hat aber nicht dich als Anwender zu interessieren, sondern die Bibliotheks- und Compilerbauer. Auch der inb()/outb()-Krams im Linux-Kernel funktioniert i.d.R. nur mit Optimierung. Und selbst die verlassen sich nur auf die Optimierung, weil sie wissen, was passiert. Bei einem anderen Compiler geht das schon in die Hose. Du als Anwender weißt ja noch nichtmal, welche Optimierungen durchgeführt werden. Allenfalls kannst du einen Algorithmus zweimal implementieren, einmal mit Tabellen bei OPTIMIZE und einmal als nackten Algorithmus bei OPTIMIZE_SIZE.
Gast
#1593673
Sven P. schrieb: > Rolf Magnus schrieb: >> Es gibt aber eben manchmal Dinge, die nicht davon unabhängig sind, wie >> z.B. bei der avr-libc die delay-Funktionen, die nur mit eingeschalteter >> Optimierung korrekt funktionieren. > > Das hat aber nicht dich als Anwender zu interessieren, sondern die > Bibliotheks- und Compilerbauer. Es hat den zu interessieren, der etwas programmiert, das von der Optimierung abhängt. Wenn das eine Library-Funktion ist, dann eben der Programmierer der Library. > Auch der inb()/outb()-Krams im Linux-Kernel funktioniert i.d.R. nur mit > Optimierung. Und selbst die verlassen sich nur auf die Optimierung, > weil sie wissen, was passiert. Bei einem anderen Compiler geht das > schon in die Hose. Bei Mikrocontroller-Programmierung kommt es schon mal vor, daß man sich die Hände schmutzig machen muß.
Gast
#1593758
Rolf Magnus schrieb: > Es hat den zu interessieren, der etwas programmiert, das von der > Optimierung abhängt. Wenn das eine Library-Funktion ist, dann eben der > Programmierer der Library. Ja, ich versteh schon, was du meinst. Die Frage ist halt: Wer, außer den Compiler- und (Standard-)Bibliotheksbauern, kann denn überhaupt etwas schreiben, was von einer Optimierung abhängt, von der überhaupt nicht weiß, was und wie und warum passiert? Ein normales Programm sollte in jedem Fall unabhängig von der Optimierung funktionieren. Eben, weil man ohne Kenntnisse der Compiler-Interna überhaupt nicht weiß, was denn überhaupt optimiert wird, und von was man überhaupt abhängig ist. Du hast immerhin selbst eine sinnvolles Beispiel geliefert: Auswahl eines Algos, je nach -O.... Allerdings fällt es schwer, viel mehr sinnvolle Anwendungen zu konstruieren.
Gast
#1593788
Naja, ich bezog mich auf den Wunsch, auch noch die Optimierungsstufe herauszufinden. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|