Online cycle detection and difference propagation for pointer analysis
David J. Pearce, Paul H. J. Kelly, Chris Hankin · 2004
We present and evaluate a number of techniques to improve the execution time of interprocedural pointer analysis in the context of large 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 process. We present a new algorithm for online cycle detection, and a difference propagation technique which records changes in a variable's solution. The effectiveness of these and other methods are evaluated experimentally using nine common 'C' programs ranging between 1000 to 55000 lines of code.