ABSTRACT

A simple view of interprocedural analysis is to model a procedure call as a basic block and represent the effect of the called procedure by a summary flow function. This chapter aims to develop an abstract view of interprocedural data flow analysis with the goal of evolving basic concepts. Various methods of interprocedural data flow analysis can be divided into two broad categories: functional approach or a value-based approach. A functional approach to interprocedural analysis consists of two steps: In the first step, the summary flow functions that represent the effects of a call are computed. In the second step, inherited data flow information of a procedure is computed from its calling contexts. By contrast, interprocedural data flow analysis needs to examine entire programs. Interprocedural analysis requires incorporating the mutual influence of callers and callees on each other. Interprocedural data flow analyses are restricted to single threads, similar to intraprocedural data flow analysis.