Compiler-Infrastruktur: LLVM und Clang in Version 3.9 erschienen

Mit geringfügiger Verspätung sind LLVM 3.9 und Clang 3.9 über die Ziellinie gegangen. Mit Features wie ThinLTO, Support für mehr Plattformen und OpenMP-4.5-Unterstützung hat sich das Warten aber gelohnt.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 46 Beiträge
Von

Die Compilerinfrastruktur LLVM steht nun offiziell in Version 3.9 bereit. Geplant war die Veröffentlichung schon im August, doch hatten schwerwiegende Fehler im zweiten Release Candidate dann für die Verschiebung des ursprünglichen Plans gesorgt. Mit dem für Anfang 2017 geplanten LLVM 4.0 vollzieht die Compilerinfrastruktur dann wahrscheinlich den großen Versionssprung.

Nachdem der Wechsel vom Autoconf-Build-System zu CMake bereits eine wichtige Änderung bei LLVM 3.8 war, funktioniert nun das alte System definitiv nicht mehr. Andere Änderungen sind eine neue MemorySSA-Analyse, die Beseitigung der Inkompatibilität mit der ABI (Application Binary Interface) des GCC-5-Projekts libstdc++ und die Unterstützung von ThinLTO (Link-Time Optimization)
– via -flto=thin. Mit dieser Art der Optimierung während des Linkens eines Programms soll LLVM nur geringfügig mehr Zeit als bei der gewöhnlichen Kompilieroptimierung brauchen. Außerdem konnten die Entwickler offenbar auch den Speicherbedarf für LTO reduzieren.

Nutzt man LLVM unter x86-Architekturen werden jetzt auch Intels Skylake-Server-CPUs mit AVX-512-Instruktionen unterstützt (-march=skylake-avx512). Außerdem gibt es Support für die Knights-Landing-CPUs mit AVX-512-Instruktionssatz über den knl-Wert. Auf ARM-Geräten unterstützt die Compilerinfrastruktur nun die Kryo-Mikroarchitektur von Qualcomm und Vulcan von Broadcom. Rudimentären Support gibt es schon mal für Cortex-R8 und ARMv8.2-A.

Der Clang-Compiler kann nun offenbar mit allen Features von OpenCL 2.0 und OpenMP 4.5 umgehen. Er hat außerdem etliche Überarbeitungen bei seinen Diagnose-Funktionen erfahren. Verbessert wurden anscheinend die Windows-Unterstützung und der Drop-in-Treiber der Befehlszeilenschnittstelle clang-cl. Auch nehmen sich die Entwickler fortwährend der jüngsten Änderungen des C++-Standards an. Anwender können damit auf experimenteller Basis via -std=c++1z arbeiten.

Siehe dazu auf heise Developer:

(ane)