Automated Code Optimization with E-Graphs
Alessandro Cheli

TL;DR
This thesis introduces a high-level, generic code rewriting system in Julia using equality saturation with E-Graphs, enabling domain-specific optimizations by non-expert programmers within their programs.
Contribution
It presents a novel system that allows users to implement high-level compiler optimizations directly in Julia, simplifying the process and integrating symbolic mathematics with compiler techniques.
Findings
Successfully applied to scientific programs for domain-specific optimizations
Enables users to write optimizations as equations without complex rewriting strategies
Demonstrates practical solutions to two-language and high-level optimization challenges
Abstract
This thesis proposes an advanced, generic and high-level code rewriting and analysis system in the Julia programming language, providing applied equality saturation in the presence of multiple dispatch and metaprogramming. We show how our system can practically solve some challenging problems: Can programmers implement their own high-level compiler optimizations for their domain-specific scientific programs, without the requirement of them being compiler experts at all? Can these optimizers be implemented by users in the same language and inside the same programs they want to optimize, solving the two-language problem? Can these compiler optimizers be written in a high-level fashion, as equations, without the need to worry about the rewriting ordering? Thus, can symbolic mathematics do high-level compiler optimizations or vice-versa?
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.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Logic, programming, and type systems · Distributed and Parallel Computing Systems
