Precise interprocedural dataflow analysis via graph reachability

  title={Precise interprocedural dataflow analysis via graph reachability},
  author={T. Reps and Susan Horwitz and Shmuel Sagiv},
  booktitle={ACM-SIGACT Symposium on Principles of Programming Languages},
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 probable problems includes—but is not limited to—the classical separable problems (also known as “gen… 

Figures and Tables from this paper

Bebop: a path-sensitive interprocedural dataflow engine

This work reformulates an interprocedural dataflow algorithm by Reps, Horwitz and Sagiv (based on context-free graph reachability), and shows how to use Binary Decision Diagrams, a data structure from the model checking community, to turn this reformulated algorithm into an interProcedural path-sensitive dataflow analysis algorithm that tracks a set of set of facts per program statement.

Subcubic certificates for CFL reachability

It is shown that there cannot be a fine-grained reduction from SAT to CFL reachability for a conditional lower bound stronger than nω, unless the nondeterministic strong exponential time hypothesis (NSETH) fails.

Demand-driven interprocedural analysis for map-based abstract domains

Context-sensitive data-dependence analysis via linear conjunctive language reachability

This paper introduces linear conjunctive language (LCL) reachability, a new, expressive class of graph reachability that not only contains the interleaved matched-parenthesis language, but is also closed under all set-theoretic operations.

Fast Graph Simplification for Interleaved-Dyck Reachability

This article aims at simplifying the underlying input graph G, based on the observation that if an edge is not contributing to any InterDyck-paths, the authors can safely eliminate it from G, and improves both the scalability and precision of all three InterDYck-reachability algorithms.

Impact Analysis via Reachability and Alias Analysis

This work adds reachability analysis that examines the program to see “whether a given path in a program representation corresponds to a possible execution path”, such that infeasible paths of mis-matched calls and returns can be filtered out from the estimated impact set.

Optimal Interprocedural Program Optimization

  • Jens Knoop
  • Computer Science
    Lecture Notes in Computer Science
  • 2000
The generator has successfully been tested on a large sample of program optimizations and first practical experiences show that the generated DFA-algorithms are as efficient as their hand-coded counterparts.

Precise Interprocedural Dataaow Analysis with Applications to Constant Propagation 1

Two eecient algorithms are presented that produce precise solutions to the interprocedural constant-propagation problem: an exhaustive algorithm that produces values for all symbols at all program points, and a demand algorithm that demands the value for an individual symbol at a particular program point.

Interprocedural data flow analysis in Soot using value contexts

A general-purpose interprocedural analysis framework for Soot using data flow values for context-sensitivity and the key ideas of the tabulation method of the functional approach and the technique of value-based termination of call string construction are described.

Data flow frequency analysis

This paper provides a precise formulation of this problem for a large class of dataflow problems --- the class of finite bi-distributive subset problems, and shows how it can be reduced to a generalization of the standard dataflow analysis problem, one that requires a sum-over-all- Paths quantity instead of the usual meet-overall-paths quantity.



Solving Demand Versions of Interprocedural Analysis Problems

The paper describes how algorithms for demand versions of program-analysis problems can be obtained from their exhaustive counterparts essentially for free, by applying the so-called “magic-sets” transformation that was developed in the logic-programming and deductive-database communities.

Demand interprocedural dataflow analysis

The new algorithm provides precise (meet over all interprocedurally valid paths) solutions to a large class of problems and has a polynomial worst-case cost for both a single demand and a sequence of all possible demands.

Qualified Data Flow Problems

This paper presents a simple uniform methodology for sharpening data flow information by considering certain recursive path sets of practical importance and indicates that qualified analysis is feasible and substantialy more informative than ordinary analysis.

Data flow analysis of applicative programs using minimal function graphs

Data or program flow analysis is concerned with the static analysis of programs, to obtain as much information as possible about their possible run time behavior without actually having to run the

The Interprocedural Coincidence Theorem

An interprocedural generalization of the well-known Coincidence Theorem of Kam and Ullman which provides a sufficient condition for the equivalence of the meet over all paths (MOP) solution and the maximal fixed point (MFP) solution to a data flow analysis problem.

Demand-driven computation of interprocedural data flow

A general framework for deriving demand-driven algorithms for interprocedural data flow analysis of imperative programs by modeling a demand for data flow information as a set of date flow queries.

Finiteness conditions for fixed point iteration

How the classical notions of fastness, rapidity and k-boundedness carry over to the abstract interpretation framework and how this may be used to bound the number of times a functional should be unfolded in order to yield the fixed point is shown.

The program summary graph and flow-sensitive interprocedual data flow analysis

A method for interprocedural data flow analysis which is powerful enough to express flowsensitive problems but fast enough to apply to very large programs is discussed.

Interprocedural slicing using dependence graphs

A new kind of graph to represent programs is introduced, called a system dependence graph, which extends previous dependence representations to incorporate collections of procedures (with procedure calls) rather than just monolithic programs.

Precise Interprocedural Dataflow Analysis with Applications to Constant Propagation

An efficient dynamic-programming algorithm is presented that produces precise solutions to interprocedural dataflow-analysis problems in which the dataflow information at a program point is represented by an environment and the effect of a program operation is representation by a distributive environment transformer.