AVR: Variablen explizit in Register legen

#734741
Lesenswert?
• ▲
▼
Markus wrote:
> Ah, danke. Aber irgendwie wirkt sich das eher negativ auf die Laufzeit
> aus. Seltsam

Nicht wirklich.
Es ist eher selten (Jörg hat einen Fall aufgezeigt), in dem
du mit einer Register Zuweisung dein Programm besser optimieren
kannst als der Compiler. Auf PCs wird zb. gerne die Regel
ausgegeben: Im besten Fall ignoriert der Compiler deinen register-
Wunsch. Also lass es lieber bleiben.
Compiler haben ausgeklügelte Algorithmen die auf Datenfluss Analyse
basieren um die Register Belegung zu optimieren.

Lediglich in Ausnahmefällen, wie zb. Interrupt Routinen kann eine
explizite register Vereinbarung etwas bewirken. Aber immer daran
denken: Wenn du ein Register für eine bestimmte Variable reservierst,
dann steht dieses Register an anderer Stelle für den Compiler nicht
mehr zur Verfügung. D.h. an einer Stelle wird dadurch der Zugriff
auf eine Variable zwar schneller, aber dafür kann es passieren,
dass an 50 anderen Stellen extra Klimmzüge gemacht werden müssen
um den Ausfall dieses Registers zu kompensieren.
Gast #734753
Lesenswert?
• ▲
▼
>D.h. an einer Stelle wird dadurch der Zugriff
>auf eine Variable zwar schneller, aber dafür kann es passieren,
>dass an 50 anderen Stellen extra Klimmzüge gemacht werden müssen
>um den Ausfall dieses Registers zu kompensieren.

Möglich. naja, Pech gehabt

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.