LLVM IR erhält Byte-Typ: Native Unterstützung für rohe Speicherzugriffe

2025-09-09

Ein Google Summer of Code 2025-Projekt innerhalb der LLVM-Compiler-Infrastruktur hat erfolgreich einen neuen Byte-Typ zum LLVM IR hinzugefügt, der rohe Speicherwerte repräsentiert. Dies ermöglicht die native Implementierung von speicherbezogenen intrinsischen Funktionen wie memcpy, memmove und memcmp, behebt fehlerhafte Transformationen und ermöglicht neue Optimierungen, alles mit minimalen Performance-Einbußen. Das Projekt adressierte das langjährige Problem von LLVM, einen Typ zum Darstellen von rohem Speicher zu fehlen, wodurch die Korrektheit und Optimierung des Compilers durch die Verfolgung der Provenienz von Zeigern und die präzise Darstellung von Poison-Bits verbessert wurde. Die Behandlung von rohen Speicherzugriffstypen in C/C++ durch Clang wurde ebenfalls verbessert, zusammen mit Korrekturen für mehrere fehlerhafte Optimierungen.

Mehr lesen
Entwicklung

LLVM Fortran-Compiler Flang: Zehn Jahre Entwicklung, offiziell veröffentlicht

2025-03-12

Nach fast zehnjähriger Entwicklung wurde der LLVM Fortran-Compiler Flang endlich offiziell von „flang-new“ in „flang“ umbenannt. Dieser Artikel beschreibt die Entwicklung von Flang, von der ersten Entwicklung durch die US-amerikanischen National Labs und NVIDIA bis zur Übernahme der mehrstufigen Zwischenrepräsentation (MLIR) von LLVM und der endgültigen Integration in das LLVM-Projekt. Das Ziel der Entwicklung von Flang war es, einen langfristigen, nicht proprietären Fortran-Compiler bereitzustellen, um die Risiken durch einzelne Fehlerpunkte zu reduzieren und das Wachstum der Fortran-Community zu fördern. Der Weg von Flang zeigt auch Fortschritte in der Compilertechnologie, wie z. B. die Verwendung von MLIR zur Optimierung von Fortran-Code. Heute ist Flang ausgereift und stabil und wird von Anbietern wie AMD unterstützt. Er ist ein leistungsstarkes Werkzeug für Fortran-Entwickler.

Mehr lesen
Entwicklung

Lightstorm: Ein minimalistischer Ruby-Compiler steigert die Leistung mit MLIR

2024-12-31

Das DragonRuby-Team hat Lightstorm entwickelt, einen minimalistischen Ruby-Compiler, der die Leistung seiner plattformübergreifenden Spiele-Engine verbessern soll. Mit MLIR übersetzt Lightstorm den Bytecode der mruby-VM in C-Code und optimiert die Leistung, indem es Lade-/Speicher- und Verzweigungsvorgänge in der Interpreter-Schleife der VM entfernt. Benchmark-Ergebnisse zeigen Leistungsverbesserungen von 1% bis 1200%, mit einer durchschnittlichen Reduzierung der Ausführungszeit und der Zyklen um etwa 30%. Obwohl derzeit nur eine Teilmenge von Ruby unterstützt wird, bestätigt das Projekt die Machbarkeit der Vorabkompilierung von Ruby-Code für Leistungsgewinne. Zukünftige Pläne umfassen den Austausch kritischer C-Komponenten der Engine durch kompilierten Ruby-Code.

Mehr lesen
Entwicklung Ruby-Compiler