En teoría de compiladores, la eliminación de subexpresiones comunes (CSE por las siglas en inglés) es una optimización que consiste en buscar expresiones que se repitan, y analizar si vale la pena reemplazarlas por una variable para computar el valor una sola vez.[1]
Ejemplo
En el código siguiente:
a = b * c + g;
d = b * c * e;
Puede valer la pena transformar el código a:
tmp = b * c;
a = tmp + g;
d = tmp * e;
Si el coste de guardar y leer tmp
es menor que el coste de calcular b * c
la segunda vez.
Referencias