Global value numbers and redundant computations
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Co-induction in relational semantics
Theoretical Computer Science
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
A correspondence between continuation passing style and static single assignment form
IR '95 Papers from the 1995 ACM SIGPLAN workshop on Intermediate representations
Lambda-dropping: transforming recursive equations into programs with block structure
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Register promotion by sparse partial redundancy elimination of loads and stores
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
ACM SIGPLAN Notices
Advanced compiler design and implementation
Advanced compiler design and implementation
Practical improvements to the construction and destruction of static single assignment form
Software—Practice & Experience
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial redundancy elimination in SSA form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modern Compiler Implementation: In ML
Modern Compiler Implementation: In ML
Inferring annotated types for inter-procedural register allocation with constructor flattening
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
The Logical Abstract Machine: A Curry-Howard Isomorphism for Machine Code
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
Formalizing Resourve Allocation in a Compiler
TIC '98 Proceedings of the Second International Workshop on Types in Compilation
Formal Verification of Transformations for Peephole Optimization
FME '97 Proceedings of the 4th International Symposium of Formal Methods Europe on Industrial Applications and Strengthened Foundations of Formal Methods
Automatically proving the correctness of compiler optimizations
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Simple relational correctness proofs for static analyses and program transformations
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Register allocation by proof transformation
ESOP'03 Proceedings of the 12th European conference on Programming
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
Hi-index | 0.00 |
We present a functional analogue of the elimination of @F-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.