Abstract
We present a functional analogue of the elimination of Φ-instructions from Static Single Assignment (SSA) code. Extending earlier work on the relationship between SSA and functional languages we show that transformations from A-normal form (ANF) into a more restrictive form called GNF require the same compensating instructions to be inserted as are commonly inserted during the translation from SSA to machine code. Lifting the translation from the syntactic level to the type level, we introduce type systems that mediate the transition from ANF code into correctly register-allocated machine code and allow code optimisations and transformations to be performed in a typed functional setting.
Original language | English (US) |
---|---|
Pages (from-to) | 3-20 |
Number of pages | 18 |
Journal | Electronic Notes in Theoretical Computer Science |
Volume | 176 |
Issue number | 3 SPEC. ISS. |
DOIs | |
State | Published - Jul 19 2007 |
Externally published | Yes |
All Science Journal Classification (ASJC) codes
- Theoretical Computer Science
- General Computer Science
Keywords
- Compilation
- Functional intermediate representations
- Phi-elimination
- Static single assignment form
- Type systems for register allocation