%0 Journal Article %A Vázquez Rodríguez, Elena %T Análisis del impacto de la evolución de la infraestructura de compilación LLVM en la ofuscación de código fuente %D 2025 %U http://hdl.handle.net/10498/38384 %X 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 el desarrollo acelerado de infraestructuras de compilación más robustas y flexibles. Sin embargo, esta evolución constante dificulta el seguimiento detallado de los cambios introducidos en cada nueva versión, lo que puede afectar negativamente tanto la gestión de optimizaciones como la eficiencia global del proceso de compilación. Con el objetivo de analizar de forma sistemática la evolución de la infraestructura de compilación LLVM, este trabajo presenta un estudio comparativo exhaustivo de sus versiones, desde la 3.9 hasta la 19.1, incluyendo la última revisión disponible de cada una. Para ello, se emplea el conjunto de pruebas Polybench como base, compilando un binario específico para cada versión de LLVM mediante la aplicación de sus distintos passes y explorando sus posibles combinaciones. Este enfoque permite clasificar los passes en sus correspondientes pass managers, así como identificar anidaciones y un primer conjunto de passes combinables en cada versión del compilador. Posteriormente, y con el fin de evaluar el impacto práctico de las combinaciones de passes identificadas, se llevan a cabo pruebas de ofuscación sobre los binarios generados, usando como métrica el número de instrucciones en ensamblador. Estas pruebas son fácilmente adaptables y permiten determinar qué configuraciones y versiones de LLVM ofrecen una mayor resistencia a la ingeniería inversa o una mayor alteración del flujo de control, añadiendo así una dimensión adicional de análisis centrada en la robustez y aplicabilidad de los passes en contextos de protección de software. Para garantizar la reproducibilidad y aislamiento de los entornos experimentales, se construyó un conjunto de contenedores Docker personalizados, cada uno con la instalación exacta y básica de una versión específica de LLVM. Los resultados muestran que la evolución de LLVM ha priorizado una mayor eficiencia en el proceso de compilación, reduciendo la cantidad de passes necesarios mediante el nuevo pass manager, que además proporciona un mayor control y modularidad en su ejecución. En conjunto, este estudio ofrece una visión clara, detallada y reproducible de la evolución estructural y funcional de LLVM, destacando los cambios en sus capacidades de ofuscación y su utilidad en procesos avanzados. %K Infraestructura de compilación %K Evolución del software %K Compiladores %K Optimización software %K LLVM %K Optimizaciones de código %K Ofuscación %~ Universidad de Cádiz