Abstract
For functional programs, unboxing aggregate data structures such as tuples removes memory indirections and frees dead components of the decoupled structures. To explore the consequences of such optimizations in a whole-program compiler, this paper presents a tuple flattening transformation and a framework that allows the formal study and comparison of different flattening schemes. We present our transformation over functional SSA, a simply-typed, monomorphic language and show that the transformation is type-safe. The flattening algorithm defined by our transformation has been incorporated into MLton, a whole-program, optimizing compiler for SML. Experimental results indicate that aggressive tuple flattening can lead to substantial improvements in runtime performance, a reduction in code size, and a decrease in total allocation without a significant increase in compilation time.
| Original language | English |
|---|---|
| Pages (from-to) | 333-358 |
| Number of pages | 26 |
| Journal | Higher-Order and Symbolic Computation |
| Volume | 21 |
| Issue number | 3 |
| DOIs | |
| State | Published - Sep 2008 |
Keywords
- Compilation
- Flattening
- Optimization
- SSA
- Tuples
- Unboxing
Fingerprint
Dive into the research topics of 'Flattening tuples in an SSA intermediate representation'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver