Precise Interprocedural Dataflow Analysis Via Graph Reachability
Thomas Reps, Susan Horwitz, and Mooly Sagiv
The paper shows how a large class of interprocedural dataflow-analysis
problems can be solved precisely in polynomial time by transforming
them into a special kind of graph-reachability problem. The only
restrictions are that the set of dataflow facts must be a finite set,
and that the dataflow functions must distribute over the confluence
operator (either union or intersection). This class of problems
includes --- but is not limited to --- the classical separable
problems (also known as "gen/kill" or "bit-vector" problems) --- e.g.,
reaching definitions, available expressions, and live variables. In
addition, the class of problems that our techniques handle includes
many non-separable problems, including truly-live variables, copy
constant propagation, and possibly-uninitialized variables.
Results are reported from a preliminary experimental study of C
programs (for the problem of finding possibly-uninitialized
variables).
(Click here to access the paper:
PostScript,
PDF.)
University of Wisconsin