Zum Hauptinhalt Zur Navigation

LLVM-Konkurrenz: GCC bekommt JIT-Compiler

Die GNU Compiler Collection (GCC) enthält nun Funktionen zur Just-in-Time-Kompilierung. Damit tritt GCC wieder stärker in Konkurrenz zu LLVM , der Code ist aber noch nicht bereit für den Einsatz.
/ Sebastian Grüner
5 Kommentare News folgen (öffnet im neuen Fenster)
Ein JIT-Compiler für GCC (Bild: GCC)
Ein JIT-Compiler für GCC Bild: GCC

Das Projekt, ein JIT-Compiler-API(öffnet im neuen Fenster) für die GNU Compiler Collection (GCC) zu erstellen, ist offiziell im Hauptentwicklungszweig von GCC eingepflegt(öffnet im neuen Fenster) worden. Vor über einem Jahr war es von dem Red-Hat-Mitarbeiter David Malcolm gestartet worden . Die Bibliothek soll sich dynamisch in Bytecode-Interpreter linken lassen oder in ähnliche Programme, die Maschinencode zur Laufzeit erstellen wollen.

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 neuen Javascript-Backend von Webkit oder bei dem von Dropbox initiierten Pyston , einer Implementierung von Python 2.7.

Aufbauend auf einer selbsterstellten Sprachanbindung an Python demonstrierte Malcolm die Funktionen von GCC-Jit(öffnet im neuen Fenster) auf der diesjährigen GNU Tools Cauldron Konferenz. Mit Coconut(öffnet im neuen Fenster) steht ein experimenteller Compiler bereit, der CPython-Bytcode über eine Zwischenschicht in Maschinencode umwandelt. Genutzt werden könnte diese Technik aber natürlich auch für andere Sprachen, und Malcolm ruft dazu auf, sich entsprechend an den Arbeiten zu beteiligen.

Einen kurzen Überblick über die Funktionsweise der Jit-Bibliothek von GCC bietet das Projekt-Wiki(öffnet im neuen Fenster) sowie die Onlinedokumentation von Malcolm(öffnet im neuen Fenster) selbst. Noch wird der Code offiziell als Alpha bezeichnet, und es wird auf mögliche Änderungen des API hingewiesen. Mit der Aufnahme in den Hauptzweig ist aber davon auszugehen, dass der Code mit der kommenden Version 5 der Compilersammlung im nächsten Jahr erscheinen wird.

Der Quellcode steht via Svn zum Download(öffnet im neuen Fenster) bereit, Git-Spiegelserver(öffnet im neuen Fenster) gibt es ebenfalls.


Relevante Themen