Login
Newsletter
Werbung

Mi, 25. März 2020, 11:14

Software::Entwicklung

LLVM 10.0 freigegeben

Version 10.0 des Compiler-Frameworks LLVM, das unter anderem den C/C++-Compiler Clang enthält, bringt viele Verbesserungen, unter anderem bei der Code-Generierung und Optimierung.

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, die auch für Forschungen im Bereich von Compilern, Architekturen, Sicherheit und Betriebssystemen verwendet wird.

LLVM 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.

LLVM 10.0 unterstützt abermals mehr Prozessorvarianten und mehr Funktionalität als sein Vorgänger. Insgesamt sind die Änderungen wie in jeder Hauptversion von LLVM so zahlreich, dass sie nicht einmal in den Anmerkungen zur Veröffentlichung vollständig aufgeführt werden können. Zu den größeren Neuerungen gehört die fortgesetzte Arbeit an einem neuen Attributor-Framework, das einmal zu weiteren Optimierungen führen soll, aber noch nicht aktiv ist. Die 64-Bit-ARM-Architektur kennt nun auch die CPUs Cortex-A65, Cortex-A65AE, Neoverse E1 und Neoverse N1. Der Code kann nun auch Windows-Programme generieren. Beim 32-bittigen ARMv8.1-M kamen weitere Optimierungen und automatische Erzeugung von Vektorinstruktionen hinzu.

Im MIPS-Bereich wird nun die CPU-Familie Octeon+ unterstützt. Daneben gab es weitere Verbesserungen, wie auch bei PowerPC und SystemZ. Bei x86 gab es vor allem Verbesserungen bei den Vektorinstruktionen, bei WebAssembly wurde Thread-Local Storage (TLS) eingeführt und die SIMD-Unterstützung erweitert. Zahlreiche neue Funktionen kamen bei RISC-V hinzu.

Der C/C++-Compiler Clang unterstützt Concepts, eine neue Funktionalität von C++. Ferner läuft Clang nicht mehr als separater Prozess, was die Compilierung beschleunigt. Einige neue Compiler-Optionen kamen hinzu und die Warnungen wurden erweitert. Unter Windows sind jetzt auch Control Flow Guard (CFG)-Checks verfügbar. Zahlreiche Verbesserungen gab es auch beim Linker lld, in libc++ und den zusätzlichen Werkzeugen einschließlich clang-tidy.

Der Download von LLVM 10.0.0 mit allen zugehörigen Werkzeugen ist von der Projektseite möglich. Es werden Quellcode-Pakete, Binärpakete und umfassende Dokumentation bereitgestellt.

Werbung
Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Twitter
Neue Nachrichten
Werbung