Le compilateur LLVM 2.4 concurrence GCC

Au fil des versions, LLVM devient une alternative sérieuse à GCC, l’aspect machine virtuelle en plus

Le compilateur C/C++ LLVM (Low Level Virtual Machine) arrive en mouture 2.4. Cet outil est disponible sous une licence open source plus permissive que la GPL, utilisée pour le GCC. Ceci lui vaut d’être parfois préféré à GCC, en particulier au sein de la communauté BSD.

Il supporte de multiples architectures processeur : x86 (32 bits et 64 bits), PowerPC (32 bits et 64 bits), ARM (32 bits et code Thumb) et SPARC. D’autres sont reconnues de façon expérimentale : Alpha, IA-64, MIPS et le Cell. Au besoin, du code MSIL (utilisable sous l’environnement d’exécution .NET) peut être généré.

LLVM utilise un jeu d’instructions interne de type RISC (code IR). Il peut exécuter le code sans compilation préalable, comme le fait une machine virtuelle. Il dispose alors d’un compilateur just-in-time pour les architectures x86 (32 bits et 64 bits) et PowerPC (32 bits et 64 bits).

Cette solution est donc complète, le code étant toutefois moins optimisé qu’avec le GCC. La nouvelle version améliore les temps de compilation (jusqu’à 30 %) et la qualité du code généré. Elle peut également créer du code pour les processeurs embarqués PIC16. Le support des langages Objective C et Objective C++ est en net progrès.

Enfin, le projet VMKit offre d’adapter les machines virtuelles Java et .NET au moteur de LLVM. Il transforme le bytecode Java ou MSIL en code IR, directement utilisable ou compilable par LLVM. Ce projet est maintenant disponible en version 0.24.