skip to main content
10.1145/2614628.2614632acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Explicit and symbolic techniques for fast and scalable points-to analysis

Published: 12 June 2014 Publication History

Abstract

Points-to analysis that scales to large programs is still an open area of research and there are several trade-offs between speed and precision. In this paper, we report advances in achieving extremely fast and scalable analysis for field-sensitive inclusion-based points-to analysis. The first algorithm is based on an explicit representation, sparse bit-vector set representation. The second algorithm is a refinement of the first using symbolic set representations using binary decision diagrams. The first algorithm scales extremely well when compared with the state-of-the-art points-to analysis problems solving the same problem, while the second reduces the memory footprint tremendously, using, on average, 4.6x less memory than the first, and even performs slightly faster points-to set propagation. The techniques that we introduce are a judicious combination of several heuristics involving sparse bit-vector set representations, prioritized processing of worklists for efficient iteration while computing fixed-points, and usage of binary decision diagrams for storing (but not propagating) points-to sets.
The implementation of our approaches scales to large real life Java applications. We evaluated our implementation on benchmark applications from two recent releases of DaCapo benchmark suite using a recent version of Java Standard Library (JRE 1.7_03). Using our techniques we can propagate points-to information on all the benchmarks in less than a minute, using at most 2GB of memory for explicit representation and, at most 600MB for symbolic representation. Comparison with the fastest and the most closely related explicit and symbolic approaches reveals that our techniques are more scalable than related explicit approaches, and in terms of time, on average 4x times faster than the current state-of-the-art.

References

[1]
L. O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU University of Copenhagen, 1994.
[2]
M. Berndl, O. Lhoták, F. Qian, L. Hendren, and N. Umanee. Points-to analysis using bdds. In PLDI '03, 2003.
[3]
S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA '06, pages 169--190, 2006.
[4]
E. Bodden, A. Sewe, J. Sinschek, and M. Mezini. Taming reflection: Static analysis in the presence of reflection and custom class loaders. Technical Report TUD-CS-2010-0066, CASED, Mar. 2010. URL http://www.bodden.de/pubs/TUD-CS-2010-0066.pdf.
[5]
E. Bodden, A. Sewe, J. Sinschek, H. Oueslati, and M. Mezini. Taming reflection: Aiding static analysis in the presence of reflection and custom class loaders. In ICSE '11, 2011.
[6]
M. Bravenboer and Y. Smaragdakis. Strictly declarative specification of sophisticated points-to analyses. In OOPSLA '09, 2009.
[7]
R. E. Bryant. Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv., 1992.
[8]
J. Dean, D. Grove, and C. Chambers. Optimization of object-oriented programs using static class hierarchy analysis. In ECOOP '95, 1995.
[9]
D. Dhurjati and C. Lattner. LLVM programmer's manual, 2012. http://llvm.org/docs/ProgrammersManual.html.
[10]
C. Fecht and H. Seidl. Propagating differences: An efficient new fixpoint algorithm for distributive constraint systems. Nord. J. Comput., 1998.
[11]
B. Hardekopf and C. Lin. The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In PLDI '07, 2007.
[12]
M. Hind. Pointer analysis: haven't we solved this problem yet? In PASTE '01, pages 54--61, 2001.
[13]
K. Hoder, N. Bjørner, and L. M. de Moura. μZ- an efficient engine for fixed points with constraints. In CAV, pages 457--462, 2011.
[14]
O. Lhoták and L. Hendren. Scaling java points-to analysis using spark. In CC'03, pages 153--169, 2003.
[15]
O. Lhoták and L. Hendren. Evaluating the benefits of context-sensitive points-to analysis using a bdd-based implementation. ACM Trans. Softw. Eng. Methodol., 18:3:1--3:53, October 2008.
[16]
J. Lind-Nielse. Buddy: Binary decision diagram package, 2012. http://sourceforge.net/projects/buddy/.
[17]
F. Nielson, H. R. Nielson, and C. Hankin. Principles of Program Analysis. Springer-Verlag New York, Inc., 1999.
[18]
M. Sridharan and S. J. Fink. The complexity of andersen's analysis in practice. In SAS '09, 2009.
[19]
M. Sridharan, D. Gopan, L. Shan, and R. Bodík. Demand-driven points-to analysis for java. In OOPSLA '05, 2005.
[20]
B. Steensgaard. Points-to analysis in almost linear time. In POPL '96, 1996.
[21]
X. Xiao and C. Zhang. Geometric encoding: forging the high performance context sensitive points-to analysis for java. In ISSTA '11, 2011.

Cited By

View all
  • (2021)The fine-grained and parallel complexity of andersen’s pointer analysisProceedings of the ACM on Programming Languages10.1145/34343155:POPL(1-29)Online publication date: 4-Jan-2021
  • (2020)Modular collaborative program analysis in OPALProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409765(184-196)Online publication date: 8-Nov-2020
  • (2015)NetGenProceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research10.1145/2774993.2775006(1-6)Online publication date: 17-Jun-2015

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SOAP '14: Proceedings of the 3rd ACM SIGPLAN International Workshop on the State of the Art in Java Program Analysis
June 2014
36 pages
ISBN:9781450329194
DOI:10.1145/2614628
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 June 2014

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

PLDI '14
Sponsor:

Acceptance Rates

SOAP '14 Paper Acceptance Rate 5 of 5 submissions, 100%;
Overall Acceptance Rate 11 of 11 submissions, 100%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2021)The fine-grained and parallel complexity of andersen’s pointer analysisProceedings of the ACM on Programming Languages10.1145/34343155:POPL(1-29)Online publication date: 4-Jan-2021
  • (2020)Modular collaborative program analysis in OPALProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409765(184-196)Online publication date: 8-Nov-2020
  • (2015)NetGenProceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research10.1145/2774993.2775006(1-6)Online publication date: 17-Jun-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media