TreeToaster: Towards an IVM-Optimized Compiler

04/02/2021
by   Darshana Balakrishnan, et al.
0

A compiler's optimizer operates over abstract syntax trees (ASTs), continuously applying rewrite rules to replace subtrees of the AST with more efficient ones. Especially on large source repositories, even simply finding opportunities for a rewrite can be expensive, as optimizer traverses the AST naively. In this paper, we leverage the need to repeatedly find rewrites, and explore options for making the search faster through indexing and incremental view maintenance (IVM). Concretely, we consider bolt-on approaches that make use of embedded IVM systems like DBToaster, as well as two new approaches: Label-indexing and TreeToaster, an AST-specialized form of IVM. We integrate these approaches into an existing just-in-time data structure compiler and show experimentally that TreeToaster can significantly improve performance with minimal memory overheads.

READ FULL TEXT
research
05/02/2018

Glow: Graph Lowering Compiler Techniques for Neural Networks

This paper presents the design of Glow, a machine learning compiler for ...
research
03/05/2020

Predicting Memory Compiler Performance Outputs using Feed-Forward Neural Networks

Typical semiconductor chips include thousands of mostly small memories. ...
research
08/25/2021

Visualizing JIT Compiler Graphs

Just-in-time (JIT) compilers are used by many modern programming systems...
research
05/29/2019

MCompiler: A Synergistic Compilation Framework

This paper presents a meta-compilation framework, the MCompiler. The mai...
research
02/14/2020

Constructing Hybrid Incremental Compilers for Cross-Module Extensibility with an Internal Build System

Context: Compilation time is an important factor in the adaptability of ...
research
06/18/2023

Optimizing Stateful Dataflow with Local Rewrites

Optimizing a stateful dataflow language is a challenging task. There are...

Please sign up or login with your details

Forgot password? Click here to reset