language-icon Old Web
English
Sign In

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.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    15
    References
    6
    Citations
    NaN
    KQI
    []