Compilateur jouet pour expressions Python utilisant MLIR et E-Graphs
Cet article détaille un compilateur jouet pour les expressions Python construit à l'aide de MLIR et de la bibliothèque egglog. Le compilateur utilise les E-Graphs pour la saturation d'égalité et la réécriture de termes afin d'optimiser les expressions Python avant de les compiler en MLIR. Il comprend des modules pour la modélisation d'expressions, les fonctions intégrées, le Term IR, une couche de transformation, une couche d'optimisation et la génération de code MLIR ainsi qu'un backend LLVM. En interprétant symboliquement les fonctions Python, en les convertissant en une représentation IR, en appliquant des règles d'optimisation et, enfin, en générant du code MLIR efficace, le compilateur permet la compilation et l'exécution via LLVM.