GCC 10.1-kompilatorn är här och dessa är dess viktigaste nyheter

Efter ett års utveckling lanseringen av den nya versionen publicerades från den fria uppsättningen GCC 10.1 kompilatorer, detta är den första betydelsefulla utgåvan i den nya grenen av GCC 10.x.

Enligt det nya numreringsschemat användes version 10.0 under utvecklingsprocessen och strax före lanseringen av GCC 10.1 var GCC 11.0-filialen redan grenad ut, på grundval av vilken nästa version kommer att bildas. betydelsen av GCC 11.1.

För dem som inte känner till GCC (GNU Compiler Collection) borde veta att eDetta är en uppsättning kompilatorer som skapats av GNU-projektet, är fri programvara och distribueras av Free Software Foundation (FSF) under GPL allmänhetens licens.

Dessa kompilatorer används ofta i de flesta Unix-system i en sådan grad att de anses vara en standard för Unix-operativsystem och derivat av öppen källkod och även proprietära, såsom Mac OS X.

GCC kräver en uppsättning applikationer som kallas binutils för att utföra uppgifter som att identifiera objektfiler eller få deras storlek för att kopiera, översätta eller skapa listor, länka dem eller ta bort onödiga symboler.

Vad är nytt i GCC 10.1

GCC 10.1 sticker ut för implementeringen av många innovationer i C ++ - språket utvecklat för C ++ 20-standarden, förbättringar relaterade till den framtida C-språkstandarden (C2x), nya optimeringar i kompilatorbackend och experimentellt stöd för statiskt analysläge.

För språk C, C ++ och Fortran implementeras OpenACC 2.6 parallell programmeringsspecifikation, som definierar nedladdningsverktyg på GPU: er och specialiserade processorer som NVIDIA PTX.

Implementeringen av standarden Öppna MP 5.0 (Open Multi-Processing), som definierar API och metoder för användning av parallella programmeringsmetoder i flerkärniga och hybridsystem (CPU + GPU / DSP) med delat minne och vektoriseringsenheter (SIMD), den är nästan klar.

Funktioner läggs till som villkorliga uttryck lastprivate, scan and loop directives, order and use_device_addr expressions. För OpenMP och OpenACC, tillsattes det stöd för nedladdning på XNUMX: e och XNUMX: e generationens AMD Radeon GPU: er.

För C-språk har funktionen "access" lagts till för att beskriva åtkomst till funktionen för objekt som skickas genom referens eller pekare och för att associera dessa objekt med heltalargument som innehåller information om storleken på objekten.

För att arbeta i kombination med "access" implementeras attributet "type" för att detektera fel åtkomst från användarfunktioner, till exempel när du skriver värden till ett område utanför gruppens gränser. Symver-attributet har också lagts till för att länka tecken i ELF-filen till specifika versionsnummer.

För C ++ har cirka 16 förändringar och innovationer implementerats utvecklad i C ++ 20-standarden inklusive nyckelordet "constinit" lägga till och implementera stöd för att utöka mallar «begrepp»Som låter dig definiera en uppsättning krav för mallparametrar, som under kompileringen begränsar den uppsättning argument som kan tas som mallparametrar.

också förbättrade interprocedurella optimeringar är markerade, IPA-SRA har redesignats för att fungera under bindning och tar bland annat bort oanvända beräknade och returnerade värden.

I "-O2" optimeringsläge är alternativet "-finline-funktioner" aktiverat, vilket omkonfigureras för mer kompakt kod än för prestanda.

De förbättrad länkoptimering (LTO), soch lade till en ny körbar fil lto-dump för att dumpa information på LTO-byte-kodade objektfiler. I LTO parallella pass är det möjligt att automatiskt bestämma antalet samtidiga exekveringsuppgifter och, om detta inte kan bestämmas, använda information om antalet CPU-kärnor som en parallelliseringsfaktor.

Optimeringsmekanismen förbättrades och är baserad på resultaten från Code Profiling (PGO), som genererar mer optimal kod baserat på en analys av egenskaperna för kodutförande.

Om du vill veta mer om det, Du kan kontrollera detaljerna i denna version 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.