Optimizing Pointer Analysis Using Bisimilarity

  • Luke Simon
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5673)


We introduce a new technique for dramatically improving the performance of inclusion-based points-to analysis, by using bisimilarity in order to detect pointer equivalences before constraint resolution. We present the design and correctness proof of this technique, along with an implementation prototype, and a series of benchmarks. The benchmarks indicate that our technique dramatically improves the scalability of inclusion-based points-to analysis, beating the current leading offline optimizations for inclusion-based points-to analysis.


Constraint Solver Benchmark Suite Constraint Graph Equivalent Variable Input Constraint 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D. (eds.): Compilers: principles, techniques, and tools, 2nd edn. Pearson/Addison Wesley, Boston (2007)zbMATHGoogle Scholar
  2. 2.
    Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (DIKU report 94/19) (May 1994)Google Scholar
  3. 3.
    Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using BDDs. ACM SIGPLAN Notices 38(5), 103–114 (2003)CrossRefGoogle Scholar
  4. 4.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (1999)Google Scholar
  5. 5.
    Cleaveland, R.: The concurrency workbench: A semantics-based verification tool for the verification of concurrent systems. ACM Transactions on Programming Languages and Systems 15(1), 36–72 (1993)CrossRefGoogle Scholar
  6. 6.
    Dovier, A., Piazza, C., Policriti, A.: An efficient algorithm for computing bisimulation equivalence. Theor. Comput. Sci. 311(1-3), 221–256 (2004)MathSciNetzbMATHGoogle Scholar
  7. 7.
    Fähndrich, M., Foster, J.S., Su, Z., Aiken, A.: Partial online cycle elimination in inclusion constraint graphs. ACM SIGPLAN Notices 33(5), 85–96 (1998)CrossRefGoogle Scholar
  8. 8.
    Focardi, R., Gorrieri, R.: The compositional security checker: A tool for the verification of information flow security properties. IEEE Trans. Software Eng. 23(9), 550–571 (1997)CrossRefGoogle Scholar
  9. 9.
    Hardekopf, B., Lin, C.: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In: Ferrante, J., McKinley, K.S. (eds.) PLDI, pp. 290–299. ACM Press, New York (2007)Google Scholar
  10. 10.
    Hardekopf, B., Lin, C.: Exploiting pointer and location equivalence to optimize pointer analysis. In: Riis Nielson, H., Filé, G. (eds.) SAS 2007. LNCS, vol. 4634, pp. 265–280. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  11. 11.
    Heintze, N., Tardieu, O.: Ultra-fast aliasing analysis using CLA: A million lines of C code in a second. ACM SIGPLAN Notices 36(5), 254–263 (2001)CrossRefGoogle Scholar
  12. 12.
    Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: Intermediate language and tools for analysis and transformation of C programs. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 213–228. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    Nuutila, E., Soisalon-Soininen, E.: On finding the strongly connected components in a directed graph. Information Processing Letters 49, 9–14 (1993)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Paige, R., Tarjan, R.E.: Three partition refinement algorithms. SIAM J. Comput. 16(6), 973–989 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  15. 15.
    Pearce, D.J., Kelly, P.H.J., Hankin, C.: Efficient field-sensitive pointer analysis for C. In: Flanagan, C., Zeller, A. (eds.) PASTE, pp. 37–42. ACM Press, New York (2004)Google Scholar
  16. 16.
    Pearce, D.J., Kelly, P.H.J., Hankin, C.: Efficient field-sensitive pointer analysis of C. ACM Transactions on Programming Languages and Systems 30(1), 4:1–4:42 (2007)CrossRefGoogle Scholar
  17. 17.
    Rountev, A., Chandra, S.: Off-line variable substitution for scaling points-to analysis. ACM SIGPLAN Notices 35(5), 47–56 (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Luke Simon
    • 1
  1. 1.Metallect Corp.PlanoUSA

Personalised recommendations