TL;DR
Caviar is a fast e-graph-based term rewriting system that improves expression proving in compilers by introducing techniques to accelerate e-graph construction and exploration, outperforming traditional greedy algorithms.
Contribution
The paper introduces Caviar, a novel e-graph-based TRS with techniques to speed up e-graph expansion and improve proof capabilities in compiler optimization.
Findings
Caviar proves expressions faster than base e-graph TRSs.
Caviar can prove expressions that Halide's TRS cannot.
Caviar is only 0.68x slower than Halide's existing TRS.
Abstract
Term Rewriting Systems (TRSs) are used in compilers to simplify and prove expressions. State-of-the-art TRSs in compilers use a greedy algorithm that applies a set of rewriting rules in a predefined order (where some of the rules are not axiomatic). This leads to a loss of the ability to simplify certain expressions. E-graphs and equality saturation sidestep this issue by representing the different equivalent expressions in a compact manner from which the optimal expression can be extracted. While an e-graph-based TRS can be more powerful than a TRS that uses a greedy algorithm, it is slower because expressions may have a large or sometimes infinite number of equivalent expressions. Accelerating e-graph construction is crucial for making the use of e-graphs practical in compilers. In this paper, we present Caviar, an e-graph-based TRS for proving expressions within compilers. The main…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
