Se ha presentado el backend TPDE-LLVM, que funciona de 10 a 20 veces más rápido que LLVM en modo sin optimización.

Investigadores del Instituto Tecnológico de Múnich han publicado la herramienta TPDE y un backend de compilador basado en ella para LLVM — TPDE-LLVM, que proporciona la generación de código máquina para las arquitecturas x86-64 y AArch64 basándose en la representación intermedia de código LLVM-IR. En las pruebas, TPDE-LLVM demostró ser de 10 a 20 veces más rápido que el backend LLVM -O0 (generador de código sin optimizaciones) con el mismo nivel de rendimiento del código máquina resultante y un aumento de tamaño del 10 al 30%. Los avances del proyecto se han publicado bajo la licencia Apache 2.0.

TPDE-LLVM está diseñado desde el principio para garantizar la compilación con mínimas demoras y un nivel de calidad que se corresponde con el modo de compilación sin optimizaciones ('-O0'). El proyecto ofrece una utilidad para ejecutar tpde-llc de manera aislada, una biblioteca para integración en aplicaciones (por ejemplo, para implementar la funcionalidad de un compilador JIT) y parches para la integración con Clang y Flang.

Se ha presentado el backend TPDE-LLVM, que funciona de 10 a 20 veces más rápido que LLVM en modo sin optimización.

El proyecto puede utilizarse como un componente de compilación base para JIT o para crear compilaciones no optimizadas. TPDE-LLVM se centra exclusivamente en la velocidad de compilación y no intenta competir con los backends optimizados de LLVM, que trabajan de manera significativamente más lenta en comparación con TPDE-LLVM, pero permiten generar código máquina más rápido y compacto (aproximadamente 2 veces más rápido y 2 veces más pequeño).

TPDE-LLVM utiliza tres etapas para la generación de código:

  • Limpieza y preparación de la representación intermedia de LLVM;
  • Análisis de la información sobre ciclos y uso de variables;
  • Formación de código máquina.

Se ha presentado el backend TPDE-LLVM, que funciona de 10 a 20 veces más rápido que LLVM en modo sin optimización.

Cabe mencionar que con la participación de los autores de TPDE, ya se han agregado optimizaciones en las ramas LLVM 19 y 20, lo que ha permitido acelerar el funcionamiento del backend estándar de LLVM en un 18% en la plataforma x86-64 y en un 13% en la plataforma ARM64. Según los autores de TPDE, en el futuro se podría acelerar el backend de LLVM entre un 10 y un 20% con poco esfuerzo, pero un aumento adicional del rendimiento requerirá cambios significativos. A pesar de una reconfiguración considerable, será poco probable que se pueda acelerar el backend existente de LLVM en 10 veces.

En la actualidad, uno de los objetivos del proyecto TPDE es proporcionar soporte para la representación intermedia de código LLVM, generada por el frontend Clang en los modos de optimización «-O0» y «-O1». El procesamiento de la representación intermedia creada en el modo «-O2» no está garantizado debido a la falta de soporte en TPDE para operaciones vectoriales. Actualmente se admite parcialmente el código intermedio de Flang y el compilador Rust.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster