Original-URL des Artikels: https://www.golem.de/news/llvm-konkurrenz-gcc-bekommt-jit-compiler-1411-110530.html    Veröffentlicht: 13.11.2014 13:59    Kurz-URL: https://glm.io/110530

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.

Das Projekt, ein JIT-Compiler-API für die GNU Compiler Collection (GCC) zu erstellen, ist offiziell im Hauptentwicklungszweig von GCC eingepflegt 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 auf der diesjährigen GNU Tools Cauldron Konferenz. Mit Coconut 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 sowie die Onlinedokumentation von Malcolm 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 bereit, Git-Spiegelserver gibt es ebenfalls.  (sg)


Verwandte Artikel:
Google: Chrome wird künftig mit Clang statt Visual C++ entwickelt   
(06.03.2018, https://glm.io/133171 )
LLVM 6.0: Clang bekommt Maßnahme gegen Spectre-Angriff   
(09.03.2018, https://glm.io/133241 )
Python: Pypy unterstützt Python 3   
(23.06.2014, https://glm.io/107378 )
Saphira: Compiler-Patches verraten neue Qualcomm-CPU   
(06.11.2017, https://glm.io/130991 )
Compiler-Baukasten: LLVM 5.0 erweitert Ryzen- und AMDGPU-Unterstützung   
(14.09.2017, https://glm.io/130049 )

© 1997–2019 Golem.de, https://www.golem.de/