Zum Inhalt springen

„Common subexpression elimination“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Addbot (Diskussion | Beiträge)
K Bot: 5 Interwiki-Link(s) nach Wikidata (d:q93593) migriert
KLBot2 (Diskussion | Beiträge)
K Bot: 1 Interwiki-Link(s) nach Wikidata (d:Q93593) migriert
Zeile 24: Zeile 24:
[[Kategorie:Compilerbau]]
[[Kategorie:Compilerbau]]
[[Kategorie:Compileroptimierung]]
[[Kategorie:Compileroptimierung]]

[[ru:Удаление общих подвыражений]]

Version vom 22. April 2013, 11:05 Uhr

Das Entfernen gemeinsamer Teilausdrücke (englisch common subexpression elimination) beschreibt eine Compiler-Optimierung. Es wird dabei nach Teilausdrücken gesucht, die zuvor bereits berechnet wurden. Wenn solche gefunden werden, wird das vorherige Ergebnis in einer Variable gespeichert und die wiederholte Berechnung durch die Variable ersetzt.[1]

Beispiel

In folgendem Programmabschnitt wird zweimal der Wert von a * b berechnet:

x = a * b + c;
y = a * b + d;

Die CSE transformiert den Abschnitt dann so, dass das erste Ergebnis zwischengespeichert wird:

_tmp = a * b;
x = _tmp + c;
y = _tmp + d;

Einzelnachweise

  1. Muchnick, Steven S.: Advanced Compiler Design & Implementation, Morgan Kaufmann Publishers, 1997, ISBN 1-55860-320-4