
LLVM 3.2 intègre le compilateur Clang 3.2 pour les langages C, C++ et Objective C, la librairie compiler-rt, le « low-level debugger LLDB », la librairie C++ libc++ et la JVM VMKit qui utilise LLVM pour la compilation statique et JIT (Just In Time).
Cette mouture apporte une nouvelle vectorisation des boucles, qui utilise des instructions avancées qui agissent sur des ensembles de valeurs plutôt qu’une seule valeur à la fois.
Un nouveau backend NVPTX vient remplacer le backend PTX (Parallel Thread eXecution) existant. Développé par Nvidia, NVPTX est basé sur CUDA et sur le compilateur OpenCL. Il sert d’intermédiaire entre le programme CUDA et le code binaire utilisé par la carte graphique.
Le compilateur Clang bénéficie d’une meilleure prise en charge de la norme C11 et C++11, des améliorations des fonctions de diagnostics, de gestion des commentaires et de la sécurité des types sous forme d’un attribut. Il introduit également le support de l’attribut tls_model, qui permet de spécifier le modèle mémoire utilisé pour les variables locales à un thread (_Thread-Local Storage_).
LLVM 3.2 dispose également du plugin DragonEgg GCC qui permet de charger des plugins et de prendre en charge les modèles de stockage en local. DragonEgg n’a désormais plus besoin de GCC pour être compilé avec le support LTO.
Le code source de LLVM 3.2 est téléchargeable sous une licence open source sur le site du projet.

Source : Notes de version
Et vous ?
