Freier Compiler LLVM 1.5 verspricht besseren Code
Virtuelles Instruction-Set für die interne Darstellung bietet hohe Flexibilität
Die teils auf GCC aufbauende Compiler-Infrastruktur LLVM läuft unter Linux, FreeBSD, MacOS X, Solaris sowie Windows und soll mittels interner Darstellung in einem virtuellem Instruction-Set besseren Code erzeugen können.
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.
Die Version 1.5 soll gegenüber der Version 1.4 etwa 15 Prozent schneller geworden sein und 30 Prozent weniger Speicher verwenden. Die neue Version bietet zudem erstmals Unterstützung für Alpha, IA-64 und SPARC-V8 sowie diverse Verbesserung in der Code-Generierung. Zudem kann pro Funktion die "Calling Convertion", also die Art, wie die Argumente übergeben werden, variieren.
Auch wenn sich schon viele Programme inklusive der kompletten SPEC-Suite übersetzen lassen, verarbeitet der Compiler noch kein Inline-Assembler, so dass sich Betriebssystem-Kernel und C-Bibliotheken nicht übersetzen lassen.
Laut Chris Lattner "ist der Compiler aber definitiv auf dem Weg ein komplettes GNU/Linux System übersetzen zu können".
Auf der Homepage des Projekts finden sich die Release Notes sowie die Quelltexte sowie eine umfangreiche Dokumentation. [von René Rebe]
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
klingt für mich ein wenig nach Mono. Ich seh nicht wirklich den grossen Vorteil gegenüber...
GCC 3.4 ist schon ziemlich strickt. Und 4.0 ist nochmal einiges (!) striker. Deine...
bitte nicht füttern
Gibt's denn sowas? ;)