Skip to main content

Using ZBDDs in Points-to Analysis

  • Conference paper
Languages and Compilers for Parallel Computing (LCPC 2007)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5234))

Abstract

Binary Decision Diagrams (BDDs) have recently become widely accepted as a space-efficient method of representing relations in points-to analyses. When BDDs are used to represent relations, each element of a domain is assigned a bit pattern to represent it, but not every bit pattern represents an element. The circuit design, model checking, and verification communities have achieved significant reductions in BDD sizes using Zero-Suppressed BDDs (ZBDDs) to avoid the overhead of these don’t-care bit patterns. We adapt BDD-based program analyses to use ZBDDs instead of BDDs. Our experimental evaluation studies the space requirements of ZBDDs for both context-insensitive and context-sensitive program analyses and shows that ZBDDs can greatly reduce the space requirements for expensive context-sensitive points-to analysis. Using ZBDDs to reduce the size of the relations allows a compiler or other software analysis tools to analyze larger programs with greater precision. We also provide a metric that can be used to estimate whether ZBDDs will be more compact than BDDs for a given analysis.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Univ. of Copenhagen (DIKU report 94/19) (May 1994)

    Google Scholar 

  2. Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using BDDs. In: Proceedings of PLDI 2003, pp. 103–114 (2003)

    Google Scholar 

  3. Bryant, R.E.: Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv. 24(3), 293–318 (1992)

    Article  Google Scholar 

  4. Coudert, O.: Solving graph optimization problems with ZBDDs. In: EDTC 1997: Proceedings of the 1997 European Conference on Design and Test, p. 224 (1997)

    Google Scholar 

  5. DaCapo Project. The DaCapo benchmark suite, http://www-ali.cs.umass.edu/DaCapo/gcbm.html

  6. Emami, M., Ghiya, R., Hendren, L.J.: Context-sensitive interprocedural points-to analysis in the presence of function pointers. In: Proceedings of PLDI 1994, pp. 242–256 (1994)

    Google Scholar 

  7. Hardekopf, B., Lin, C.: The ant and the grasshopper: Fast and accurate pointer analysis for millions of lines of code. In: Proceedings of PLDI (2007)

    Google Scholar 

  8. Hind, M.: Pointer analysis: haven’t we solved this problem yet? In: Proceedings of PASTE 2001, pp. 54–61. ACM Press, New York (2001)

    Google Scholar 

  9. Lhoták, O.: Spark: A flexible points-to analysis framework for Java. Master’s thesis, McGill University (December 2002)

    Google Scholar 

  10. Lhoták, O.: Program Analysis using Binary Decision Diagrams. PhD thesis, McGill University (January 2006)

    Google Scholar 

  11. Lhoták, O., Hendren, L.: Scaling Java points-to analysis using Spark. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 153–169. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  12. Lhoták, O., Hendren, L.: Jedd: a BDD-based relational extension of Java. In: Proceedings of PLDI 2004, pp. 158–169. ACM Press, New York (2004)

    Chapter  Google Scholar 

  13. Lhoták, O., Hendren, L.: Context-sensitive points-to analysis: is it worth it? In: Mycroft, A., Zeller, A. (eds.) CC 2006. LNCS, vol. 3923, pp. 47–64. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  14. Lind-Nielsen, J.: BuDDy, A Binary Decision Diagram Package, http://www.itu.dk/research/buddy/

  15. Meinel, C., Theobald, T.: Algorithms and Data Structures in VLSI Design. Springer, New York (1998)

    MATH  Google Scholar 

  16. Milanova, A.: Precise and Practical Flow Analysis of Object-Oriented Software. PhD thesis, Rutgers University (August 2003)

    Google Scholar 

  17. Milanova, A., Rountev, A., Ryder, B.G.: Parameterized object sensitivity for points-to and side-effect analyses for Java. In: Proceedings of ISSTA 2002, pp. 1–11. ACM Press, New York (2002)

    Chapter  Google Scholar 

  18. Milanova, A., Rountev, A., Ryder, B.G.: Parameterized object sensitivity for points-to analysis for Java. ACM Trans. Softw. Eng. Methodol. 14(1), 1–41 (2005)

    Article  Google Scholar 

  19. Minato, S.: Zero-suppressed BDDs for set manipulation in combinatorial problems. In: DAC 1993: 30th International Conf. on Design Automation, pp. 272–277 (1993)

    Google Scholar 

  20. Minato, S.: Calculation of unate cube set algebra using zero-suppressed BDDs. In: 31st ACM/IEEE Design Automation Conference (DAC 1994), pp. 420–424 (1994)

    Google Scholar 

  21. Minato, S.: Binary decision diagrams and applications for VLSI CAD. Kluwer Academic Publishers, Dordrecht (1996)

    MATH  Google Scholar 

  22. Minato, S.: Zero-suppressed BDDs and their applications. International Journal on Software Tools for Technology Transfer (STTT) 3(2), 156–170 (2001)

    MATH  Google Scholar 

  23. Mishchenko, A.: An introduction to zero-suppressed binary decision diagrams. Technical report, Portland State University (June 2001)

    Google Scholar 

  24. Okuno, H.G.: Reducing combinatorial explosions in solving search-type combinatorial problems with binary decision diagrams. Trans. of Information Processing Society of Japan (IPSJ) (in Japanese) 35(5), 739–753 (1994)

    Google Scholar 

  25. Standard Performance Evaluation Corporation. SPEC JVM98 benchmarks (1998), http://www.spec.org/osg/jvm98/

  26. Vallée-Rai, R., Gagnon, E., Hendren, L.J., Lam, P., Pominville, P., Sundaresan, V.: Optimizing Java bytecode using the Soot framework: Is it feasible? In: Watt, D.A. (ed.) CC 2000. LNCS, vol. 1781, pp. 18–34. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  27. Whaley, J., Lam, M.S.: Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In: Proceedings of PLDI 2004, pp. 131–144 (2004)

    Google Scholar 

  28. Yoneda, T., Hatori, H., Takahara, A., Minato, S.: BDDs vs. zero-suppressed BDDs: for CTL symbolic model checking of petri nets. In: Srivas, M., Camilleri, A. (eds.) FMCAD 1996. LNCS, vol. 1166, pp. 435–449. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  29. Zhu, J.: Symbolic pointer analysis. In: Proceedings of the 2002 IEEE/ACM International Conference on Computer-Aided Design, pp. 150–157 (2002)

    Google Scholar 

  30. Zhu, J., Calman, S.: Symbolic pointer analysis revisited. In: Proceedings of PLDI 2004, pp. 145–157 (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Vikram Adve María Jesús Garzarán Paul Petersen

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lhoták, O., Curial, S., Amaral, J.N. (2008). Using ZBDDs in Points-to Analysis. In: Adve, V., Garzarán, M.J., Petersen, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2007. Lecture Notes in Computer Science, vol 5234. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85261-2_23

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-85261-2_23

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-85260-5

  • Online ISBN: 978-3-540-85261-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics