Skip to main navigation Skip to search Skip to main content

Flattening tuples in an SSA intermediate representation

Research output: Contribution to journalArticlepeer-review

7 Scopus citations

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 languageEnglish
Pages (from-to)333-358
Number of pages26
JournalHigher-Order and Symbolic Computation
Volume21
Issue number3
DOIs
StatePublished - 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