Optimizacion de codigoVersion en ligne optimización de bucles: la variable i sólo se utiliza para calcular la variable par Esmeralda Valencia 1 ¿Qué es optimizacion de codigo? a Es el conjunto de fases de un compilador que transforman un fragmento de código en otro fragmento con un comportamiento equivalente y que se ejecuta de forma más eficiente b Lenguajes de programación de alto nivel, que abstraen estos detalles de la plataforma 2 ¿Cuantos tipos de optimizaciones hay? a 6 b 4 3 En que momento se realiza la optimizacion: a Fragmentando entrada y salida de una parte del codigo. b Reestructurando el código de tal forma que el nuevo código generado tenga mayores beneficios. 4 Optimizaciones que no modifican la estructura. Son: a Bloque básico es un fragmento de código que tiene una única entrada y salida, y cuyas instrucciones se ejecutan secuencialmente. (Implicaciones) b 1. Eliminación de sub-expresiones comunes. 2. Eliminación de código muerto. 3. Renombrar variables temporales. 4. Intercambio de sentencias independientes adyacentes. 5 En que consiste las transformaciones algebraicas: a Las sentencias de un bloque básicoconstituyen una unidad sobre la cual se aplican las optimizaciones locales. b Son aquellas transformaciones quesimplifican expresiones y/o reemplazan operaciones costosas de la máquinapor otras menos costosas. 6 Selecciona los 4 optimizaciones peephole mas usuales: a 1. Eliminación de instrucciones redundantes. 2. Optimizaciones en el flujo de control. 3. Simpificaciones algebraicas. 4. Uso de instrucciones máquina específicas. b 1. Eliminacio 2. Renovaion 3.Cierre 4. Manteniminto 7 Las técnicas de optimización global se basa en : a Combinaciones distintas de sentencias decódigo intermedio con sus correspondientes equivalencias. b Análisisglobal de flujo de datos. Este análisis se realiza para el código de todo elprograma, es decir, a lo largo de los distintos bloques básicos que forman elcódigo del programa. 8 Las principales optimizaciones que se realizan en los bucles son: a 1. Movimiento de código. 2. Eliminación de variables inducidas. 3. Sustitución de variables costosas por otras menos costosas. b 1. Movimiento entrada salida 2. Agregacion de codigo 3. Manetimiento del codigo 9 ¿Que es el enlace UD? a En función de que el análisis se realice hacia adelante (de la primerainstrucción de código a la última) b Enlace uso-definición, trata de determinar qué definicionesalcanzan un punto dado de un programa. 10 Optimizaciones de bucles con menos importancia: a 1. Expansión de código (loop unrolling). 2. Unión de bucles (loop jamming). b 1. Eliminacion de expresion 2. Union de programas