Abstract:
This article presents a novel Sparse Constant Propagation technique which
provides a heretofore unknown level of practicality. Unlike other
techniques
which are based on data flow, it is based on the execution-order
summarization sweep employed in Memory Classification Analysis (MCA), a
technique originally developed for array dependence analysis. This
methodology achieves a precise description of memory reference activity
within a summary representation that grows only linearly with program
size. Because of this, the collected sparse constant information need
not be artificially limited to satisfy classical data flow lattice
requirements, which constrain other algorithms to discard information in
the interests of efficient termination. Sparse Constant Propagation
is not only more effective within the MCA framework, but it in fact
generalizes
the framework. Original MCA provids the means to break only simple
induction
and reduction types of flow-dependences. The integrated framework
provides the
means to also break flow-dependences for which array values can be
propagated.