Original-URL des Artikels: https://www.golem.de/0511/41750.html    Veröffentlicht: 21.11.2005 11:15    Kurz-URL: https://glm.io/41750

Freier Compiler LLVM soll enger mit GCC zusammenarbeiten

Apple unterstützt Arbeit zur Integration

Die Compiler-Infrastruktur LLVM soll mittels interner Darstellung in einem virtuellen Instruction-Set besseren Code erzeugen und nun enger mit dem GCC verzahnt werden. Unterstützt wird die Arbeit von Apple und in Zukunft könnte LLVM auch ganz in das GCC-Projekt integriert werden.

LLVM wird an der University of Illinois rund um Chris Lattner entwickelt. Ein eigenes, virtuelles Instruction-Set soll bei der Code-Darstellung und Optimierung helfen. Dabei ist es sogar möglich, den virtuellen Befehlssatz als Ausgabeformat zu verwenden und beispielsweise den Linux-Kernel so zu konfigurieren, dass dieser die Programme automatisch mit einem Just-In-Time-Compiler ausführt. Auf diese Weise könnten Programme aller unterstützten Sprachen - darunter C und C++ - ähnlich wie Java einmal kompiliert auf verschiedenen Plattformen verwendet werden.

Der Fokus liegt jedoch darauf, eine moderne Compiler-Infrastruktur zu bieten, die dank der Low Level Virtual Machine (LLVM) sehr viele moderne Optimierungen bieten kann. So kann LLVM anders als zum Beispiel GCC noch zur Linkzeit und damit programmübergreifend Optimierungen vornehmen.

LLVM baut teilweise auf GCC auf und kann so dessen Sprach-Frontends sowie die Code-generierenden Backends verwenden, bietet aber für die Sprachen C++ sowie die CPUs x86, PowerPC, IA-64, Alpha und SPARC eigene, teils bessere Implementierungen und kann sogar portablen Code für jede Sprache erzeugen. Der Just-In-Time-Compiler ist für x86, PowerPC und SPARC V9 verfügbar.

Bislang sei LLVM aber nur recht lose mit einer alten GCC-Version, einer Vorabversion des GCC 3.4, verbunden, was sich nun aber ändern soll. Für Apple hat Chris Lattner eine neue Version der LLVN-GCC-Übersetzungsschicht auf Basis des GCC 4 entwickelt, bei der die LLVM-Optimizer und der Code-Generator direkt in den GCC-Prozess integriert sind und die Tree-SSA-Optimizers sowie den RTL-Code-Generator mit LLVM-Komponenten ersetzt.

Laut Lattner erhält man so einen Compiler, der kommandozeilenkompatibel mit GCC ist. Rund einen Monat will Lattner dafür noch benötigen. Darüber hinaus plant er, Link-Zeit-Optimierungen zu integrieren. Seine Pläne erläutert er in der GCC-Mailingliste ausführlich. Dazu zählt auch die Überlegung, die Rechte an LLVM ganz an die Free Software Foundation (FSF) zu übertragen, sollte von Seiten der GCC-Entwickler der Wunsch bestehen, LLVM zu einem langfristigen GCC-Projekt zu machen.  (ji)


Verwandte Artikel:
Saphira: Compiler-Patches verraten neue Qualcomm-CPU   
(06.11.2017, https://glm.io/130991 )
Autonomes Fahren: Leiter der Autopilot-Software verlässt Tesla   
(21.06.2017, https://glm.io/128493 )
Sicherheitsupdate: Microsoft-Compiler baut Schutz gegen Spectre   
(18.01.2018, https://glm.io/132241 )
Roland McGrath: Glibc-Maintainer hört nach 30 Jahren auf   
(10.07.2017, https://glm.io/128828 )
Apple: Xcode 9 bringt Entwicklertools für CoreML und Metal 2   
(20.09.2017, https://glm.io/130153 )

Links zum Artikel:
LLVM (.org): http://www.llvm.org

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