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
Mal Compileroptionen überprüft? Hast du wirklich Os genommen, oder vielleicht aus Versehen O3 oder sowas?
Ein nachvollziehbares Beispiel könnte helfen. Die Glaskugeln sind wie üblich grad unpässlich.
Könnte was in der Richtung -fipa-cp sein (inperprocedural constant propagation). Johann
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.