Computation of Interprocedural Control Dependencies
S. Sinha, M. J. Harrold, and G. Rothermel
ACM Transactions on Software Engineering and Methodology
V. 10, no. 2, April 2001, pages 209-254.


Program-dependence information is useful for a variety of applications, such as software testing and maintenance tasks and code optimization. Properly defined, control and data dependences can be used to identify semantic dependences. To function effectively on whole programs, tools that utilize dependence information require information about interprocedural dependences: dependences that are identified by analyzing the interactions among procedures. Many techniques for computing interprocedural data dependences exist; however, virtually no attention has been paid to interprocedural control dependence. Analysis techniques that fail to account for interprocedural control dependences can suffer unnecessary imprecision and loss of safety. This paper presents a definition of interprocedural control dependence that supports the relationship of control and data dependence to semantic dependence. The paper presents two approaches for computing interprocedural control dependences, and empirical results pertaining to the use of those approaches.