Precise Interprocedural Dataflow Analysis via Graph Reachability

Precise Interprocedural Dataflow Analysis via Graph Reachability

1995 | Thomas Reps, Susan Horwitz, and Mooly Sagiv
This paper presents a polynomial-time algorithm for solving a large class of interprocedural dataflow-analysis problems precisely. The class of problems, called IFDS problems, includes both separable and non-separable problems, such as reaching definitions, available expressions, live variables, truly-live variables, copy constant propagation, and possibly-uninitialized variables. The key insight is that these problems can be transformed into a special kind of graph-reachability problem, where the goal is to find realizable paths that respect the call-return structure of program execution. The paper introduces a new polynomial-time algorithm for the realizable-path reachability problem, which runs in time O(ED³), asymptotically faster than previous algorithms. The algorithm is efficient and adaptive, performing better on common problem instances. It is also shown that the algorithm can be applied to a wide range of problems, including those that are not separable, and that it can handle both union and intersection meet operators. The algorithm is implemented and tested on C programs, with preliminary results showing that the extra precision of meet-over-all-valid-paths solutions can be obtained with acceptable cost. The paper also discusses related work, including previous interprocedural dataflow-analysis frameworks and flow-sensitive side-effect analysis. It shows that the IFDS framework can be extended to handle a broader class of problems, including those involving distributive functions and h-sparse problems. The algorithm is shown to be efficient and effective for a wide range of dataflow-analysis problems, including those that are not separable.This paper presents a polynomial-time algorithm for solving a large class of interprocedural dataflow-analysis problems precisely. The class of problems, called IFDS problems, includes both separable and non-separable problems, such as reaching definitions, available expressions, live variables, truly-live variables, copy constant propagation, and possibly-uninitialized variables. The key insight is that these problems can be transformed into a special kind of graph-reachability problem, where the goal is to find realizable paths that respect the call-return structure of program execution. The paper introduces a new polynomial-time algorithm for the realizable-path reachability problem, which runs in time O(ED³), asymptotically faster than previous algorithms. The algorithm is efficient and adaptive, performing better on common problem instances. It is also shown that the algorithm can be applied to a wide range of problems, including those that are not separable, and that it can handle both union and intersection meet operators. The algorithm is implemented and tested on C programs, with preliminary results showing that the extra precision of meet-over-all-valid-paths solutions can be obtained with acceptable cost. The paper also discusses related work, including previous interprocedural dataflow-analysis frameworks and flow-sensitive side-effect analysis. It shows that the IFDS framework can be extended to handle a broader class of problems, including those involving distributive functions and h-sparse problems. The algorithm is shown to be efficient and effective for a wide range of dataflow-analysis problems, including those that are not separable.
Reach us at info@study.space