Il compilatore GCC 10.1 è qui e queste sono le sue principali novità

Dopo un anno di sviluppo è stato pubblicato il rilascio della nuova versione dal set gratuito Compilatori GCC 10.1, essendo questa la prima release significativa nel nuovo ramo di GCC 10.x.

Secondo il nuovo schema di numerazione delle versioni, la versione 10.0 è stata utilizzata durante il processo di sviluppo e poco prima del rilascio di GCC 10.1, il branch GCC 11.0 era già ramificato, sulla base del quale verrà formata la prossima versione. Significato di GCC 11.1 .

Per coloro che non hanno familiarità con GCC (GNU Compiler Collection) dovrebbero sapere che eQuesto è un insieme di compilatori creati dal progetto GNU, è un software libero ed è distribuito dalla Free Software Foundation (FSF) sotto la licenza pubblica generale GPL.

Questi compilatori sono ampiamente usati sulla maggior parte dei sistemi Unix a tal punto da essere considerati uno standard per i sistemi operativi Unix e derivati ​​dell'open source e anche proprietari, come Mac OS X.

GCC richiede l'insieme di applicazioni note come binutils per eseguire attività come identificare file oggetto o ottenere la loro dimensione per copiare, tradurre o creare elenchi, collegarli o rimuovere simboli non necessari.

Novità di GCC 10.1

GCC 10.1 si distingue per l'implementazione di molte innovazioni del linguaggio C ++ sviluppato per lo standard C ++ 20, miglioramenti relativi al futuro standard del linguaggio C (C2x), nuove ottimizzazioni nei backend del compilatore e supporto sperimentale per la modalità di analisi statica.

Per i linguaggi C, C ++ e Fortran, è implementata la specifica di programmazione parallela OpenACC 2.6, che definisce gli strumenti di download su GPU e processori specializzati come NVIDIA PTX.

L'implementazione dello standard Apri MP 5.0 (Open Multi-Processing), che definisce l'API e i metodi per l'utilizzo di metodi di programmazione parallela in sistemi multi-core e ibridi (CPU + GPU / DSP) con memoria condivisa e unità di vettorizzazione (SIMD), è quasi finito.

Le funzionalità vengono aggiunte come espressioni condizionali lastprivate, direttive di scansione e ciclo, espressioni order ed use_device_addr. Per OpenMP e OpenACC, è stato aggiunto supporto per il download su GPU AMD Radeon di quarta e quinta generazione.

Per i linguaggi C, è stata aggiunta la funzione "access" per descrivere l'accesso alla funzione di oggetti passati per riferimento o puntatore e per associare questi oggetti ad argomenti interi contenenti informazioni sulla dimensione degli oggetti.

Per lavorare in combinazione con "access", l'attributo "type" è implementato per rilevare l'accesso errato dalle funzioni utente, ad esempio, quando si scrivono valori in un'area al di fuori dei limiti dell'array. L'attributo symver è stato aggiunto anche per collegare i caratteri nel file ELF a numeri di versione specifici.

Per C ++, sono state implementate circa 16 modifiche e innovazioni sviluppato nello standard C ++ 20 inclusa la parola chiave "constinit" aggiunto e implementato il supporto per l'espansione dei modelli «concetto»Ciò consente di definire una serie di requisiti per i parametri del modello, che durante la compilazione limitano la serie di argomenti che possono essere presi come parametri del modello.

anche sono evidenziate ottimizzazioni interprocedurali potenziate, IPA-SRA è stato riprogettato per funzionare durante il bind e, tra le altre cose, ora rimuove i valori calcolati e restituiti non utilizzati.

Nella modalità di ottimizzazione "-O2" è abilitata l'opzione "-finline-functions", che è riconfigurata per un codice più compatto che per le prestazioni.

Sottolinea anche il ottimizzazione avanzata dei collegamenti (LTO), se aggiunto un nuovo file eseguibile lto-dump per scaricare le informazioni su file oggetto LTO codificati in byte. Nei passaggi paralleli LTO, il numero di attività di esecuzione simultanee può essere determinato automaticamente e, se non può essere determinato, utilizzare le informazioni sul numero di core della CPU come fattore di parallelizzazione.

Il meccanismo di ottimizzazione è stato migliorato e si basa sui risultati del Code Profiling (PGO), che genera un codice più ottimale sulla base di un'analisi delle caratteristiche dell'esecuzione del codice.

Se vuoi saperne di più, puoi controllare i dettagli di questa versione nel seguente link 


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.