2011
DOI: 10.2168/lmcs-7(1:10)2011
|View full text |Cite
|
Sign up to set email alerts
|

Equality Saturation: A New Approach to Optimization

Abstract: Abstract. Optimizations in a traditional compiler are applied sequentially, with each optimization destructively modifying the program to produce a transformed program that is then passed to the next optimization. We present a new approach for structuring the optimization phase of a compiler. In our approach, optimizations take the form of equality analyses that add equality information to a common intermediate representation. The optimizer works by repeatedly applying these analyses to infer equivalences betw… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
131
0
1

Year Published

2012
2012
2023
2023

Publication Types

Select...
6
1

Relationship

0
7

Authors

Journals

citations
Cited by 83 publications
(132 citation statements)
references
References 75 publications
(103 reference statements)
0
131
0
1
Order By: Relevance
“…On the other hand, Tate et al [15] proposed a framework for translation validation. Given a function in the input program and the corresponding optimized version of the function in the output program, they compute two value-graphs to represent the computations of the variables.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…On the other hand, Tate et al [15] proposed a framework for translation validation. Given a function in the input program and the corresponding optimized version of the function in the output program, they compute two value-graphs to represent the computations of the variables.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
“…The value-graph of the computation of x is φ (= (a, b), d, 0). Replacing the definition of a, b and d, and normalizing this graph, we get: by (7) φ(c, 0, 0) by (16) 0 by (15) Optimization-specific Rules Based on the optimizations of the Signal compiler, we have a number of optimization-specific rules in a way that reflexes the effects of specific optimizations of the compiler. These rules do not always reduce the graph or make it simpler.…”
Section: Examplementioning
confidence: 99%
“…Stepp et al [21] report on a translation validator for LLVM. Their validator uses Equality Saturation [22], which views optimizations as equality analyses. Their tool does not validate GVN.…”
Section: Related Workmentioning
confidence: 99%
“…Existing techniques for proving equivalence can be classified into three categories: sound algorithms for loop-free code [1,6,10,11,23]; algorithms that analyze finite unwindings of loops or finite spaces of inputs [17,20,28,30]; algorithms that require knowledge of the particular transformations used for turning one program into another [24,36] and the order in which the transformations have been applied [14,25,29]. In contrast, our approach to handling equivalence checking of loops does not assume any knowledge about the optimizations performed.…”
Section: Introductionmentioning
confidence: 99%
“…In particular, DDEC restricts the expressiveness of invariants required for a proof to be conjunctions of linear or nonlinear equalities. However, for most interesting intra-procedural optimizations, simple equalities appear to be sufficiently expressive [25,32,36]. DDEC is also currently unable to reason about floating point computations, simply because the current generation of offthe-shelf SMT solvers do not support floating point reasoning.…”
Section: Introductionmentioning
confidence: 99%