Spielzeug-Compiler für Python-Ausdrücke mit MLIR und E-Graphs
2025-03-21
Dieser Artikel beschreibt einen Spielzeug-Compiler für Python-Ausdrücke, der mit MLIR und der egglog-Bibliothek erstellt wurde. Der Compiler nutzt E-Graphs für Gleichheitssättigung und Term-Rewriting, um Python-Ausdrücke zu optimieren, bevor sie in MLIR kompiliert werden. Er umfasst Module für die Ausdrucksmodellierung, eingebaute Funktionen, Term IR, eine Transformationsschicht, eine Optimierungsschicht und die MLIR-Codegenerierung sowie ein LLVM-Backend. Durch die symbolische Interpretation von Python-Funktionen, die Konvertierung in eine IR-Darstellung, die Anwendung von Optimierungsregeln und die schließlich effiziente Generierung von MLIR-Code erreicht der Compiler die Kompilierung und Ausführung über LLVM.
Entwicklung