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 editar

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 editar

  1. 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.»