AbstractConstant propagation and provide significant improvements in program speed, both by directly enabling optimizations such as constant folding and algebraic simplification and by providing information that in- releases the effectiveness of other compile-time analyses. This technique has generally not been applied to arrays, as it relies on information about the ow of values, but standard array analysis produces only memory aliasing information. The development of techniques for analyzing the ow of values in array variables raises the possibility of applying constant propagation (as well as other traditional value-based scalar analyses and optimizations) to values in arrays. In the use of constant propagation, an analysis may benet from an extension of our definition of what constitutes a constant. In this work, we propose a definition of the constant array that subsumes those used for scalar and in previous work on constant propagation for arrays. We then show that this definition lets us perform analysis of arrays that fall outside the domain of previous work on constant propagation. We also discuss generalizations of dead code elimination and forward substitution.
RightsThis Item is protected by copyright and/or related rights.You are free to use this Item in any way that is permitted by the copyright and related rights legislation that applies to your use.For other uses you need to obtain permission from the rights-holder(s).