Functional Representations of SSA

Lennart Beringer

Research output: Chapter in Book/Report/Conference proceedingChapter

Abstract

Functional programming languages provide a perspective on SSA that complements presentations based on phi-functions using notions such as nested scope, parameter passing, and mutually recursive function definitions. The correspondence extends from syntactic aspects to tasks such as SSA construction, data-flow analysis, and program transformations, and can be expressed in terms of multiple intermediate representation forms, all commonly found in compilers for functional programming languages. The chapter concludes with a discussion of loop nesting forests and their relationship to the relative placement of mutually recursive functions during block sinking and lambda dropping.

Original languageEnglish (US)
Title of host publicationSSA-based Compiler Design
PublisherSpringer International Publishing
Pages63-88
Number of pages26
ISBN (Electronic)9783030805159
ISBN (Print)9783030805142
DOIs
StatePublished - Jan 1 2022

All Science Journal Classification (ASJC) codes

  • General Engineering
  • General Computer Science

Keywords

  • Alpha-renaming
  • Basic-block sinking
  • Compiler design
  • Continuation-based form (CPS form)
  • Direct style
  • Formal parameters
  • Free variable
  • Functional loop nesting
  • Functional program representation
  • Irreducible graph
  • Lambda-dropping
  • Lambda-lifting
  • Let-binding
  • Loop nesting forest
  • Loop-closed
  • Lost-copy problem
  • Parameter dropping
  • Reducible graph
  • Referential transparency
  • SSA destruction
  • Static scope
  • Static single assignment form (SSA form)
  • Swap problem
  • Syntactic scope
  • Tail-recursive
  • Vanilla SSA

Fingerprint

Dive into the research topics of 'Functional Representations of SSA'. Together they form a unique fingerprint.

Cite this