GCC 12.1 har redan släppts och det här är nyheterna

Efter ett års utveckling Byggpaketet GCC 12.1 har släppts, den första betydande utgåvan i den nya GCC 12.x-grenen.

Under det nya versionsnumreringsschemat användes version 12.0 under utvecklingen, och kort före lanseringen av GCC 12.1 var GCC 13.0-grenen redan splittrad, från vilken nästa stora version av GCC 13.1 kommer att bildas.

GCC 12.1 Huvudnyheter

I denna nya version som presenteras framhålls att sLade till stöd för CTF-felsökningsformatet, som ger kompakt lagring av information om C-typer, relationer mellan funktioner och felsökningssymboler. När det är inbäddat i ELF-objekt tillåter formatet användning av EFL-symboltabeller för att undvika dataduplicering.

Utöver detta noteras att arbetet fortsätter med att utöka stödet för framtida C2X- och C++23-standarder för C och C++ och att också kompatibilitet med de experimentella delarna av standarderna C++20 och C++23 har förbättrats i C++ standardbiblioteket.

För arkitektur x86, lagt till ytterligare skydd mot sårbarheter i processorer orsakade av spekulativ exekvering instruktioner efter ovillkorliga hopp framåt. Problemet uppstår från den förebyggande behandlingen av instruktionerna som omedelbart följer hoppinstruktionen i minnet (SLS, Straight Line Speculation). Alternativet "-mharden-sls" föreslås för att aktivera skydd.

Det framhävs också att lagt till en definition för att använda oinitierade variabler till den experimentella statiska analysatorn. Lade till initialt stöd för att analysera assemblerkod i inline-inlägg. Förbättrad minnesspårning. Omskriven kod för att hantera switchuttryck.

Lades till 30 nya samtal till libgccjit, ett delat bibliotek för att bädda in en kodgenerator i andra processer och använda den för kompilering från JIT-bytekod till inbyggd kod.

Å andra sidan är det värt att notera att stöd för CO-RE-mekanismen (Build Once - Run Everywhere) till backend för att generera BPF-bytekod, som gör det möjligt att kompilera koden för eBPF-programmen för kärnan Linux bara en gång och använd en speciell universell loader som anpassar det inlästa programmet till den aktuella kärnan och BTF-typerna (BPF-typformat). CO-RE löser problemet med portabiliteten av kompilerade eBPF-program som tidigare bara kunde användas på kärnversionen de byggdes för, eftersom elements position i datastrukturer varierar från version till version.

har lagts till RISC-V backend-stöd för nya arkitekturtillägg av instruktionsuppsättningar zba, zbb, zbc och zbs, samt ISA-tillägg för vektor- och skalära kryptografiska operationer. Stöd för RISC-V ISA 20191213-specifikationen tillhandahålls som standard. Lade till flaggan -mtune=tune-c906 för att möjliggöra optimeringar för T-HEAD c906-kärnor.

Lagt till typ support __int128_t/integer(kind=16) till kodgenereringsbackend för AMD GPU:er baserat på GCN-mikroarkitekturen. Det är möjligt att använda upp till 40 arbetsgrupper per datorenhet (CU) och upp till 16 instruktionsfronter (vågfront, en uppsättning trådar som exekveras parallellt av SIMD Engine) per grupp. Tidigare var endast en instruktionskant per CU tillåten.

Indikatorerna "-march", "-mptx" och "-march-map" lades till i NVPTX backend, designad för kodgenerering med NVIDIA PTX (Parallel Thread Execution) instruktionsuppsättningsarkitektur. Implementerat stöd för PTX ISA sm_53, sm_70, sm_75 och sm_80. Standardarkitekturen är sm_30.

Utöver detta framhålls att fixade ett problem där kompilatorn skulle göra en okvalificerad sökning av ett beroende operatoruttryck vid malldefinitionstid i stället för vid instansieringstidpunkt. Denna lösning matchar det befintliga beteendet för beroende anropsuttryck.

Det är värt att nämna att den 23 maj kommer projektet att fira 35 år sedan bildandet av den första GCC-releasen. Till sist om du är intresserad av att veta mer om detkan du kontrollera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.