LLVM-Entwickler diskutieren die Möglichkeit, den Build von ClangIR, einer neuen Zwischenrepräsentation für den Clang-Compiler, standardmäßig zu aktivieren. Während die standardmäßige *Nutzung* nicht aktiviert werden soll, zielt der Vorschlag darauf ab, den Build-Prozess von ClangIR in die Standard-LLVM-Kompilierung zu integrieren.
ClangIR, das MLIR verwendet und auf einer höheren Ebene als LLVM IR arbeitet, ist so konzipiert, dass es mehr Semantik des C/C++-Quellcodes bewahrt. Diese Bewahrung soll die Diagnose, die Codeanalyse und die Leistungsoptimierung verbessern. Derzeit ist ClangIR zwar in das Projekt integriert, aber nicht in der Standard-Build-Konfiguration enthalten. Die Aktivierung des Builds würde MLIR zu einer Standardabhängigkeit von Clang machen.
Die Hauptsorge bei der Aktivierung des Standard-Builds ist eine deutliche Erhöhung der Kompilierzeit. Schätzungen zufolge könnten sich die Build-Zeiten mehr als verdoppeln. Weitere Probleme sind das Fehlen eines „Microsoft“-Targets für die Windows-Kompatibilität und die längere Dauer für Continuous Integration (CI)-Tests. Der aktuelle Vorschlag konzentriert sich ausschließlich auf den standardmäßigen Build von ClangIR, nicht auf die Aktivierung seiner Verwendung, die das `-fclangir`-Compiler-Flag erfordert.
Trotz dieser Bedenken glauben die Entwickler, dass ClangIR Vorteile bietet, darunter verbesserte Optimierung und statische Analyse. Die MLIR-basierte Darstellung eröffnet auch Möglichkeiten für eine bessere GPU/Geräte-Offload, insbesondere beim Heruntersetzen von Code auf SPIR-V/Vulkan und bei der Unterstützung von Multi-Device-Vorteilen. Ein LLVM Discourse-Thread und ein RFC-Pull-Request wurden erstellt, um die Diskussion über den Vorschlag zu erleichtern.
Originale Berichterstattung lesen
💬 Kommentare
📜 Kommentar-Richtlinie