Hallo izaseba,
Asoo! Ich hab noch avr-gcc 3.4.6. Aber ich hab schon öfters gehört, dass avr-gcc 4.1.0 noch in Entwicklungphase ist und deshalb Bugs enthalen kann. Trifft das im Moment immer noch zu?Zitat:
P.S. avr-gcc 4.1.0
MfG Mark
Druckbare Version
Hallo izaseba,
Asoo! Ich hab noch avr-gcc 3.4.6. Aber ich hab schon öfters gehört, dass avr-gcc 4.1.0 noch in Entwicklungphase ist und deshalb Bugs enthalen kann. Trifft das im Moment immer noch zu?Zitat:
P.S. avr-gcc 4.1.0
MfG Mark
gcc 4.*.* hat schon seit ein paar Tagen den unstable Zweig verlassen.Zitat:
noch in Entwicklungphase ist und deshalb Bugs enthalen kann.
Ich war mir nicht sicher welche Version bei Winavr aktuell enthalten ist, aber hier kannst Du selber nachlesen ;-)
Gruß Sebastian
Was die GCC-Version angeht, kann man mit 3.4.6 prima leben. Ich hab mal n Code vergleich gegen die 4.1.x gemacht, und der Code in der 4-er war nicht so dicht wie in der 3-er!
Momentan gab es da vor allem interne Umstellungen auf SSA, weil diese Darstellung sehr gut geeignet ist, um hardware-unabhängige Optimierungen zu machen. Momentan wird der Code innerhalb von GCC 4 also folgendwermassen transformiert:
C/C++/Java/... --> tree --> SSA --> tree --> RTL --> asm
[-XZitat:
Zitat von izaseba
Nein. Die Funktion könnte von einem anderen Modul aufgerufen werden. Sie wegzulassen könnte also zu einem Fehler zur Linkzeit führen!
Wenn die Funktion nur in diesem Modul auftaucht, dann kann man sie als "static" deklarieren und siehe, gcc wirft sie weg bzw. warnt an, daß da was unnötiges steht. Ganz wie erwünscht...
Hallo Sprinter, schön Dich wieder zu sehen :-)Zitat:
Was die GCC-Version angeht, kann man mit 3.4.6 prima leben. Ich hab mal n Code vergleich gegen die 4.1.x gemacht, und der Code in der 4-er war nicht so dicht wie in der 3-er!
Ich hab auch nirgendwo was anderes behauptet 8-[
Stimmt, soweit hab ich nicht gedacht :-k Der Kompiler kann wirklich nicht wissen, ob man die Funktion noch irgendwo anders aufruft.Zitat:
Nein. Die Funktion könnte von einem anderen Modul aufgerufen werden. Sie wegzulassen könnte also zu einem Fehler zur Linkzeit führen!
Fazit:
Es klappt doch ganz gut mit der Optimierung, und -O0 wird normallerweise kein Mensch brauchen, außer zu Debugzwecken, oder ?
Gruß Sebastian