Login
Newsletter
Werbung

Fr, 8. September 2017, 11:23

Software::Entwicklung

LLVM 5.0 freigegeben

Version 5.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. Es wird zur Zeit für Forschungen im Bereich von Compilern, Architekturen, Sicherheit und Betriebssysteme verwendet.

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 5.0 erscheint sechs Monate nach LLVM 4.0 mit vielen neuen Funktionen und Verbesserungen. In LLVM 5.0.0 selbst wurde eine neue Bibliothek BinaryFormat geschaffen, die Formate wie DWARF, ELF, COFF, WASM und MachO unterstützt. Das Programm llvm-pdbdump wurde in llvm-pdbutil umbenannt, da es mehr kann als nur Inhalte ausgeben. Das neue Programm opt-viewer.py dient zum Darstellen von Optimierungs-Anmerkungen in HTML, die vom C-Compiler Clang erzeugt werden. Ein weiteres neues Programm, llvm-dlltool, dient dazu, kurze Importbibliotheken aus Definitionsdateien im GNU-Stil zu erzeugen.

Zahlreiche Verbesserungen bringt LLVM 5.0 bei der Code-Generierung für verschiedene Architekturen. Bei ARM64 werden jetzt die Instruktionen von ARMv8.1, 8.2 und 8.3 unterstützt und LLDB beherrscht jetzt Hardware-Breakpoints. Bei MIPS werden unter anderem die Instrumentation XRay und mehr Assembler-Aliase und -Makros unterstützt. Bei PowerPC wurde die Unterstützung des Instruktionssatzes von POWER 3.0 erweitert. Bei x86 wurde die Unterstützung von Prozessoren wie AMD Ryzen und Intel Goldmont hinzugefügt und die von anderen erweitert. Auch der AVX512-Befehlssatz wird in etlichen Punkten besser unterstützt. Neue Nutzer von LLVM sind die Programmiersprache Zig und der D-Compiler LDC.

Der C/C++-Compiler Clang 5.0.0 implementiert jetzt C++-Coroutinen. Die Fehlermeldungen wurden weiter verbessert. Nur wenige Änderungen gab es bei den Compiler-Optionen. Es kam allerdings das Pragma clang attribute hinzu. Die implizite Konvertierung eines Skalars in einen Vektor, das ist eine Erweiterung von C, die in GCC vorgenommen wurde, ist jetzt auch in Clang verfügbar. Auf der C++-Seite wurde die Implementation von C++17 komplettiert. Standard ist aber immer noch C++98 (GCC-kompatibel), was in der nächsten Version auf C++14 angehoben werden soll, um es GCC gleichzutun. Kleinere Änderungen gab es bei Objective C, während in OpenCL größere Änderungen vorgenommen wurden und Dokumentation hinzukam.

Der Download von LLVM 5.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: 6 || Alle anzeigen || Kommentieren )
Re[3]: Verschiedene Prozessoren (e programmierer, So, 10. September 2017)
Re[2]: Verschiedene Prozessoren (Sie haben vergessen, Ihren Nam, So, 10. September 2017)
Re: Verschiedene Prozessoren (e programmierer, So, 10. September 2017)
Re: Verschiedene Prozessoren (fra p., Fr, 8. September 2017)
Re: Verschiedene Prozessoren (asd, Fr, 8. September 2017)
Pro-Linux
Pro-Linux @Twitter
Neue Nachrichten
Werbung