Constant Propagation on Predicated Code
Jens Koop (Vienna University of Technology, Austria)
Oliver Rüthing (University of Dortmund, Germany)
Abstract: We present a new constant propagation (CP) algorithm for predicated code, for which classical CP-techniques are inadequate. The new algorithm works for arbitrary control flow, detects constancy of terms, whose operands are not constant themselves, and is optimal for acyclic code such as hyperblocks, the central "compilation units" for instruction scheduling of predicated code. The new algorithm operates on the predicated value graph, an extension of the well-known value graph of Alpern et al. [Alpern et al., 1988], which is tailored for predicated code and constructed on top of the predicate-sensitive SSA-form, which has been introduced by Carter et al. [Carter et al., 1999]. As an additional benefit, the new algorithm identifies off-predicated instructions in predicated code. They can simply be eliminated thereby further increasing the performance and simplifying later compilation phases such as instruction scheduling.
Keywords: IA-4, constant propagation, data-flow analysis, optimization, predicated SSA-form, predicated code, predicated value graph
Categories: C.1.0, D.3.4