Compilador de juguete para expresiones Python usando MLIR y E-Graphs

2025-03-21
Compilador de juguete para expresiones Python usando MLIR y E-Graphs

Este artículo detalla un compilador de juguete para expresiones Python construido utilizando MLIR y la biblioteca egglog. El compilador aprovecha los E-Graphs para la saturación de igualdad y la reescritura de términos para optimizar las expresiones Python antes de compilarlas a MLIR. Cuenta con módulos para el modelado de expresiones, funciones integradas, Term IR, una capa de transformación, una capa de optimización y generación de código MLIR y un backend LLVM. Al interpretar simbólicamente las funciones Python, convertirlas en una representación IR, aplicar reglas de optimización y, finalmente, generar código MLIR eficiente, el compilador logra la compilación y ejecución a través de LLVM.

Desarrollo