Universelle Compiler-Architektur

LLVM 3.7 mit zahlreichen Optimierungen erschienen

| Autor / Redakteur: Thomas Drilling / Thomas Drilling

LLVM 3.7 mit vielen Verbesserungen
LLVM 3.7 mit vielen Verbesserungen (Bild: LLVM 3.7)

Nach rund 6 Monaten Entwicklungsarbeit ist eine neue LLVM-Version 3.7 erschienen, die vor allem mit Aktualisierungen und Detailsverbesserungen punktet.

Der Name LLVM stand ursprünglich für „Low Level Virtual Machine“. Damit ist gemeint, dass LLVM eine erweiterbare Compiler-Unterbau-Architektur bereitstellt, welche die auf einem virtuellen Befehlssatz, einer VM, die eine CPU virtualisiert, sowie einem übergreifendenden Optimierungskonzept, basiert.

Heute wird LLVM aber vorrangig als Fundament zur Implementation zahlreicher über die Runtime kompilierten Sprachen verwendet und hat damit viele ehemals spezielle Compilern ersetzt, unter anderem die Laufzeit-Engine für Apple’s OpenGL.

Die Neuerungen in LLVM 3.7

Zu den Aktualisierungen und Verbesserungen von LLVM 3.7 gehört unter anderem die Unterstützung für das OpenMP-API in Version 3.1, sowie ein ein neues C++ JIT API namens On Request Compilation (ORC). Dieses basiert auf dem JIT-API MCJIT, soll aber besser erweiterbar sein.

Außerdem haben die Entwickler ein neues Backend für den Berkely Paket Filter (BPF) integriert, der sich seit dem Linux-Kernel 3.18 offenbar zu einer „universellen virtuellen Maschine“ entwickelt hat. Das BPF-Target steht daher nun per Default zur Verfügung, während sich eBPF in LLVM 3.7 als Backend verwenden lässt.

Darüber hinaus haben die Entwickler die LLVM-Zwischenschicht (IR) und die LLVM-APIs angepasst, da Pointer-Typen in LLVM auf lange Sicht überflüssig werden sollen.

Letzte Version für Windows XP

Die Projektverantwortlichen weisen auch darauf hin, dass LLVM 3.7 die letzte Version sein wird, die noch auf Windows XP oder Vista läuft. LLVM 3.8 wird nur noch ab Windows 7 funktionieren. Weitere Details zur neuen Version lassen sich der Veröffentlichungsmitteilung entnehmen.