LLVM IR gagne un type octet : prise en charge native des opérations sur la mémoire brute

2025-09-09

Un projet Google Summer of Code 2025 au sein de l’infrastructure du compilateur LLVM a permis d’ajouter avec succès un nouveau type octet à l’IR LLVM, représentant les valeurs de mémoire brute. Cela permet la mise en œuvre native d’intrinsèques mémoire tels que memcpy, memmove et memcmp, corrige les transformations non valides et débloque de nouvelles optimisations, le tout avec un impact minimal sur les performances. Le projet a résolu le problème de longue date de LLVM, à savoir l’absence de type permettant de représenter la mémoire brute, améliorant ainsi l’exactitude et l’optimisation du compilateur grâce au suivi de la provenance des pointeurs et à une représentation précise des bits empoisonnés. La gestion par Clang des types d’accès à la mémoire brute en C/C++ a également été améliorée, ainsi que les correctifs apportés à plusieurs optimisations non valides.

Lire plus
Développement

Compilateur LLVM Fortran Flang : Dix ans de développement, officiellement lancé

2025-03-12

Après près de dix ans de développement, le compilateur LLVM Fortran, Flang, a finalement été officiellement renommé de « flang-new » en « flang ». Cet article retrace le parcours de Flang, depuis son développement initial par les laboratoires nationaux américains et NVIDIA, jusqu’à l’adoption de la représentation intermédiaire multiniveau (MLIR) de LLVM et son intégration finale au projet LLVM. La création de Flang visait à fournir un compilateur Fortran à long terme et non propriétaire, atténuant les risques liés aux points de défaillance uniques et favorisant la croissance de la communauté Fortran. Le parcours de Flang illustre également les progrès de la technologie des compilateurs, tels que l’utilisation de MLIR pour optimiser le code Fortran. Désormais mature et stable, avec le soutien de fournisseurs comme AMD, Flang s’impose comme un outil puissant pour les développeurs Fortran.

Lire plus
Développement

Lightstorm : Un compilateur Ruby minimaliste améliore les performances grâce à MLIR

2024-12-31

L'équipe DragonRuby a développé Lightstorm, un compilateur Ruby minimaliste visant à améliorer les performances de son moteur de jeu multiplateforme. Utilisant MLIR, Lightstorm traduit le bytecode de la machine virtuelle mruby en code C, optimisant les performances en éliminant les opérations de chargement/stockage et les branchements dans la boucle d'interprétation de la VM. Les résultats des benchmarks montrent des améliorations de performances allant de 1% à 1200%, avec une réduction moyenne d'environ 30% du temps d'exécution et des cycles. Bien qu'il ne prenne actuellement en charge qu'un sous-ensemble de Ruby, le projet valide la faisabilité de la précompilation du code Ruby pour des gains de performances. Les plans futurs incluent le remplacement des composants C critiques du moteur par du code Ruby compilé.

Lire plus
Développement Compilateur Ruby