The Complexity of Andersen's Analysis in Practice

  • Authors:
  • Manu Sridharan;Stephen J. Fink

  • Affiliations:
  • IBM T.J. Watson Research Center,;IBM T.J. Watson Research Center,

  • Venue:
  • SAS '09 Proceedings of the 16th International Symposium on Static Analysis
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

While the tightest proven worst-case complexity for Andersen's points-to analysis is nearly cubic, the analysis seems to scale better on real-world codes. We examine algorithmic factors that help account for this gap. In particular, we show that a simple algorithm can compute Andersen's analysis in worst-case quadratic time as long as the input program is k -sparse , i.e. it has at most k statements dereferencing each variable and a sparse flow graph. We then argue that for strongly-typed languages like Java, typical structure makes programs likely to be k -sparse, and we give empirical measurements across a suite of Java programs that confirm this hypothesis. We also discuss how various standard implementation techniques yield further constant-factor speedups.