Login
Newsletter
Werbung

Mo, 26. Oktober 2009, 10:19

Software::Entwicklung

LLVM 2.6 freigegeben

Nach sechs Monaten Entwicklung wurde die neueste Version 2.6 von LLVM freigegeben, die erstmals vollständige C- und Objective-C-Compiler enthält.

Das LLVM-Team an der University of Illinois in Urbana-Champaign bezeichnet LLVM als eine Compilier-Strategie für effektive Optimierung, einen virtuellen Befehlssatz und eine Compiler-Infrastruktur. Es wird zur Zeit für Forschungen im Bereich von Compilern, Architekturen, Sicherheit und Betriebssysteme verwendet.

LLVM (Low Level Virtual Machine) definiert einen virtuellen Befehlssatz, der an RISC-Maschinen angelehnt ist, aber reichhaltige Typinformation und Datenfluss-Information zur Verfügung stellt. Dies ermöglicht zum einen ausgefeilte Transformationen des Objektcodes, andererseits kann die Information an das ausführbare Programm angehängt werden. Dies erlaubt weitere Transformationen während des Linkens, zur Laufzeit und an der ausführbaren Datei selbst, während das Programm nicht läuft.

Optimierung eines Programmes zu jedem dieser Zeitpunkte ist eine mögliche Anwendung der Transformationen. So kann während des Linkens eine interprozedurale Optimierung vorgenommen werden. Dies ist alles transparent für Entwickler und Anwender und kompatibel zu existierenden Build-Skripten.

Die neue Version 2.6 generiert nach Angaben der Entwickler signifikant besseren Code für x86_64, optimiert beim Linken mit Hilfe des Linkers »gold«, bringt neue Code-Generatoren, generiert und optimiert Code mit mehreren Threads, integriert OProfile in den Just-in-Time (JIT)-Compiler, unterstützt den Befehlssatz SSE 4.2, beherrscht Ada2005-Bindungen und bietet weitere Verbesserungen und Erweiterungen im Laufzeit-API.

Die herausragende Neuerung ist jedoch die Fertigstellung des Compilers Clang, der C und Objective-C für x86-Rechner compilieren kann. Dieser Compiler soll bessere Fehlermeldungen und Warnungen als GCC erzeugen und beim Compilieren von Objective-C dreimal schneller als GCC 4.2 sein.

Eine wachsende Anzahl von Projekten verwendet mittlerweile LLVM. Neben anderen internen Projekten ist dies vor allem das Projekt llvm-mc, das eine Programmsuite mit Assembler und Disassember aus den Target-Beschreibungen von LLVM automatisch generieren will. Extern wird LLVM von einer Reihe von Compiler- und Interpreter-Projekten verwendet, teilweise auch mit JIT-Technologie. Darunter finden sich die funktionale Sprache Pure, zwei Ruby-Implementierungen (Rubinius und MacRuby), ein D-Compiler, der PHP-Compiler Roadsend, die Python-Implementierung Unladen Swallow und eine Lua-Implementierung. Ferner gibt es kommerzielle und akademische Anwendungen. Weitere Einzelheiten findet man in den Release Notes.

Werbung
Kommentare (Insgesamt: 25 || Alle anzeigen )
Re: Linux ohne GNU (blablabla, Di, 27. Oktober 2009)
Re[2]: Linux ohne GNU (def0, Di, 27. Oktober 2009)
Re[2]: Linux ohne GNU (Feuerfrei, Mo, 26. Oktober 2009)
Re: C++ Support? (Sturmflut, Mo, 26. Oktober 2009)
Re[2]: Linux ohne GNU (Eulenauge, Mo, 26. Oktober 2009)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung