En informática , una transformación habilitadora es una optimización del compilador que aumenta la eficacia de otras optimizaciones del compilador. Dicha optimización puede o no mejorar el rendimiento del programa por sí misma, pero también altera la estructura del programa de tal manera que otras optimizaciones pueden producir resultados superiores. Las transformaciones habilitadoras típicas incluyen:
- Expansión en línea : al insertar el cuerpo de una función en lugar de su sitio de llamada, una gran colección de optimizaciones intraprocedimentales como eliminación de código muerto , movimiento de código invariante de bucle y eliminación de variable de inducción pueden aprovechar la información tanto del llamador como del llamado.
- Sesgo de bucle : al "sesgar" la forma lógica de una matriz, esta optimización de bucle puede (cuando se combina con el intercambio de bucle ) eliminar las dependencias transportadas por el bucle , lo que permite paralelizar un bucle interno. [ cita requerida ]
- La anulación de la conmutación de bucles mueve los invariantes de bucle fuera de un bucle, lo que reduce la cantidad de ramas condicionales en cada bucle. [1]
Referencias
- ^ Keith Cooper; Linda Torczon (2004). Ingeniería de un compilador. Elsevier. pp. 520–. ISBN 978-1-55860-698-2.