- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: GCC deoptimiert

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    34
    Beiträge
    522
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo izaseba,
    P.S. avr-gcc 4.1.0
    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?

    MfG Mark

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    noch in Entwicklungphase ist und deshalb Bugs enthalen kann.
    GCC 4.*.* hat schon seit ein paar Tagen den unstable Zweig verlassen.
    Ich war mir nicht sicher welche Version bei Winavr aktuell enthalten ist, aber hier kannst Du selber nachlesen

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  3. #13
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    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

    Zitat Zitat von izaseba
    Das einzigste was hier auffällt, man könnte die Funktion add komplett wegoptimieren, [...]
    [-X

    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...
    Disclaimer: none. Sue me.

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    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!
    Hallo Sprinter, schön Dich wieder zu sehen
    Ich hab auch nirgendwo was anderes behauptet

    Nein. Die Funktion könnte von einem anderen Modul aufgerufen werden. Sie wegzulassen könnte also zu einem Fehler zur Linkzeit führen!
    Stimmt, soweit hab ich nicht gedacht Der Kompiler kann wirklich nicht wissen, ob man die Funktion noch irgendwo anders aufruft.

    Fazit:
    Es klappt doch ganz gut mit der Optimierung, und -O0 wird normallerweise kein Mensch brauchen, außer zu Debugzwecken, oder ?

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test