Optimizing Stateful Dataflow with Local Rewrites

06/18/2023
by   Shadaj Laddad, et al.
0

Optimizing a stateful dataflow language is a challenging task. There are strict correctness constraints for preserving properties expected by downstream consumers, a large space of possible optimizations, and complex analyses that must reason about the behavior of the program over time. Classic compiler techniques with specialized optimization passes yield unpredictable performance and have complex correctness proofs. But with e-graphs, we can dramatically simplify the process of building a correct optimizer while yielding more consistent results! In this short paper, we discuss our early work using e-graphs to develop an optimizer for a the Hydroflow dataflow language. Our prototype demonstrates that composing simple, easy-to-prove rewrite rules is sufficient to match techniques in hand-optimized systems.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/21/2020

Deep Data Flow Analysis

Compiler architects increasingly look to machine learning when building ...
research
11/08/2017

Correctness of Speculative Optimizations with Dynamic Deoptimization

High-performance dynamic language implementations make heavy use of spec...
research
10/23/2018

Programming Without Refining

To derive a program for a given specification R means to find an artifac...
research
12/14/2022

Verifying term graph optimizations using Isabelle/HOL

Our objective is to formally verify the correctness of the hundreds of e...
research
05/29/2019

Categorization of Program Regions for Agile Compilation using Machine Learning and Hardware Support

A compiler processes the code written in a high level language and produ...
research
04/02/2021

TreeToaster: Towards an IVM-Optimized Compiler

A compiler's optimizer operates over abstract syntax trees (ASTs), conti...

Please sign up or login with your details

Forgot password? Click here to reset