If-Conversion in SSA Form
2004
Predicated execution has become a standard feature in modern high-performance microprocessors, and is supported by compilers through if-conversion. The static single assignment (SSA) form has been demonstrated to be a very successful intermediate representation in modern compilers. Traditionally, SSA optimizations preceed the if-conversion because the classical SSA form is not adapted for if-converted programs. Recently, the Ψ-SSA extension of the classical SSA form has been proposed for optimizing predicated code. However, up until now, the if-conversion itself has not been applicable to programs in SSA form. As a result, optimizers that want to use SSA before and Ψ-SSA after the if-conversion would have to translate the program out of the SSA form before performing the if-conversion, and to rebuild the Ψ-SSA from scratch after the if-conversion. In this paper, we propose a simple model of if-conversion in SSA form such that if-conversion results in the Ψ-SSA. We implemented our if-conversion method in the Open64/ORC compiler code generator, and evaluated the size of the Ψ-SSA form resulting from if-conversion on a set of MediaBench programs.
Keywords:
- Correction
- Source
- Cite
- Save
- Machine Reading By IdeaReader
15
References
6
Citations
NaN
KQI