Eliminación de subexpresiones comunes
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
editarEn 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
editar- ↑ Steven Muchnick; Muchnick and Associates (15 de agosto de 1997). Advanced Compiler Design Implementation. Morgan Kaufmann. ISBN 978-1-55860-320-2. «Common subexpression elimination.»