You are on page 1of 3

Optimizacin Global.

Ejercicio 1.Temas abordados: Grafo de flujo de ejecucin, optimizaciones: eliminacin de


cdigo muerto, propagacin de constantes fuera del bloque bsico, expansin de
bucles.
Dado el siguiente cdigo ejemplo:
If(A[1]<0 & J>0){
L=1;
}else{
L=2;
}
J=2;
For(k=1;k<j;k=k+2){
A[k+1]=A[k]+A[k+1];
I=J;
L=k*I
}
Desarrollar y obtener lo siguiente;
1.- Elaborar el cdigo de 3 direcciones e identificar sus bloques bsicos
2..- Construir el grafo de flujo de ejecucin del programa
3..- Realizar eliminacin de variables muertas (Consejo: Utilizar el conjunto de
variables vivas).
4..- Aplicar propagacin de constantes (Consejo: Utilizar el conjunto de
alcance de definiciones).
5.- Realizar expansin de bucles si es que resulta eficiente.
6.- Realizar de nuevo eliminacin de variables muertas y eliminacin de
variables de alcance corto.
Para cada paso se deber desarrollar el diagrama de ejecucin y el cdigo de 3
direcciones resultante de la aplicacin de las optimizaciones.

Ejercicio 2.Temas abordados: Subexpresiones comunes globales, reduccin de fuerza.


Dado el siguiente diagrama de flujo de ejecucin.

Aplicar:
1) Eliminacin de subexpresiones comunes globales.
2) Reduccin de Fuerza.
Para cada caso se deber desarrollar el diagrama de ejecucin resultante de la
aplicacin de las optimizaciones.

Optimizacin de Mirilla.
A continuacin se encuentran segmentos de cdigo visualizados en mirillas,
aplicar las optimizaciones indicadas en cada uno de ellos.

Eliminacin de Cdigo Inalcanzable.


T1 = c+d
T2 = c-d
Goto L2
D = t1
L2:
D= t2

Eliminacin de instrucciones redundantes.


A=2
B=7
C=B-A
D=B

B=D

Optimizaciones de flujo de control


Iff(c==4) Goto Suma
Goto Resta
Suma:
Z=D+C
Contador= Contador+1
Goto Salir
Resta:
Z=D-C
Contador = Contador+1
Goto Salir
Salor

Simplificaciones algebraicas (Reduccin por fuerza).


Determinar si es conveniente (de acuerdo al costo de ejecucin) y en su caso
Optimizar
1) E=3
B=e*7

2) E=4
D=e^2

Uso de caractersticas especficas de la mquina.


Optimizar
t1 = c<d
L2: Iff t1 goto L1
C = c+1
D = d-1
Goto L2
L1:

You might also like