LLVM IR incorpora tipo byte: Soporte nativo para operaciones de memoria sin procesar

2025-09-09

Un proyecto de Google Summer of Code 2025 en la Infraestructura del Compilador LLVM agregó con éxito un nuevo tipo byte al LLVM IR, representando valores de memoria sin procesar. Esto permite la implementación nativa de intrínsecos de memoria como memcpy, memmove y memcmp, corrige transformaciones no seguras y desbloquea nuevas optimizaciones, todo con un impacto mínimo en el rendimiento. El proyecto abordó la falta de un tipo para representar memoria sin procesar en LLVM, mejorando la corrección y optimización del compilador mediante el seguimiento de la procedencia del puntero y la representación precisa de bits de veneno. El manejo de Clang de los tipos de acceso a memoria sin procesar en C/C++ también se mejoró, junto con correcciones para varias optimizaciones no seguras.

Leer más
Desarrollo

Compilador LLVM Fortran Flang: Una década en desarrollo, oficialmente lanzado

2025-03-12

Después de casi una década de desarrollo, el compilador LLVM Fortran, Flang, finalmente ha sido oficialmente renombrado de "flang-new" a "flang". Este artículo relata el viaje de Flang, desde su desarrollo inicial por los Laboratorios Nacionales de EE. UU. y NVIDIA, hasta la adopción de la Representación Intermedia Multinivel (MLIR) de LLVM y su eventual integración en el proyecto LLVM. La creación de Flang tuvo como objetivo proporcionar un compilador Fortran a largo plazo y no propietario, mitigando los riesgos asociados con las fallas en un solo punto y fomentando el crecimiento de la comunidad Fortran. El viaje de Flang también muestra avances en la tecnología de compiladores, como el uso de MLIR para optimizar el código Fortran. Ahora maduro y estable, con el apoyo de proveedores como AMD, Flang destaca como una herramienta poderosa para los desarrolladores Fortran.

Leer más
Desarrollo

Lightstorm: Un Compilador Ruby Minimalista Aumenta el Rendimiento con MLIR

2024-12-31

El equipo DragonRuby desarrolló Lightstorm, un compilador Ruby minimalista destinado a mejorar el rendimiento de su motor de juego multiplataforma. Utilizando MLIR, Lightstorm traduce el bytecode de la máquina virtual mruby a código C, optimizando el rendimiento al eliminar las operaciones de carga/almacenamiento y las ramas en el bucle del intérprete de la VM. Los resultados de referencia muestran mejoras de rendimiento que van del 1% al 1200%, con una reducción media de aproximadamente el 30% en el tiempo de ejecución y los ciclos. Si bien actualmente solo admite un subconjunto de Ruby, el proyecto valida la viabilidad de la precompilación de código Ruby para obtener ganancias de rendimiento. Los planes futuros incluyen reemplazar los componentes C críticos del motor con código Ruby compilado.

Leer más
Desarrollo