Computation of interprocedural definition and use dependencies
Mary Jean Harrold, Mary Lou Soffa · 2002
The detection of various dependencies that exist among the definitions and uses of variables in a program is necessary in many language-processing tools. The computation of definition-use dependencies that reach across procedure boundaries is considered. In particular, efficient techniques for computing interprocedural definition-use and use-definition chains and for incrementally updating the chains when a change is made in a procedure are presented. Intraprocedural definition and use information for each procedure is first abstracted and used to construct an interprocedural flow graph. The intraprocedural information is then propagated in two phases throughout the interprocedural flow graph to obtain the complete set of interprocedural reaching definitions and reachable uses. Interprocedural definition-use and use-definition chains are computed from this reaching information. The technique handles the interprocedural effects of the flow of data caused by both reference parameters and global variables, as well as supports separate compilation even in the presence of recursion. The technique has been implemented using a Sun 3/50 workstation and incorporated into an interprocedural data flow tester.>