The Complexity of Andersen's Analysis in Practice [chapter]

Manu Sridharan, Stephen J. Fink
2009 Lecture Notes in Computer Science  
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 stronglytyped
more » ... s 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. 1 One can reduce Andersen's analysis to 25] , for which Chaudhuri's algorithm is slightly sub-cubic [5] .
doi:10.1007/978-3-642-03237-0_15 fatcat:drvgvornknhlvabzp5eqldoenu