GCC 12.1 est déjà sorti et ce sont ses nouvelles

Après un an de développement Publication du package de construction GCC 12.1, la première version significative sur la nouvelle branche GCC 12.x.

Dans le cadre du nouveau schéma de numérotation des versions, la version 12.0 a été utilisée pendant le développement, et peu de temps avant la sortie de GCC 12.1, la branche GCC 13.0 était déjà bifurquée, à partir de laquelle la prochaine version majeure de GCC 13.1 sera formée.

Nouvelles fonctionnalités principales de GCC 12.1

Dans cette nouvelle version qui est présentée, il est mis en évidence que sNous avons ajouté la prise en charge du format de débogage CTF, qui fournit un stockage compact d'informations sur les types C, les relations entre les fonctions et les symboles de débogage. Lorsqu'il est intégré dans des objets ELF, le format permet l'utilisation de tables de symboles EFL pour éviter la duplication des données.

En plus de cela, on note que les travaux se poursuivent pour étendre la prise en charge des futures normes C2X et C++23 pour C et C++ et qu'aussi le compatibilité avec les parties expérimentales des normes C++20 et C++23 ont été améliorés dans la bibliothèque standard C++.

Pour l'architecture x86, ajout d'une protection supplémentaire contre les vulnérabilités du processeur causées par l'exécution spéculative d'instructions après des sauts avant inconditionnels. Le problème provient du traitement préemptif des instructions suivant immédiatement l'instruction de saut en mémoire (SLS, Straight Line Speculation). L'option "-mharden-sls" est suggérée pour activer la protection.

Il est également souligné que ajout d'une définition pour l'utilisation de variables non initialisées à l'analyseur statique expérimental. Ajout de la prise en charge initiale de l'analyse du code assembleur sur les insertions en ligne. Amélioration du suivi de la mémoire. Code réécrit pour gérer les expressions de changement.

Ont été ajoutés 30 nouveaux appels à libgccjit, une bibliothèque partagée pour intégrer un générateur de code dans d'autres processus et l'utiliser pour la compilation de bytecode JIT en code natif.

D'autre part, il est souligné que le soutien au mécanisme CO-RE (Compile Once - Run Everywhere) au backend pour générer le bytecode BPF, qui permet de compiler le code des programmes eBPF pour le noyau Linux juste une fois et utiliser un chargeur universel spécial qui adapte le programme chargé au noyau actuel et aux types BTF (format de type BPF). CO-RE résout le problème de la portabilité des programmes eBPF compilés qui ne pouvaient auparavant être utilisés que dans la version du noyau pour laquelle ils ont été construits, car la position des éléments dans les structures de données varie d'une version à l'autre.

a été ajouté à Prise en charge du backend RISC-V pour les nouvelles extensions d'architecture de jeux d'instructions zba, zbb, zbc et zbs, ainsi que les extensions ISA pour les opérations cryptographiques vectorielles et scalaires. La prise en charge de la spécification RISC-V ISA 20191213 est fournie par défaut. Ajout de l'indicateur -mtune=thead-c906 pour activer les optimisations pour les noyaux T-HEAD c906.

Ajoutée prise en charge du type __int128_t/integer(kind=16) au backend de génération de code pour les GPU AMD basé sur la microarchitecture GCN. Il est possible d'utiliser jusqu'à 40 groupes de travail par unité de calcul (CU) et jusqu'à 16 fronts d'instructions (front d'onde, un ensemble de threads exécutés en parallèle par le moteur SIMD) par groupe. Auparavant, un seul front d'instruction par CU était autorisé.

Les indicateurs "-march", "-mptx" et "-march-map" ont été ajoutés au backend NVPTX, conçu pour la génération de code à l'aide de l'architecture du jeu d'instructions NVIDIA PTX (Parallel Thread Execution). Prise en charge implémentée pour PTX ISA sm_53, sm_70, sm_75 et sm_80. L'architecture par défaut est sm_30.

En plus de cela, il est souligné que correction d'un problème où le compilateur effectuait une recherche non qualifiée d'une expression d'opérateur dépendant au moment de la définition du modèle plutôt qu'au moment de l'instanciation. Cette solution correspond au comportement existant pour les expressions d'appel dépendantes.

Il convient de mentionner que le 23 mai, le projet célébrera les 35 ans depuis la formation de la première version de GCC. Finalement si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.