LLVM 3.0 setzt verbindlich Clang oder Dragonegg voraus

Zur "runden" Versionsnummer der Low-Level Virtual Machine haben sich die Entwickler von den in den vorigen Versionen mitgeschleppten Altlasten getrennt.

In Pocket speichern vorlesen Druckansicht 56 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Die Compiler-Infrastruktur Low-Level Virtual Machine (LLVM) ist nun in Version 3.0 erschienen – rund ein halbes Jahr nach der vorigen größeren Version LLVM 2.9. Zur "runden" Versionsnummer haben sich die Entwickler von den bisher mitgeschleppten Altlasten getrennt. So unterstützt LLVM 3.0 nicht mehr länger das llvm-gcc-Frontend. Entwickler müssen fortan Clang oder Dragonegg verwenden. Auch funktionieren Dateiformate früherer LLVM-Versionen wie .bc und .ll nicht mehr länger.

Neu sind die Registerzuweisung für eine bessere Codegenerierung, Unterstützung für atomare Operatoren und das Speichermodell des neuen Standards C++11. Das MIPS-Backend hat offenbar nicht mehr experimentellen Status, in dem Kontext wurde die Unterstützung für MIPS1 und MIPS beseitigt und die für MIPS64 ergänzt.

Bei der Erweiterung für den C/C++-Compiler Clang haben die Entwickler das ARC-System (Automatic Reference Counting) von Objective-C sowie zahlreiche Funktionen von C++11 und des zukünftigen C++-Standards C1X implementiert. Eine erste Unterstützung gibt es bei Clang für OpenCL. Dragonegg lässt sich darüber hinaus mit GCC 4.6, der aktuellen GNU Compiler Collection, einsetzen.

C, C++, Fortran und Ada bleiben die offiziell unterstützten Sprachen des GCC-Frontends, während Java, Objective-C, Objective-C++ und Go teilweise funktionieren. Einen detaillierten Einblick über sämtlichen Neuerungen enthalten die Release Notes.

Die Low-Level Virtual Machine (LLVM) ist eine unter anderem von Apple geförderte Compiler-Infrastruktur, die aus einer Sammlung von Bibliotheken und Tools für optimierende Compiler und Just-in-Time-Codegeneratoren besteht. Laut den Entwicklern kann mit ihr nahezu in Echtzeit kompiliert werden, ohne plattformspezifischen Code einführen zu müssen.

Siehe dazu auch:

(ane)