Você está na página 1de 2

Optimizacin genrica

Una vez se ha generado el cdigo intermedio, se pueden realizar una serie de optimizaciones genricas, que permiten eliminar instrucciones intiles o simplificar expresiones, obteniendo as un cdigo ms pequeo y rpido de ejecutar. La optimizacin en esta fase se compone tanto de optimizaciones locales como globales. Bloques bsicos El paso previo a cualquier optimizacin es la divisin del programa en bloques bsicos. Un bloque bsico es un conjunto de instrucciones de programa que se ejecutan de forma consecutiva sin posibilidad de salto. Por tanto, los bloques bsicos del programa sern aquellos fragmentos de cdigo cuyas instrucciones no sean saltos, ni el destino de un salto. La excepcin es la ltima instruccin de cada bloque bsico, que s puede (debe) ser un salto. La primera instruccin de un bloque bsico se denomina como lder, y ser el punto de entrada al bloque. Esta estructuracin permite visualizar el flujo del programa como un grafo, como muestra el siguiente ejemplo:

Optimizaciones locales Las optimizaciones locales, o de ventana, son aquellas que se efectan dentro de un bloque bsico. Algunas de ellas son:

Resumen Optimizaciones Locales


_ Aplican sobre un bloque bsico aislado del resto. _ Las introdujimos en nuestro estudio de generacin de cdigo. _ Aplicables tanto a cdigo intermedio como a cdigo final

y quieres tenerlas en ambos niveles. _ Optimizaciones Globales _ Aplican sobre todo el programa, explotando las relaciones entre varios bloques bsicos simultneamente. _ Son dirigidas por Anlisis de Flujo de Datos (Data Flow Analysis). _ Aplicables tanto a cdigo intermedio como a cdigo final en general se aplican agresivamente al intermedio.

Você também pode gostar