Der GCC 10.1-Compiler ist da und dies sind seine wichtigsten Neuerungen

Nach einem Jahr der Entwicklung Die Veröffentlichung der neuen Version wurde veröffentlicht aus dem freien Satz GCC 10.1-CompilerDies ist die erste bedeutende Veröffentlichung in der neuen Niederlassung von GCC 10.x.

Gemäß dem neuen Versionsnummerierungsschema wurde während des Entwicklungsprozesses Version 10.0 verwendet, und kurz vor der Veröffentlichung von GCC 10.1 wurde der Zweig GCC 11.0 bereits verzweigt, auf dessen Grundlage die nächste Version gebildet wird. Bedeutung von GCC 11.1.

Für diejenigen, die mit GCC (GNU Compiler Collection) nicht vertraut sind, sollten Sie wissen, dass eDies ist eine Reihe von Compilern, die vom GNU-Projekt erstellt wurdenist freie Software und wird von der Free Software Foundation (FSF) unter der GPL General Public License vertrieben.

Diese Compiler sind auf den meisten Unix-Systemen weit verbreitet in einem solchen Ausmaß, dass sie als Standard für Unix-Betriebssysteme und Derivate von Open Source und auch proprietär wie Mac OS X gelten.

GCC erfordert eine Reihe von Anwendungen, die als binutils bezeichnet werden, um Aufgaben wie das Identifizieren von Objektdateien oder das Abrufen ihrer Größe zum Kopieren, Übersetzen oder Erstellen von Listen, Verknüpfen oder Entfernen unnötiger Symbole auszuführen.

Was ist neu in GCC 10.1?

GCC 10.1 zeichnet sich durch die Implementierung vieler Innovationen der C ++ - Sprache aus entwickelt für den C ++ 20 Standard, Verbesserungen in Bezug auf den zukünftigen C Sprachstandard (C2x), Neue Optimierungen in Compiler-Backends und experimentelle Unterstützung für den statischen Analysemodus.

Für die Sprachen C, C ++ und Fortran ist die OpenACC 2.6-Spezifikation für die parallele Programmierung implementiertHiermit werden Download-Tools für GPUs und spezialisierte Prozessoren wie NVIDIA PTX definiert.

Die Umsetzung des Standards Öffnen Sie MP 5.0 (Open Multi-Processing), das die API und Methoden für die Verwendung paralleler Programmiermethoden in Mehrkern- und Hybridsystemen (CPU + GPU / DSP) mit gemeinsam genutztem Speicher und Vektorisierungseinheiten (SIMD) definiert; es ist fast fertig.

Features werden als bedingte Ausdrücke hinzugefügt lastprivate-, scan and loop-Direktiven, order- und use_device_addr-Ausdrücke. Für OpenMP und OpenACCwurde hinzugefügt Unterstützung für den Download auf AMD Radeon-GPUs der XNUMX. und XNUMX. Generation.

Für C-Sprachen wurde die Funktion "Zugriff" hinzugefügt, um den Zugriff auf die Funktion von Objekten zu beschreiben, die als Referenz oder Zeiger übergeben werden, und um diese Objekte mit ganzzahligen Argumenten zu verknüpfen, die Informationen über die Größe der Objekte enthalten.

Um in Verbindung mit "Zugriff" zu arbeiten, wird das Attribut "Typ" implementiert, um einen falschen Zugriff von Benutzerfunktionen zu erkennen, beispielsweise wenn Werte in einen Bereich außerhalb der Grenzen des Arrays geschrieben werden. Das Symver-Attribut wurde ebenfalls hinzugefügt, um Zeichen in der ELF-Datei mit bestimmten Versionsnummern zu verknüpfen.

Für C ++ wurden ungefähr 16 Änderungen und Innovationen implementiert entwickelt im C ++ 20 Standard einschließlich des Schlüsselworts "constinit" Unterstützung für das Erweitern von Vorlagen hinzugefügt und implementiert «konzept»Damit können Sie eine Reihe von Anforderungen für Vorlagenparameter definieren, die während der Kompilierung die Anzahl der Argumente einschränken, die als Vorlagenparameter verwendet werden können.

Auch, Verbesserte interprozedurale Optimierungen werden hervorgehoben. IPA-SRA wurde neu gestaltet, um während des Bindens zu funktionieren, und entfernt jetzt unter anderem nicht verwendete berechnete und zurückgegebene Werte.

Im Optimierungsmodus "-O2" ist die Option "-finline-functions" aktiviert, die für kompakteren Code als für die Leistung neu konfiguriert wird.

Es hebt auch die Enhanced Link Optimization (LTO), sund fügte eine neue ausführbare Datei lto-dump hinzu, um Informationen zu sichern auf LTO-Byte-codierten Objektdateien. In LTO-Parallel-Durchläufen kann die Anzahl der gleichzeitigen Ausführungsaufgaben automatisch ermittelt werden. Wenn dies nicht ermittelt werden kann, werden Informationen zur Anzahl der CPU-Kerne als Parallelisierungsfaktor verwendet.

Der Optimierungsmechanismus wurde verbessert und basiert auf den Ergebnissen des Code Profiling (PGO), das auf der Grundlage einer Analyse der Merkmale der Codeausführung einen optimaleren Code generiert.

Wenn Sie mehr darüber wissen möchten, Sie können die Details dieser Version überprüfen im folgenden Link. 


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.