Un ingeniero ha identificado y corregido una regresión de rendimiento del 25% en el compilador LLVM al generar código para procesadores RISC-V. El problema surgió tras una reciente modificación en LLVM que, aunque optimizaba ciertas conversiones de punto flotante, inadvertidamente rompió una optimización secundaria crucial. Esta ruptura obligó al compilador a utilizar una operación de división de doble precisión (fdiv.d) en lugar de una de precisión simple (fdiv.s), lo que incrementó significativamente el tiempo de ejecución en un benchmark específico, según datos de Igalia. El ingeniero, a través de un análisis detallado con herramientas como llvm-mca, rastreó el origen del problema y propuso una solución que restaura la optimización original, volviendo a utilizar la operación de división de precisión simple y eliminando la regresión de rendimiento. La corrección, ya implementada, implica una extensión a la función getMinimumFPType para reconocer patrones específicos y optimizar el proceso de conversión. El incidente destaca la importancia de pruebas exhaustivas al realizar cambios en compiladores y la complejidad de optimizar el rendimiento en arquitecturas específicas como RISC-V.
