www.mikrocontroller.net

Forum: Compiler & IDEs AVR-GCC setzt funktionen mehrfach um


Autor: Christoph Wagner (wilibald)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Nach intensiven wundern über den immensen Größenzuwachs von 1,5 auf 3kb 
nach Hinzufügen von 2 Funktionsaufrufen habe ich im Assemblerlisting 
festgestellt, dass der AVR-GCC mehrere Funktionen z.T. 8x 
beinahe-identisch übersetzt. Wie kann ich dem Compiler beibringen, dass 
er diese Funktionen nur einmal übersetzt und per call aufruft?

Kann es daran liegen, dass diese aufwändigen Aufrufe in einer ISR 
stattfinden?

Vielen Dank,
die Ohmrange

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal Compileroptionen überprüft? Hast du wirklich Os genommen, oder 
vielleicht aus Versehen O3 oder sowas?

Autor: Christoph Wagner (wilibald)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei allen Optionen bleibt das Hauptproblem bestehen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein nachvollziehbares Beispiel könnte helfen. Die Glaskugeln sind wie 
üblich grad unpässlich.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte was in der Richtung -fipa-cp sein (inperprocedural constant 
propagation).

Johann

Autor: Christoph Wagner (wilibald)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun noch weitergesucht und einen Schalter gefunden, der 
Inlining abschaltet. Offensichtlich ist die Entscheidung, wann eine 
Funktion inline behandelt wird unausgegoren. Das hat den Code wieder auf 
die Hälfte zusammenfallen lassen.

Vielen Dank für Eure Tipps.

Gibts es einen Überblick über die gesammelten Compileroptionen vom GCC?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.