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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Univ. of Copenhagen (DIKU report 94/19) (May 1994)
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)
Bryant, R.E.: Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv. 24(3), 293–318 (1992)
Coudert, O.: Solving graph optimization problems with ZBDDs. In: EDTC 1997: Proceedings of the 1997 European Conference on Design and Test, p. 224 (1997)
DaCapo Project. The DaCapo benchmark suite, http://www-ali.cs.umass.edu/DaCapo/gcbm.html
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)
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)
Hind, M.: Pointer analysis: haven’t we solved this problem yet? In: Proceedings of PASTE 2001, pp. 54–61. ACM Press, New York (2001)
Lhoták, O.: Spark: A flexible points-to analysis framework for Java. Master’s thesis, McGill University (December 2002)
Lhoták, O.: Program Analysis using Binary Decision Diagrams. PhD thesis, McGill University (January 2006)
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)
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)
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)
Lind-Nielsen, J.: BuDDy, A Binary Decision Diagram Package, http://www.itu.dk/research/buddy/
Meinel, C., Theobald, T.: Algorithms and Data Structures in VLSI Design. Springer, New York (1998)
Milanova, A.: Precise and Practical Flow Analysis of Object-Oriented Software. PhD thesis, Rutgers University (August 2003)
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)
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)
Minato, S.: Zero-suppressed BDDs for set manipulation in combinatorial problems. In: DAC 1993: 30th International Conf. on Design Automation, pp. 272–277 (1993)
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)
Minato, S.: Binary decision diagrams and applications for VLSI CAD. Kluwer Academic Publishers, Dordrecht (1996)
Minato, S.: Zero-suppressed BDDs and their applications. International Journal on Software Tools for Technology Transfer (STTT) 3(2), 156–170 (2001)
Mishchenko, A.: An introduction to zero-suppressed binary decision diagrams. Technical report, Portland State University (June 2001)
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)
Standard Performance Evaluation Corporation. SPEC JVM98 benchmarks (1998), http://www.spec.org/osg/jvm98/
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)
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)
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)
Zhu, J.: Symbolic pointer analysis. In: Proceedings of the 2002 IEEE/ACM International Conference on Computer-Aided Design, pp. 150–157 (2002)
Zhu, J., Calman, S.: Symbolic pointer analysis revisited. In: Proceedings of PLDI 2004, pp. 145–157 (2004)
Author information
Authors and Affiliations
Editor information
Rights 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)