Tareas
Objetivo
Mejorar objeto final, preservando significado del
programa Factores a optimizar:
1.
2.
3. 4.
Velocidad de ejecución Tamaño del programa Necesidades dememoria Se sigue una aproximación conservadora
No se aplican todas las posibles optimizaciones, solo las “seguras”
Clasificación de las optimizaciones
1.
En función de la dependenciade la arquitectura
Dependientes de la maquina. Independientes de la maquina.
Aplicables en cualquier tipo de máquina objetivo. Ejecución en tiempo de compilación. Eliminación de redundancias.Cambios de orden de ejecución, etc.. Optimizaciones locales: Aplicadas dentro de un Bloque Básico.
2.
En función del ámbito de aplicación
Sólo estudian las instrucciones del Bloque Básicoactual.
Optimizaciones globales: Aplicadas a más de un Bloque Básico.
Consideran contenido y flujo de datos entre todos o parte de los Bloques Básicos Necesidad de recoger información sobre losBloques Básicos y sus interrelaciones.
Optimizaciones Locales
1. Ejecución en tiempo de compilación
Pre calcular expresiones constantes (con constantes o variables cuyo valor no cambia)
a=9+8 b=7c = b + 2.5 a = 17 b=7 c = 9.5
2. Reutilización de expresiones comunes
a=b+c d=a-e e=b+c f=a-e a=b+c d=a-e e=a f=d
3. Propagación de copias
Ante instrucciones “f = a”, sustituir todos los usosde f por a
a = 50 + x f=a b=f+c d=a+m m=f+d a = 50 + x b=a+c d=a+m m=a+d
Optimizaciones Globales
Optimización Llamadas a Procedimientos
Llamadas a procedimientos son muy costosas
Cambios del ámbito de referencias Gestion de Regístros de Activación Paso de parámetros + asignación de datos locales
Mejoras
1. Optimizar manejo de Registros de Activacion
Minimizarcopia de parámetros y no registros a salvar Uso almacenamiento estático si no hay llamadas recursivas
2. Expansión en línea.
Expansión en línea
Idea: Eliminar llamadas a procesos, “copiando” el...
Regístrate para leer el documento completo.