Online Cycle Detection and Difference Propagation: Applications to Pointer Analysis

  • Authors:
  • David J. Pearce;Paul H. J. Kelly;Chris Hankin

  • Affiliations:
  • Victoria University of Wellington, New Zealand david.pearce@mcs.vuw.ac.nz;Department of Computing, Imperial College, London SW7 2AZ, UK phjk@doc.ic.ac.uk;Department of Computing, Imperial College, London SW7 2AZ, UK clh@doc.ic.ac.uk

  • Venue:
  • Software Quality Control
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents and evaluates a number of techniques to improve the execution time of interprocedural pointer analysis in the context of C programs. The analysis is formulated as a graph of set constraints and solved using a worklist algorithm. Indirections lead to new constraints being added during this procedure. The solution process can be simplified by identifying cycles, and we present a novel online algorithm for doing this. We also present a difference propagation scheme which avoids redundant work by tracking changes to each solution set. The effectiveness of these and other methods are shown in an experimental study over 12 common ‘C’ programs ranging between 1000 to 150,000 lines of code.