- LLVM est une infrastructure de compilation rendue publique en 2003, un projet lancé par Chris Lattner pour améliorer les problèmes des compilateurs existants et de GCC.
- Définition d’une représentation intermédiaire (intermediate representation) afin de réutiliser chaque composant du compilateur
- En ajoutant un nouveau langage via le front end, il devient possible de réutiliser tel quel l’optimiseur et le back end
- Il est aussi possible d’utiliser uniquement le front end pour écrire des fonctionnalités d’analyse statique de programmes
- Une tentative d’intégration de LLVM dans GCC a échoué face à l’opposition de la communauté
- Apple a adopté LLVM et utilise Clang, développé à la place de GCC
- Chris Lattner a aussi développé Swift chez Apple, utilisé comme langage principal des plateformes Apple à la place d’Objective-C.
3 commentaires
En pratique, j’ai l’impression que le standard de facto, ce n’est plus LLVM mais plutôt clang. Désormais, même de très grands projets le prennent en charge.
clang et LLVM n’ont pas vraiment des usages différents ?
Il s’agissait de dire que
clang, le frontend qui utilisellvm, est désormais employé dans plusieurs projets open source à la place degcc. Ce n’est pas une comparaison entre les deux. Vous pouvez sans doute regarder la partie 2 sur la sortie declang: https://joone.net/2023/01/…