2001
DOI: 10.1145/507669.507639
|View full text |Cite
|
Sign up to set email alerts
|

Contification using dominators

Abstract: Contification is a compiler optimization that turns a function that always returns to the same place into a continuation. Compilers for functional languages use contification to expose the control-flow information that is required by many optimizations, including traditional loop optimizations.This paper gives a formal presentation of contification in MLton, a whole-program optimizing Standard ML compiler. We present two existing algorithms for contification in our framework, as well as a new algorithm based o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
17
0
1

Year Published

2003
2003
2018
2018

Publication Types

Select...
4
2

Relationship

0
6

Authors

Journals

citations
Cited by 13 publications
(18 citation statements)
references
References 23 publications
0
17
0
1
Order By: Relevance
“…To evaluate and compare the dominance test implementations, we measure both the building time of the dominance test, and its practical cost in time, when using it. 8 Results are presented in Figure 3 and Figure 4. The building time of the dominance test is the time, in seconds, required to compute the function test_dom: node → node → bool.…”
Section: Resultsmentioning
confidence: 99%
See 1 more Smart Citation
“…To evaluate and compare the dominance test implementations, we measure both the building time of the dominance test, and its practical cost in time, when using it. 8 Results are presented in Figure 3 and Figure 4. The building time of the dominance test is the time, in seconds, required to compute the function test_dom: node → node → bool.…”
Section: Resultsmentioning
confidence: 99%
“…Other CPS or ANF-based verified compilers for functional languages [3,6] implement simple optimizations that do not require dominance information, although their (unverified) peers, like MLton, benefit from dominators for, e.g. contification [8] for inter-procedural optimization.…”
Section: Introduction and Related Workmentioning
confidence: 99%
“…Contification [7] is an optimization that turns a function into a continuation when the function is only ever called with the same continuation argument. This makes control flow more explicit, thus potentially enabling subsequent optimizations.…”
Section: Contificationmentioning
confidence: 99%
“…Monadic normal forms offer the main advantages of CPS (i.e., all intermediate results are named and their computation is sequentialized), 1 and they have been used in compilers for functional languages [7,6,21,22,23,38,40,46]. Therefore, a one-pass transformation into monadic normal form with short-cut boolean evaluation could well be of practical use (i.e., outside academia).…”
Section: O Danvymentioning
confidence: 99%