Login
Newsletter
Werbung

Di, 18. Juni 2013, 11:35

Software::Entwicklung

LLVM 3.3 freigegeben

Version 3.3 des Compiler-Frameworks LLVM will ein halbes Jahr nach Version 3.2 die Geschwindigkeitskrone an sich reißen. Das C/C++-Frontend von LLVM Clang unterstützt zudem C++11 vollständig.

llvm.org

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.

LVM 3.3 ist nach Angaben der Entwickler eine »große« Veröffentlichung mit vielen neuen Funktionen und Verbesserungen. Ab sofort unterstützt LLVM die Architekturen AArch64 (64 Bit ARM), IBM S390 und die spezielle Architektur der AMD-Grafikchips der R600-Serie. Neben der Unterstützung der z/Architecture wurden auch bei anderen PowerPC-Prozessoren große Verbesserungen implementiert, ebenso bei MIPS-Prozessoren.

In Version 3.3 soll der von LLVM generierte Code nochmals deutlich schneller sein als früher und nun auch die Konkurrenz in den meisten Fällen übertreffen. Die automatische Vektorisierung insbesondere generiert den Entwicklern zufolge in vielen Fällen wesentlich besseren Code und ist jetzt ab der Optimierungsstufe 3 eingeschaltet. Ferner steht ein neuer SLP-Vektorisierer zur Verfügung, neben zahlreichen weiteren Verbesserungen.

Wie schon im April vermeldet, unterstützt Clang, das C/C++-Frontend von LLVM, C++11 vollständig. Clang kann jetzt ferner mit Unicode-Zeichen in Bezeichnern umgehen. Der statische Analysator von Clang kennt nun mehrere neue Prüfungen und kann eine Analyse über Funktionen und Konstruktor/Destruktor-Grenzen hinweg vornehmen. Zudem haben die Entwickler ein »C++'11 Migrator«-Werkzeug implementiert, das dabei helfen kann, bestehenden Code C++11-Features nutzen zu lassen, und ein »Clang Format«-Werkzeug, das unter anderem als Plugin für vim und emacs vorliegt, um Code automatisch zu formatieren.

Neben diesen Änderungen gab es zahlreiche kleine Erweiterungen, Korrekturen und interne API-Änderungen. Weitere Informationen enthalten die Anmerkungen zur Veröffentlichung.

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