A number of existing compiler techniques hinge on the analysis of array accesses in the program. The most important task in array access analysis is to collect the information about array accesses of interest and summarize it in some standard form. Traditional forms used in array access analysis are sensitive to the complexity of array subscripts; that is, they are usually quite accurate and efficient for simple array subscripting expressions, but lose accuracy or require potentially expensive algorithms for complex subscripts. Our study has revealed that in many programs, particularly numerical applications, many access patterns are simple in nature even when the subscripting expressions are complex. Based on this analysis, we have developed a new, general array region representational form, called the linear memory access descriptor or LMAD. This form helps us expose the simplicity of the actual patterns of array accesses in memory, which may be hidden inside complex array subscript...
Yunheung Paek, Jay Hoeflinger, David A. Padua