Aliases and Their Effect on Data Dependency Analysis - Subramanian, R. K. (Malaysian Journal of Computer Science, 1997)
Parallelising compilers try to automatically convert sequential programs into parallel programs to be executed on the targeted parallel machine. The main task of the parallelising compiler is to locate the areas of potential parallelism in the sequential programs. The major problem in doing so is the data dependency in the programs. These could be identified by one or more passes of the program if unique variable names are used for the memory locations. If different variable names are used to point to the same memory location it causes a different dimension to the problem. If different variable names refer to the same location they are called aliases. Aliases could occur when there is a subprogram call. The parameters passed to the subprogram could be aliases in the subprogram itself or be aliases to the variable used in the calling program. Aliases occur during the usage of recursive data structures. Parameter scoping could also lead to alias problem when a global variable is passed to the subprogram as a parameter. To handle the problem of aliases the compiler will have to perform a detailed alias analysis so that suitable parallel codes could be gene-rated. The alias problem has been examined and methods of identifying the occurrences of aliases have been developed. The methods adopted by the tool for handling the aliases in C programs have been described.