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.

Développement