
En quelques mots, LLVM 4.0 peut utiliser les informations de profilage avec ThinLTO (optimisation lors de l’édition des liens). Son élimination du code mort agressive supprime plus de code. Les coroutines sont arrivées dans le langage intermédiaire (LLVM IR) mais restent expérimentales (plus d’informations données lors du Developpers’ Meeting). LLVM 4.0 peut produire des binaires pour la plateforme Atmel AVR (après un développement sur GitHub, le code est intégré dans LLVM). L’éditeur de liens LLD a vu sa performance largement améliorée. Deux nouvelles conventions de passage d’arguments et de valeur de retour des fonctions ont été implémentées ; elles ont pour objectif de limiter le nombre d’éléments qui sortent des registres.
Côté C++, de nouvelles fonctionnalités du prochain standard (probablement numéroté C++17, mais dénommé C++1z pour le moment) sont intégrées à Clang. L’attribut diagnose_if peut être utilisé pour afficher des messages à l’utilisateur sous condition. De nouvelles optimisations par dévirtualisation des appels de méthode virtuelle ont été implémentées et peuvent être activées séparément. La gestion d’OpenCL a vu bon nombre de défauts corrigés.