Evolución de la infraestructura de compilación LLVM según las optimizaciones de código disponibles

Identificadores
Statistics
Metadata
Show full item recordDate
2025Department
Ingeniería InformáticaSource
Actas de las XXIX Jornadas de Ingeniería del Software y Bases de Datos (JISBD 2025). Sistedes (2025)Abstract
La rápida expansión de las arquitecturas de hardware ha incrementado significativamente la complejidad de la optimización del software, lo que ha impulsado la evolución de las infraestructuras de compilación. Sin embargo, estos avances son tan rápidos que dificultan el seguimiento de los cambios introducidos en cada actualización, afectando la gestión de optimizaciones y la eficiencia del proceso de compilación. Para analizar la evolución de la infraestructura de compilación LLVM, este artículo presenta una comparación exhaustiva de sus distintas versiones, desde la 3.9 hasta la 19.1, incluyendo la última revisión disponible de cada una. Para ello, con el benchmark Polybench, se compila un binario para cada versión de LLVM, aplicando sus diferentes passes u optimizaciones y explorando sus posibles combinaciones. Este enfoque permite clasificar los passes y sus pass managers, así como analizar sus restricciones y dependencias en cada versión. Asimismo, para garantizar la reproducibilidad del estudio, se configura un entorno Docker que contiene cada una de las versiones evaluadas. Los resultados muestran que la evolución de LLVM ha priorizado la eficiencia en la compilación, simplificando la aplicación de passes mediante la introducción del nuevo pass manager. Este gestor ofrece un mayor número de funcionalidades con una menor cantidad de passes, optimizando el proceso. Así, el estudio proporciona una visión clara y detallada de la evolución de LLVM, resaltando los cambios en sus capacidades de optimización y la organización de su infraestructura de compilación.





