Software Quality Journal

, Volume 12, Issue 4, pp 311–337

Online Cycle Detection and Difference Propagation: Applications to Pointer Analysis

  • David J. Pearce
  • Paul H.J. Kelly
  • Chris Hankin

DOI: 10.1023/B:SQJO.0000039791.93071.a2

Cite this article as:
Pearce, D.J., Kelly, P.H. & Hankin, C. Software Quality Journal (2004) 12: 311. doi:10.1023/B:SQJO.0000039791.93071.a2


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.

Copyright information

© Kluwer Academic Publishers 2004

Authors and Affiliations

  • David J. Pearce
    • 1
  • Paul H.J. Kelly
    • 2
  • Chris Hankin
    • 3
  1. 1.Victoria University of WellingtonNew Zealand
  2. 2.Department of ComputingImperial CollegeUK
  3. 3.Department of ComputingImperial CollegeUK

Personalised recommendations