Ir al contenido

Eliminación de subexpresiones comunes

De Wikipedia, la enciclopedia libre

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