AccueilActualités informatiqueLe compilateur LLVM 13.0 supporte désormais officiellement le frontal Fortran Flang

Le compilateur LLVM 13.0 supporte désormais officiellement le frontal Fortran Flang

L’infrastructure de compilation LLVM a été publiée en version 13.0, cette fois encore ponctuellement dans le cycle de publication semestriel. Les éditeurs soulignent les nouvelles fonctionnalités suivantes : le frontal Fortran Flang a été intégré dans les paquets binaires officiels du projet, dans lesquels il sera toujours inclus à partir de la version actuelle.

Le système de construction prend désormais en charge la configuration de multi-distributions, ce qui signifie que les développeurs peuvent, par exemple, exécuter une distribution avec les outils et une autre pour les bibliothèques. Il existe également de nouveaux développements dans l’application des flux de contrôle : Dans Windows Control-flow Enforcement, l’option -ehcontguard valide unwind-points d’entrée en sortie. Le programme les valide en même temps que le traitement des exceptions lors de la définition du contexte.

Sommaire

En plus de Flang, l’exécutable LLDB est maintenant inclus dans les paquets binaires officiels pré-construits de LLVM. Il est dit qu’il supporte entièrement l’accès aux registres sous AArch64 SVE ainsi que l’authentification des pointeurs sous AArch64. Ainsi, selon l’annonce de la version, LLDB permet le déroulement de la pile avec une adresse de retour signée. Dans la nouvelle version, LLDB prend en charge le débogage des programmes sur AArch64 Linux qui utilisent le marquage de la mémoire (MTE).

Les commandes de lecture et d’écriture des étiquettes mémoire ont été ajoutées (memory tag read ainsi que memory tag write), et la commande memory region doit remarquer quand le marquage de la mémoire est activé pour une région. Les erreurs de balises synchrones et asynchrones devraient pouvoir être détectées par LLDB à partir de maintenant.

Comme l’équipe LLVM l’annonce dans le message de sortie, elle a renommé le projet debuginfo-test en cross-project-tests, qui est désormais uniquement destiné aux informations de débogage : Il s’agit d’une différenciation en termes de contenu ; auparavant, le projet était destiné à combiner les tests de composants de différents projets. Le nouveau nom est utilisé dans LLVM_ENABLE_PROJECTS et remplace l’ancien « debuginfo-test ». Comme nouvelle cible pour les tests, check-cross-project-tests a été ajouté. Selon l’équipe, la cible existante check-debug-info-test demeure, apparemment réduite à l’exécution des tests d’information de débogage.

Les paquets sources de LLVM 13.0 comprennent de nombreux sous-projets tels que Clang 13, Flang 13 et libcxx 13, qui peuvent tous être trouvés et téléchargés à partir du dépôt GitHub de LLVM 13. Les améliorations apportées à Clang dans la version actuelle comprennent l’utilitaire Clang-format et l’analyseur statique, et le compilateur serait capable de gérer les instructions de conversion de boucle comme spécifié dans OpenMP 5.1. Des améliorations auraient été apportées en particulier au langage du noyau OpenCL dans Clang, où la valeur par défaut est actuellement la version C 1.2 (sauf si une autre version est spécifiée). Avec l’extension de fichier .clcpp, OpenCL devrait désormais prendre en charge le langage de programmation C++ dans les fichiers OpenCL.

De nombreux autres changements affectent l’API C, qui peut désormais, entre autres, ajouter des tampons d’objets ORCv2 directement à une couche d’objets. Des unités de matérialisation ORCv2 personnalisées peuvent désormais être créées et l’API C permet à ses utilisateurs de créer des API pour récupérer les couches de liaison d’une instance LLJIT. La liste détaillée de toutes les modifications apportées à l’interface C-API est incluse dans les notes de mise à jour. D’autres changements concernent l’outil LLVM, qui, entre autres, est maintenant disponible sans les options --build-id-link-{dir,input,output} doivent s’en passer.

Lire aussi

Considéré comme déprécié, l’ancien gestionnaire de passes pour le pipeline d’optimisation sera abandonné dans les prochaines versions, selon l’équipe du projet. Un certain nombre de changements ne sont qu’imminents lors de la poursuite des travaux sur LLVM 13 – l’équipe prévoit probablement d’apporter des changements à la cible WebAssembly, à la cible AVR et à la cible X86, entre autres.

Vous trouverez de plus amples informations dans l’annonce de la version 13 de LLVM. Tous les paquets et les notes supplémentaires peuvent être trouvés sur les pages GitHub du projet de compilateur, et pour ceux qui sont intéressés, il est également intéressant de jeter un coup d’œil au site Web du projet et à la page de téléchargement. Si vous cherchez une orientation dans la multitude de sous-projets et d’innovations, vous pouvez d’abord consulter la documentation.

Plus d'articles