Unification-based pointer analysis with directional assignments

By Manuvir Das. ACM-SIGPLAN Symposium on Programming Language Design and Implementation, 2000

333 citations recorded by the source corpus.

This paper describes a new algorithm for flow and context insensitive pointer analysis of C programs. Our studies show that the most common use of pointers in C programs is in passing the addresses of composite objects or updateable values as arguments to procedures. Therefore, we have designed a low-cost algorithm that handles this common case accurately. In terms of both precision and running time, this algorithm lies between Steensgaard's algorithm, which treats assignments bi-directionally using unification, and Andersen's algorithm, which treats assignments directionally using subtyping. Our “one level flow” algorithm uses a restricted form of subtyping to avoid unification of symbols at the top levels of pointer chains in the points-to graph, while using unification elsewhere in the graph. The method scales easily to large programs. For instance, we are able to analyze a 1.4 MLOC (million lines of code) program in two minutes, using less than 200MB of memory. At the same time, the precision of our algorithm is very close to that of Andersen's algorithm. On all of the integer benchmark programs from SPEC95, the one level flow algorithm and Andersen's algorithm produce either identical or essentially identical points-to information. Therefore, we claim that our algorithm provides a method for obtaining precise flow-insensitive points-to information for large C programs.

Subfields: Artificial Intelligence, Hardware and Architecture, Software

View Paper: https://www.semanticscholar.org/paper/5ded3c4023043afba6ec92373ec48d13a34cdc06

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Artificial Intelligence

  1. Sriram K. Rajamani
  2. Thomas Ball
  3. Rupak Majumdar
  4. Gogul Balakrishnan
  5. Thomas W. Reps
  6. Shaz Qadeer
  7. Monica S. Lam
  8. Dinghao Wu

In Hardware and Architecture

  1. Sriram K. Rajamani
  2. Thomas Ball
  3. Shaz Qadeer
  4. Derek M. Jones
  5. Dinghao Wu
  6. Sorin Lerner
  7. John Whaley
  8. Monica S. Lam

In Software

  1. Rupak Majumdar
  2. Sriram K. Rajamani
  3. Thomas Ball
  4. Thomas W. Reps
  5. Gogul Balakrishnan
  6. Shaz Qadeer
  7. Dinghao Wu
  8. Derek M. Jones

Citations in the corpus