codigo c
o
o
Francisco Jos´ Ribadas Pena
e
PROCESADORES DE LENGUAJES
4o Inform´tica
a
ribadas@uvigo.es
18 de mayo de 2011
– c FJRP 2002 ccia pl –
11.1Introducci´n
o
Objetivo: Mejorar c´d. objeto final, preservando significado del prograo
ma
8
o
< velocidad de ejecuci´n
tama˜o del programa
n
Factores a optimizar
:
necesidades de memoria
Se sigueuna aproximaci´n conservadora
o
! No se aplican todas las posibles optimizaciones, solo las “seguras”
Clasificaci´n de las optimizaciones
o
1. En funci´n de la dependencia de la aquitectura
oDependientes de la m´quina: Aprovechan caracter´
a
ısticas espec´
ıficas de la m´quina objetivo
a
• asignaci´n de registros, uso de modos de direccionamiento
o
• uso instrucciones especiales(IDIOMS)
• relleno de pipelines, predicci´n de saltos, aprovechamiento
o
estrategias de mem. cach´, etc..
e
Independientes de la m´quina: Aplicables en cualquier tipo de
a
m´quina objetivo
a
•ejecuci´n en tiempo de compilaci´n
o
o
• eliminaci´n de redundancias
o
• cambios de ´rden de ejecuci´n, etc..
o
o
2. En funci´n del ´mbito de aplicaci´n
o
a
o
Optimizaciones locales:Aplicadas dentro de un Bloque B´sico
a
• S´lo estudian las instrucciones del B.B. actual
o
Optimizaciones globales: Aplicadas a m´s de un B.B.
a
• Consideran contenido y flujo de datos entre todos oparte de
los B.B.
• Necesidad de recoger info. sobre los B.B. y sus interrelaciones
! Algoritmos de an´lis global de flujo de datos
a
8
o
< sobre c´digo fuente (programador/preprocesador)durante generaci´n cod. objeto
o
Posibilidades de optimizaci´n:
o
:
sobre C´digo Intermedio (
o
11.2 Optimizaciones Locales
1. Ejecuci´n en tiempo de compilaci´n
o
o
Precalcular expresionesconstantes (con constantes o variables
cuyo valor no cambia)
!
i=2+3
j=4
f = j + 2.5
!
i=5
j=4
f = 6.5
2. Reutilizaci´n de expresiones comunes
o
a=b+c
d=a-d
e=b+c
f=a-d...
Regístrate para leer el documento completo.