Los desarrolladores de LLVM están discutiendo habilitar la compilación de ClangIR, una nueva representación intermedia para el compilador Clang, de forma predeterminada. Si bien no se pretende habilitar su *uso* de forma predeterminada, la propuesta tiene como objetivo incluir el proceso de compilación de ClangIR dentro de la compilación estándar de LLVM.
ClangIR, que utiliza MLIR y opera a un nivel superior a LLVM IR, está diseñado para preservar más semántica del código fuente C/C++. Esta preservación tiene como objetivo mejorar los diagnósticos, el análisis de código y las optimizaciones de rendimiento. Actualmente, ClangIR está integrado en el proyecto, pero no incluido en la configuración de compilación predeterminada. Habilitar su compilación haría de MLIR una dependencia predeterminada de Clang.
La principal preocupación al habilitar la compilación predeterminada es un aumento significativo en el tiempo de compilación. Las estimaciones sugieren que los tiempos de compilación podrían más que duplicarse. Otros problemas incluyen la falta de un objetivo “Microsoft” para la compatibilidad con Windows y una mayor duración para las pruebas de integración continua (CI). La propuesta actual se centra únicamente en compilar ClangIR de forma predeterminada, no en activar su uso, lo que requiere la bandera del compilador `-fclangir`.
A pesar de estas preocupaciones, los desarrolladores creen que ClangIR ofrece beneficios, que incluyen una optimización y un análisis estático mejorados. La representación basada en MLIR también abre posibilidades para una mejor descarga de GPU/dispositivos, específicamente en la reducción del código a SPIR-V/Vulkan y el soporte de beneficios multi-dispositivo. Se ha creado un hilo de discusión en LLVM Discourse y una solicitud de extracción (RFC) para facilitar la discusión sobre la propuesta.
Leer la cobertura original
💬 Comentarios
📜 Política de comentarios