Simple and Efficient Construction of Static Single Assignment Form
We present a simple SSA construction algorithm, which allows direct translation from an abstract syntax tree or bytecode into an SSA-based intermediate representation. The algorithm requires no prior analysis and ensures that even during construction the intermediate representation is in SSA form. This allows the application of SSA-based optimizations during construction. After completion, the intermediate representation is in minimal and pruned SSA form. In spite of its simplicity, the runtime of our algorithm is on par with Cytron et al.’s algorithm.
KeywordsBasic Block Intermediate Representation Entry Block Strongly Connect Component Abstract Syntax Tree
- 1.libFirm – The FIRM intermediate representation library, http://libfirm.org
- 2.The LLVM compiler infrastructure project, http://llvm.org
- 9.Cocke, J.: Programming languages and their compilers: Preliminary notes. Courant Institute of Mathematical Sciences, New York University (1969)Google Scholar
- 14.Paleczny, M., Vick, C., Click, C.: The Java HotSpotTMserver compiler. In: Symposium on JavaTM Virtual Machine Research and Technology Symposium, JVM 2001, pp. 1–12. USENIX Association, Berkeley (2001)Google Scholar