SlideShare una empresa de Scribd logo
1 de 55
Tema 3. Optimización de Código Lecciones 5,6,7,8 y 9
Generación de Código y Optimización ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Programa fuente Analizador  lexicográfico,  sintáctico y  semántico Generador de Código  Optimizador Programa objeto Se ejecuta todo junto. Mientras se analiza se genera código
Optimización ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Optimización ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Tipos de Optimización ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Optimización Local ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bloque Básico (ejemplos) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ensamblamiento (Folding) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Extensiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Extensiones ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implementación del Folding ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo de Folding ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implementación de la Propagación de Constantes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo de Separación en Bloques Básicos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Fun f(x,y)=> { i=0; b=5; while (i<x) { print(i*b); i=i+1; } x*b } print(i*b); i=i+1; i<x i=0; b=5;
Eliminación de subexpresiones redundantes. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implementación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],A+B no es redundante por la asignación
Optimizaciones Dentro de Bucles ,[object Object],[object Object],[object Object],[object Object],[object Object]
Expansión de bucles(loop unrolling) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reducción de frecuencia. (frequency reduction) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Implementación de la Reducción de Frecuencia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reducción de potencia(strength reduction) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variables Inductivas ,[object Object],[object Object],[object Object],[object Object],[object Object]
Optimización Global ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Construcción del Grafo del Flujo de Ejecución ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],r=1 i=1 while (i<=n) r=r*i; ++i; return r; bloque básico bloque básico bloque básico bloque básico
Construcción del Grafo del Flujo de Ejecución ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Análisis del Grafo del Flujo de Ejecución ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],r=1 i=1 while (i<=n) Puntos
Expresiones Disponibles (Available expresions) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Alcance de las Definiciones (reaching definitions) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variables Vivas (live variables) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Expresiones muy Utilizadas (Very Busy Expression) ,[object Object],[object Object],[object Object],[object Object]
Algoritmos de Análisis del Flujo de Ejecución ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Aplicaciones a la Optimización de Programas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo: Optimización Global ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],A(1)<0 J>0 L:=2 L:=1 J:=2 K:=1 A(K+1):=A(K)+A(K+1); I:=J; L:=K*I K:=K+2 K<J
Ejemplo de Optimización Global Variables Vivas A(1)<0 J>0 L:=2 L:=1 J:=2 K:=1 A(K+1):=A(K)+A(K+1); I:=J; L:=K*I K:=K+2 K<J {J,K} {J,K} {J,K} {A(1),J} {J}    
Ejemplo de Optimización Global Eliminación de Variables Innecesarias A(1)<0 J>0 L:=2 L:=1 J:=2 K:=1 A(K+1):=A(K)+A(K+1); I:=J; L:=K*I K:=K+2 K<J {J,K} {J,K} {J,K} {A(1),J} {J}    Se puede eliminar L e I Las A(K),A(K+1) no se eliminan pues no se han podido considerar en el cálculo de variables vivas
Ejemplo de Optimización Global Propagación de Constantes A(1)<0 J>0 J:=2 K:=1 A(K+1):=A(K)+A(K+1); K:=K+2 K<2 {A(1),J} {J:=2} Eliminar J>0 por no utilizarse y saltar  al mismo bloque básico Eliminar A(1)<0 después de eliminar J>0  Se puede expandir el bucle
Ejemplo de Optimización Global Expandir el Bucle J:=2 K:=1 A(1+1):=A(1)+A(1+1); A(2+1):=A(2)+A(2+1); A(2):=A(1)+A(2); A(3):=A(2)+A(3); Eliminar J y k por que no se utilizan y realizar los cálculos entre constantes
Optimización Dependiente de Máquina ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Optimizaciones Dependientes de Máquina ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Asignación de Registros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Generar Código para Maquina con un Acumulador a partir de Notación Polaca ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Optimización ,[object Object],[object Object],[object Object],[object Object],[object Object],Eliminar por reutilización del acumulador Cargar B Mult C Guardar T1 ; B*C Cargar T1  Sumar D Guardar T2 ; B*C+D Cargar A Sumar T2 Guardar T3 ; A+(B*C+D) Cargar T3 Guardar X Cargar B Mult C ; B*C Sumar D ; B*C+D Guardar T2 ; B*C+D Cargar A Sumar T2 ; A+(B*C+D) Guardar X Cargar B Mult C ; B*C Sumar D ; B*C+D Sumar A ; B*C+D+A Guardar X Eliminar por reutilización del acumulador Aplicar la  propiedad conmutativa  de la suma
Asignación de Registro en Máquinas Multi Registro ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Minimizar el Número de Variables Temporales ,[object Object],[object Object],Operación binaria Operando 1 n registros Operando 2 m registros Max{n,m+1} registros R=Calcular Op1 Calcular Op2 Operación R,Op2 Max{n+1,m} registros R=Calcular Op2 Calcular Op1 Operación Op1,R
Carga/Descarga de Registros ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cuando se utilizará una Variable ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],a  b  c  d  e Uso de los registros R0  R1  R2 b  c  - b  c  a d  c  a d  c  b e  c  b
Optimizar Cargas y Descargas ,[object Object],[object Object],[object Object],[object Object]
Arquitectura Máquina y Generación de Código Real. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],push pop MOV (SP)+,R1 MOV R1,-(SP)
Ejemplo de Optimización dependiente de Máquina: Pentium y Pentium II (I) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo de Optimización dependiente de Máquina: Pentium y Pentium II (II) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Como Escribir los Programas C ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reducir el Número de Saltos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evitar paradas por uso parcial de registros (Avoid partial register stalls).  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Alinear ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reordenar las instrucciones para maximizar la ejecución paralela ,[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Glosario de ing. de software
Glosario de ing. de softwareGlosario de ing. de software
Glosario de ing. de softwareGeorge Corona
 
Modelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónModelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónIsaias Toledo
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosRosviannis Barreiro
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionjorge severino
 
Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)michell_quitian
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de SoftwareMaricela Ramirez
 
Configuración básica de un router y switch
Configuración básica de un router y switchConfiguración básica de un router y switch
Configuración básica de un router y switchAlex Yungan
 
Conceptos y protocolos de enrutamiento: 5. RIPv1
Conceptos y protocolos de enrutamiento: 5. RIPv1Conceptos y protocolos de enrutamiento: 5. RIPv1
Conceptos y protocolos de enrutamiento: 5. RIPv1Francesc Perez
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Videoconferencias UTPL
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 

La actualidad más candente (20)

2.3.1
2.3.12.3.1
2.3.1
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Glosario de ing. de software
Glosario de ing. de softwareGlosario de ing. de software
Glosario de ing. de software
 
Expresiones Regulares
Expresiones RegularesExpresiones Regulares
Expresiones Regulares
 
Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Modelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de InformaciónModelos Prescriptivos del Desarrollo del Sistema de Información
Modelos Prescriptivos del Desarrollo del Sistema de Información
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No Deterministicos
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)Normalización de la base de datos (3 formas normales)
Normalización de la base de datos (3 formas normales)
 
Entrada y Salida
Entrada y SalidaEntrada y Salida
Entrada y Salida
 
2.2 y 2.3
2.2 y 2.32.2 y 2.3
2.2 y 2.3
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
computación paralela
computación paralelacomputación paralela
computación paralela
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
Configuración básica de un router y switch
Configuración básica de un router y switchConfiguración básica de un router y switch
Configuración básica de un router y switch
 
Conceptos y protocolos de enrutamiento: 5. RIPv1
Conceptos y protocolos de enrutamiento: 5. RIPv1Conceptos y protocolos de enrutamiento: 5. RIPv1
Conceptos y protocolos de enrutamiento: 5. RIPv1
 
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)Teoría de Autómatas y Lenguajes Formales (I Bimestre)
Teoría de Autómatas y Lenguajes Formales (I Bimestre)
 
Modelos de dominio
Modelos de dominioModelos de dominio
Modelos de dominio
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 

Similar a Optimización de código lecciones 5,6,7,8 y 9

Optimizacion de Compiladores
Optimizacion de CompiladoresOptimizacion de Compiladores
Optimizacion de CompiladoresJorge
 
Abstracción en programación
Abstracción en programaciónAbstracción en programación
Abstracción en programaciónRicardo Dominguez
 
FdP_Diapositivas_2018
FdP_Diapositivas_2018FdP_Diapositivas_2018
FdP_Diapositivas_2018ead1943
 
Semana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdfSemana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdfCarlosJahnsen3
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodosLao Tobon
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
MN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdfMN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdfJasonMoraMorales
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlabMarc Llanos
 
Operaciones Básicas
Operaciones BásicasOperaciones Básicas
Operaciones Básicaschembe
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2camnav
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++yesid19
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Joaquin1418
 
Lenguajes De Programacion C nivel1-unidad2
Lenguajes De Programacion C nivel1-unidad2Lenguajes De Programacion C nivel1-unidad2
Lenguajes De Programacion C nivel1-unidad2charnisch
 
Operaciones Básicas
Operaciones BásicasOperaciones Básicas
Operaciones Básicaschembe
 
Lenguaje de programacion C++ 2
Lenguaje de programacion C++ 2Lenguaje de programacion C++ 2
Lenguaje de programacion C++ 2David
 
Unidad2
Unidad2Unidad2
Unidad2JHONNY
 
Lenguajes de programacion c
Lenguajes de programacion cLenguajes de programacion c
Lenguajes de programacion ccharnisch
 

Similar a Optimización de código lecciones 5,6,7,8 y 9 (20)

Tema3
Tema3Tema3
Tema3
 
Optimizacion de Compiladores
Optimizacion de CompiladoresOptimizacion de Compiladores
Optimizacion de Compiladores
 
Abstracción en programación
Abstracción en programaciónAbstracción en programación
Abstracción en programación
 
FdP_Diapositivas_2018
FdP_Diapositivas_2018FdP_Diapositivas_2018
FdP_Diapositivas_2018
 
Funcionesenlenguaje c
Funcionesenlenguaje cFuncionesenlenguaje c
Funcionesenlenguaje c
 
Semana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdfSemana 1 - Principios de Algoritmos.pdf
Semana 1 - Principios de Algoritmos.pdf
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
sentenciareturnymetodos
sentenciareturnymetodossentenciareturnymetodos
sentenciareturnymetodos
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
MN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdfMN01_-_Introduccion_Matlab.pdf
MN01_-_Introduccion_Matlab.pdf
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
 
Operaciones Básicas
Operaciones BásicasOperaciones Básicas
Operaciones Básicas
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++
 
Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2Lenguajesdeprogramacion c nivel1-unidad2
Lenguajesdeprogramacion c nivel1-unidad2
 
Lenguajes De Programacion C nivel1-unidad2
Lenguajes De Programacion C nivel1-unidad2Lenguajes De Programacion C nivel1-unidad2
Lenguajes De Programacion C nivel1-unidad2
 
Operaciones Básicas
Operaciones BásicasOperaciones Básicas
Operaciones Básicas
 
Lenguaje de programacion C++ 2
Lenguaje de programacion C++ 2Lenguaje de programacion C++ 2
Lenguaje de programacion C++ 2
 
Unidad2
Unidad2Unidad2
Unidad2
 
Lenguajes de programacion c
Lenguajes de programacion cLenguajes de programacion c
Lenguajes de programacion c
 

Optimización de código lecciones 5,6,7,8 y 9

  • 1. Tema 3. Optimización de Código Lecciones 5,6,7,8 y 9
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Ejemplo de Optimización Global Variables Vivas A(1)<0 J>0 L:=2 L:=1 J:=2 K:=1 A(K+1):=A(K)+A(K+1); I:=J; L:=K*I K:=K+2 K<J {J,K} {J,K} {J,K} {A(1),J} {J}    
  • 35. Ejemplo de Optimización Global Eliminación de Variables Innecesarias A(1)<0 J>0 L:=2 L:=1 J:=2 K:=1 A(K+1):=A(K)+A(K+1); I:=J; L:=K*I K:=K+2 K<J {J,K} {J,K} {J,K} {A(1),J} {J}    Se puede eliminar L e I Las A(K),A(K+1) no se eliminan pues no se han podido considerar en el cálculo de variables vivas
  • 36. Ejemplo de Optimización Global Propagación de Constantes A(1)<0 J>0 J:=2 K:=1 A(K+1):=A(K)+A(K+1); K:=K+2 K<2 {A(1),J} {J:=2} Eliminar J>0 por no utilizarse y saltar al mismo bloque básico Eliminar A(1)<0 después de eliminar J>0 Se puede expandir el bucle
  • 37. Ejemplo de Optimización Global Expandir el Bucle J:=2 K:=1 A(1+1):=A(1)+A(1+1); A(2+1):=A(2)+A(2+1); A(2):=A(1)+A(2); A(3):=A(2)+A(3); Eliminar J y k por que no se utilizan y realizar los cálculos entre constantes
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.