Zum Hauptinhalt Zur Navigation

Compilersammlung: GCC 5.1 erscheint mit Jit-Kompilierung

Die stabile Version 5.1 von GCC bringt zusätzlich zum neuen Namensschema eine Bibliothek für Jit-Compiler. Unterstützt werden OpenMP 4.0 und OpenACC. Als Standard wird nun außerdem C11 verwendet, C++11 wird voll unterstützt.
/ Sebastian Grüner
5 Kommentare News folgen (öffnet im neuen Fenster)
Mit GCC 5.1 lassen sich Jit-Compiler umsetzen. (Bild: GCC)
Mit GCC 5.1 lassen sich Jit-Compiler umsetzen. Bild: GCC

Mit einem neuen Versionsschema(öffnet im neuen Fenster) ist die aktuelle Version der GNU Compiler Collection erschienen. Die nun veröffentlichte erste stabile Version des 5er-Zweigs(öffnet im neuen Fenster) trägt die Nummer 5.1, ein für den Sommer geplantes Updates wird als 5.2 erscheinen. Die nächste Version mit grundlegenden Änderungen wird voraussichtlich in einem Jahr als GCC 6.1 bereitstehen.

Eine der größten Neuerungen in GCC 5.1 ist eine Jit-Compiler-API (libgccjit), dessen Entwicklung vor etwa eineinhalb Jahren gestartet worden ist. Genutzt werden kann die Bibliothek etwa, um einen Interpreter zu schreiben, der Bytecode zu Maschinencode Jit-kompiliert(öffnet im neuen Fenster) .

Damit rückt GCC dem Funktionsumfang des zweiten großen freien Compilerprojektes, LLVM, wieder etwas näher. Letzteres bietet eine solche Möglichkeit seit Jahren, die unter anderem auch den Code noch weiter optimieren kann. Eingesetzt wird dies von vielen verschiedenen Programmen wie zum Beispiel in dem Javascript-Backend von Webkit oder bei dem von Dropbox initiierten Pyston , einer Implementierung von Python 2.7.

Neue Standards der C-Familie

Das Frontend zum Kompilieren von C++-Code unterstützt nun vollständig den 2014er-Sprachstandard. Die in GCC enthaltene C++-Standardbibliothek erlaubt die Verwendung von C++11 in vollen Umfang, Tests mit C++14 können aber ebenso durchgeführt werden. Ermöglicht wird der Einsatz von C++11 durch die Einführung eines sogenannten Dual-ABIs(öffnet im neuen Fenster) .

Standardmäßig verwendet darüber hinaus nun auch das C-Frontend den aktuellen Sprachstandard C11, samt den GNU-Erweiterungen. Davon betroffen ist die Semantik bestimmter Code-Bestandteile, die eventuell portiert werden müssen.

Bereits seit einem Jahr wird die OpenMP-Spezifikation in Version 4.0 unterstützt. In GCC 5.1 können die Offloading-Funktionen auch in den Compilern für C, C++ und Fortran genutzt werden. Spezielle Anpassungen zur Verwendung von Intels Xeon Phi sind ebenso verfügbar. In Vorbereitung ist die Umsetzung des Standards OpenACC 2.0, der bereits getestet werden kann.

Viele Verbesserungen der Interna

Zur Interprozeduralen Optimierung(öffnet im neuen Fenster) kann nun auch das Zusammenlegen von identischem Code genutzt werden. Dieses Verhalten weist leichte Unterschiede zu den bisher vom Gold-Linker(öffnet im neuen Fenster) vorgenommenen Arbeiten. Damit können beispielsweise 31.000 Funktionen beim Kompilieren von Firefox zusammengeführt werden, was etwa 14 Prozent der gesamten Codebasis entspricht. Das Entwicklerteam hat ebenso Verbesserungen an der Link-Time-Optimierung umgesetzt und den Umgang bei der Zuweisung lokaler Register umgestaltet.

Die Compilersammlung GCC 5.1 steht über die FTP-Server des GNU-Projekts(öffnet im neuen Fenster) zum Download bereit. Eine Liste der Änderungen(öffnet im neuen Fenster) bietet das Projekt auf seiner Webseite.


Relevante Themen