Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2007
DOI: 10.1145/1190216.1190241
|View full text |Cite
|
Sign up to set email alerts
|

Lightweight fusion by fixed point promotion

Abstract: This paper proposes a lightweight fusion method for general recursive function definitions. Compared with existing proposals, our method has several significant practical features: it works for general recursive functions on general algebraic data types; it does not produce extra runtime overhead (except for possible code size increase due to the success of fusion); and it is readily incorporated in standard inlining optimization. This is achieved by extending the ordinary inlining process with a new fusion la… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
19
0

Year Published

2007
2007
2018
2018

Publication Types

Select...
6
1

Relationship

0
7

Authors

Journals

citations
Cited by 24 publications
(19 citation statements)
references
References 25 publications
0
19
0
Order By: Relevance
“…Lightweight Fusion. Lightweight fusion as one of the transformation in our paper was presented by Ohori and Sasano [2007]. As shown by Danvy and Millikin [2008a], lightweight fusion can be used to show the equivalence between small-step and big-step abstract machines.…”
Section: Related Workmentioning
confidence: 95%
See 1 more Smart Citation
“…Lightweight Fusion. Lightweight fusion as one of the transformation in our paper was presented by Ohori and Sasano [2007]. As shown by Danvy and Millikin [2008a], lightweight fusion can be used to show the equivalence between small-step and big-step abstract machines.…”
Section: Related Workmentioning
confidence: 95%
“…Notably, this makes explicit another layer of control (Section 3). • Lightweight fusion [Danvy and Millikin 2008a;Ohori and Sasano 2007]: We apply a fusion transformation to the linearized AAM, which combines the single-step function step and the driving function into one, but keeps all the machine state representations intact (Section 4). • Disentanglement: We identify different first-order data types which represent different layers of continuations, and disassemble their handlers into separate functions (Section 5).…”
Section: Fig 1 Functional Correspondence Between and Transformationmentioning
confidence: 99%
“…The work by Ohori and Sasano [35] cannot fuse two successive applications of the same function, nor mutually recursive functions. We show in the next two examples that our transformation can handle these cases.…”
Section: Examplesmentioning
confidence: 99%
“…We therefore start our survey of related work with one call-by-value transformation and then look at the related transformations from a call-by-name or callby-need perspective. [35] works by promoting functions through the fix-point operator and guarantees termination by limiting inlining to at most once per function. They implement their transformation in a compiler for a variant of Standard ML and present some benchmarks.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation