Ir al contenido

Eliminación de subexpresiones comunes

De Wikipedia, la enciclopedia libre
Esta es la versión actual de esta página, editada a las 23:19 10 ene 2021 por Superzerocool (discusión · contribs.). La dirección URL es un enlace permanente a esta versión.
(difs.) ← Revisión anterior · Ver revisión actual (difs.) · Revisión siguiente → (difs.)

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