Copiar propagación


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

En la teoría del compilador , la propagación de copias es el proceso de reemplazar las ocurrencias de objetivos de asignaciones directas con sus valores. [1] Una asignación directa es una instrucción de la forma x = y, que simplemente asigna el valor de ya x.

Del siguiente código:

y = x
z = 3 + y

La propagación de copias produciría:

z = 3 + x

La propagación de copias a menudo utiliza definiciones de alcance , cadenas de definición de uso y cadenas de definición de uso al calcular qué ocurrencias del objetivo pueden reemplazarse de manera segura. Si todos los usos expuestos hacia arriba del objetivo pueden modificarse de forma segura, la operación de asignación puede eliminarse.

La propagación de copias es una optimización de "limpieza" útil que se utiliza con frecuencia después de que ya se hayan ejecutado otras pasadas del compilador. Algunas optimizaciones, como las implementaciones clásicas de eliminación de subexpresiones comunes [1] , requieren que la propagación de copias se ejecute posteriormente para lograr un aumento en la eficiencia.

Ver también

Referencias

  1. ^ a b Aho, Alfred V .; Lam, Monica S .; Sethi, Ravi; Ullman, Jeffrey D. Compiladores, principios, técnicas y herramientas Segunda edición . ISBN 0-321-48681-1.

Otras lecturas

Muchnick, Steven S. Diseño e implementación avanzados del compilador . Morgan Kaufmann. 1997.