Sortie de LLVM et Clang 4.0
Avec un support expérimental des coroutines dans LLVM, de nouvelles fonctionnalités C++17 pour Clang et bien plus

Le , par dourouc05, Responsable Qt
Comme tous les six mois, voici une nouvelle version de LLVM, l’infrastructure de compilateur, notamment utilisée par Clang. Elle est numérotée 4.0, suite aux changements effectués dans les conventions du projet : auparavant, les versions successives étaient obtenues en ajoutant 0.1 (par exemple, la 3.9 a succédé à la 3.8) ; désormais, elles le seront par incrément de 1.0 (dans six mois sortira LLVM 5.0). En effet, le projet LLVM cherche à sortir une version tous les six mois, peu importe les fonctionnalités qui y ont trouvé leur place (et, pour les utilisateurs de l’API interne de LLVM et Clang, passer d’une version à l’autre pose presque toujours des problèmes). Certes, les versions 2.0 et 3.0 coïncidaient avec des changements majeurs qui cassaient la rétrocompatibilité de manière marquée, mais ce n’était pas tellement voulu (ces versions suivaient les 1.9 et 2.9, respectivement).

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.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Offres d'emploi IT
Ingénieur conception électrique / électronique H/F
Safran - Ile de France - Villaroche
Ingénieur système de commande de vol H/F
Safran - Ile de France - Massy (91300)
Responsable de lot / architecte fpga H/F
Safran - Ile de France - Éragny (95610)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil