Common subexpression elimination
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.
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;