Login
Login-Name Passwort


 
Newsletter
Werbung

Di, 7. Januar 2014, 13:04

Software::Entwicklung

LLVM 3.4 freigegeben

Sechs Monate nach der Version 3.3 ist mit LLVM 3.4 wieder eine größere neue Version des Compiler-Frameworks LLVM mit einer Reihe neuer Funktionen verfügbar.

llvm.org

Das LLVM-Team um Chefentwickler Chris Lattner hat die Verfügbarkeit der neuen Version auf der Announce-Mailingliste an von LLVM angekündigt. LLVM (Low Level Virtual Machine) stellt eine modulare Compiler-Architektur mit einem virtuellen Befehlssatz mit einer virtuellen Maschine dar, welche einen Hauptprozessor virtualisiert. LLVM wird seit dem Jahr 2000 an der Universität von Illinois unter der Leitung von Chris Lattner und Vikram Adve ursprünglich als Forschungsprojekt entwickelt, das dynamische Übersetzung und effektive Optimierungsverfahren ausloten sollte. Mit seiner auf Virtualisierung basierenden Architektur bezeichnen die Entwickler das LLVM-Framework als ein übergreifend optimierendes Übersetzungskonzept. Heute sind unter dem Dach des LLVM-Projektes zahlreiche weitere Unterprojekte und Erweiterungen aus der aktuellen Compiler-Forschung beheimatet. LLVM kommt auch zu Forschungen in den Bereichen Architekturen, Betriebssysteme und Sicherheit zum Einsatz. LLVM ist freie Software unter der »University of Illinois/NCSA Open Source License«. Der Quellcode ist zum Herunterladen verfügbar, erfordert aber C++11-Unterstützung im Host-Compiler. Detaillierte Einzelheiten zu den Neuerungen der Version 3.4 lassen sich der Veröffentlichungsmitteilung entnehmen.

LLVM definiert einen virtuellen Befehlssatz, der an RISC-Maschinen angelehnt ist, aber reichhaltige Typ- und Datenflussinformationen zur Verfügung stellt. Dies ermöglicht zum einen ausgefeilte Transformationen des Objektcodes, andererseits lässt sich die Information an das ausführbare Programm anhängen. Das ermöglicht weitere Transformationen während des Linkens, zur Laufzeit und an der ausführbaren Datei selbst, während das Programm nicht läuft. Mit LLVM lassen sich in nahezu jeder relevanten imperativen Programmiersprache geschrieben Programme kompilieren, darunter unter anderem C, C++, Objective-C, Java, D, Ada, Fortran, Haskell, Dylan, Python, Ruby, ActionScript und GLSL. Seit der Version 2.9 benutzt der LLVM-Compiler Clang als Frontend.

Laut Chris Lattner unterstützt Clang in der neuen Version 3.4 sämtliche Funktionen des aktuellen Entwurfs für die kommende C++-Generation, derzeit unter der provisorischen Bezeichnung Namen C++1y geführt. Auch die C++-Unterstützung im statischen Analysetool wurde erheblich verbessert, erkennt mehr Fehler und erzeugt weniger Fehlalarme. Neu in Clang ist zudem das integrierte Werkzeug »clang-format«. Das formatiert Code in einer IDE oder einem Texteditor nach Vorbild von »Builtin Styles«. Ferner haben die Entwickler die Geschwindigkeit des Code-Generators verbessert. So werden die SLP- und Loop-Vektorisierer zielgerichteter eingesetzt. Während SLP jetzt standardmäßig aktiviert ist, lässt sich der Loop-Vektorisierer über die Optionen -0s und -02 einschalten. Außerdem benutzt »llvm-ar« jetzt die neue Objekt-Bibliothek und erstellt Archive und Symboltabellen im GNU-Format. Darüber hinaus erlauben File-Checks das mehrfache Verwenden von -check-prefix. Ferner soll ein neuer experimenteller Treiber für Kompatibilität mit Visual Studio unter Windows ab 2010 aufwärts sorgen; die Version 2008 wird nicht mehr unterstützt. Außerdem gilt das R600-Backend nicht mehr als experimentell und wird standardmäßig erzeugt.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung