Summary: | Array dependence analysis is all important component of any optimizing/parallelizing compiler. The results of array dependence analysis are required by many parallelizing transformations as well as other analyses for further optimizations. === This thesis is concerned with a symbolic framework for array dependence analysis. It has been shown that the presence of unknown symbolic values in array index expressions occurs with significant frequency such that the accuracy of array dependence analysis is compromised. The use of helper analyses such as constant propagation, resolves the problem in some situations, but in general the development of symbolic array dependence analysis is needed. This thesis shows how such a symbolic framework can be implemented for the complete programming language C, including accurate handling of multi-level pointers. === In addition to the major contributions to the development of a symbolic framework and how it applies to array dependence analysis, this thesis has made contributions in several other areas. === This work has been integrated into the McCAT optimizing/parallelizing C compiler and in particular into the McADT (the McCAT Array Dependence Tester). Based on this implementation, several experimental studies were conducted and the results of these experiments are discussed in detail. (Abstract shortened by UMI.)
|