eqsat: An Equality Saturation Dialect for Non-destructive Rewriting

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Merckx, Jules, Lopoukhine, Alexandre, Coward, Samuel, Cheng, Jianyi, De Sutter, Bjorn, Grosser, Tobias
Format: Preprint
Veröffentlicht: 2025
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866912376534597632
author Merckx, Jules
Lopoukhine, Alexandre
Coward, Samuel
Cheng, Jianyi
De Sutter, Bjorn
Grosser, Tobias
author_facet Merckx, Jules
Lopoukhine, Alexandre
Coward, Samuel
Cheng, Jianyi
De Sutter, Bjorn
Grosser, Tobias
contents With recent algorithmic improvements and easy-to-use libraries, equality saturation is being picked up for hardware design, program synthesis, theorem proving, program optimization, and more. Existing work on using equality saturation for program optimization makes use of external equality saturation libraries such as egg, typically generating a single optimized expression. In the context of a compiler, such an approach uses equality saturation to replace a small number of passes. In this work, we propose an alternative approach that represents equality saturation natively in the compiler's intermediate representation, facilitating the application of constructive compiler passes that maintain the e-graph state throughout the compilation flow. We take LLVM's MLIR framework and propose a new MLIR dialect named eqsat that represents e-graphs in MLIR code. This not only provides opportunities to rethink e-matching and extraction techniques by orchestrating existing MLIR passes, such as common subexpression elimination, but also avoids translation overhead between the chosen e-graph library and MLIR. Our eqsat intermediate representation (IR) allows programmers to apply equality saturation on arbitrary domain-specific IRs using the same flow as other compiler transformations in MLIR.
format Preprint
id arxiv_https___arxiv_org_abs_2505_09363
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle eqsat: An Equality Saturation Dialect for Non-destructive Rewriting
Merckx, Jules
Lopoukhine, Alexandre
Coward, Samuel
Cheng, Jianyi
De Sutter, Bjorn
Grosser, Tobias
Programming Languages
With recent algorithmic improvements and easy-to-use libraries, equality saturation is being picked up for hardware design, program synthesis, theorem proving, program optimization, and more. Existing work on using equality saturation for program optimization makes use of external equality saturation libraries such as egg, typically generating a single optimized expression. In the context of a compiler, such an approach uses equality saturation to replace a small number of passes. In this work, we propose an alternative approach that represents equality saturation natively in the compiler's intermediate representation, facilitating the application of constructive compiler passes that maintain the e-graph state throughout the compilation flow. We take LLVM's MLIR framework and propose a new MLIR dialect named eqsat that represents e-graphs in MLIR code. This not only provides opportunities to rethink e-matching and extraction techniques by orchestrating existing MLIR passes, such as common subexpression elimination, but also avoids translation overhead between the chosen e-graph library and MLIR. Our eqsat intermediate representation (IR) allows programmers to apply equality saturation on arbitrary domain-specific IRs using the same flow as other compiler transformations in MLIR.
title eqsat: An Equality Saturation Dialect for Non-destructive Rewriting
topic Programming Languages
url https://arxiv.org/abs/2505.09363