Compilatorul GCC 10.1 este aici și acestea sunt principalele sale noutăți

După un an de dezvoltare lansarea noii versiuni a fost publicată din setul liber Compilatoare GCC 10.1, aceasta fiind prima versiune semnificativă din noua ramură a GCC 10.x.

Conform noii scheme de numerotare a versiunilor, versiunea 10.0 a fost utilizată în timpul procesului de dezvoltare și cu puțin timp înainte de lansarea GCC 10.1, ramura GCC 11.0 era deja ramificată, pe baza căreia va fi formată următoarea versiune. .

Pentru cei care nu sunt familiarizați cu GCC (GNU Compiler Collection) ar trebui să știe că eAcesta este un set de compilatoare create de proiectul GNU, este software gratuit și este distribuit de Free Software Foundation (FSF) sub licența publică generală GPL.

Aceste compilatoare sunt utilizate pe scară largă pe majoritatea sistemelor Unix într-o asemenea măsură încât sunt considerate un standard pentru sistemele de operare Unix și derivatele open source și, de asemenea, proprietare, cum ar fi Mac OS X.

GCC necesită setul de aplicații cunoscute sub numele de binutils pentru a efectua sarcini precum identificarea fișierelor obiect sau obținerea dimensiunii acestora pentru copiere, traducere sau crearea listelor, legarea acestora sau eliminarea simbolurilor inutile.

Noutăți în GCC 10.1

GCC 10.1 se remarcă prin implementarea multor inovații ale limbajului C ++ dezvoltat pentru standardul C ++ 20, îmbunătățiri legate de viitorul standard de limbaj C (C2x), noi optimizări în backend-urile compilatorului și suport experimental pentru modul de analiză statică.

Pentru limbajele C, C ++ și Fortran, este implementată specificația de programare paralelă OpenACC 2.6, care definește instrumentele de descărcare pe GPU-uri și procesoare specializate precum NVIDIA PTX.

Implementarea standardului Deschideți MP 5.0 (Open Multi-Processing), care definește API-ul și metodele de utilizare a metodelor de programare paralele în sisteme multi-core și hibride (CPU + GPU / DSP) cu memorie partajată și unități de vectorizare (SIMD), este aproape terminat.

Funcțiile sunt adăugate ca expresii condiționale directive lastprivate, scanare și buclă, ordine și expresii use_device_addr. Pentru OpenMP și OpenACC, a fost adăugat suport pentru descărcare pe GPU-urile AMD Radeon din a XNUMX-a și a XNUMX-a generație.

Pentru limbajele C, funcția „acces” a fost adăugată pentru a descrie accesul la funcția obiectelor trecute prin referință sau pointer și pentru a asocia aceste obiecte cu argumente întregi care conțin informații despre dimensiunea obiectelor.

Pentru a lucra împreună cu „acces”, atributul „tip” este implementat pentru a detecta accesul incorect din funcțiile utilizatorului, de exemplu, atunci când scrieți valori într-o zonă în afara limitelor matricei. Atributul symver a fost adăugat și pentru a lega caractere din fișierul ELF la numere de versiune specifice.

Pentru C ++, au fost implementate aproximativ 16 modificări și inovații dezvoltat în standardul C ++ 20 inclusiv cuvântul cheie „constinit” adăugarea și implementarea suportului pentru extinderea șabloanelor «concept»Acestea vă permit să definiți un set de cerințe pentru parametrii șablonului, care în timpul compilării limitează setul de argumente care pot fi luate ca parametri șablon.

de asemenea sunt evidențiate optimizări interprocedurale îmbunătățite, IPA-SRA a fost reproiectat pentru a funcționa în timpul legării și, printre altele, elimină acum valorile calculate și returnate neutilizate.

În modul de optimizare „-O2”, este activată opțiunea „-finline-functions”, care este reconfigurată pentru un cod mai compact decât pentru performanță.

The optimizare îmbunătățită a legăturilor (LTO), sși a adăugat un nou fișier executabil lto-dump pentru a arunca informații pe fișiere obiect codate în octet LTO. În trecerile paralele LTO, este posibil să se determine automat numărul de sarcini de execuție simultane și, dacă acest lucru nu poate fi determinat, să se utilizeze informații despre numărul de nuclee CPU ca factor de paralelizare.

Mecanismul de optimizare a fost îmbunătățit și se bazează pe rezultatele profilării codului (PGO), care generează un cod mai optim pe baza unei analize a caracteristicilor de execuție a codului.

Dacă doriți să aflați mai multe despre asta, puteți verifica detaliile acestei versiuni În următorul link. 


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.