„Common subexpression elimination“ – Versionsunterschied
Erscheinungsbild
[gesichtete Version] | [gesichtete Version] |
Inhalt gelöscht Inhalt hinzugefügt
K r2.7.1) (Bot: Ergänze: ru:Удаление общих подвыражений |
Addbot (Diskussion | Beiträge) K Bot: 5 Interwiki-Link(s) nach Wikidata (d:q93593) migriert |
||
Zeile 25: | Zeile 25: | ||
[[Kategorie:Compileroptimierung]] |
[[Kategorie:Compileroptimierung]] |
||
[[en:Common subexpression elimination]] |
|||
[[fr:Recherche de sous-expressions communes]] |
|||
[[ja:共通部分式除去]] |
|||
[[pl:Eliminacja wspólnych podwyrażeń]] |
|||
[[ru:Удаление общих подвыражений]] |
[[ru:Удаление общих подвыражений]] |
||
[[uk:Усунення загальних підвиразів]] |
Version vom 8. April 2013, 23:21 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
- ↑ Muchnick, Steven S.: Advanced Compiler Design & Implementation, Morgan Kaufmann Publishers, 1997, ISBN 1-55860-320-4