Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation 2003
DOI: 10.1145/781131.781144
|View full text |Cite
|
Sign up to set email alerts
|

Points-to analysis using BDDs

Abstract: This paper reports on a new approach to solving a subset-based points-to analysis for Java using Binary Decision Diagrams (BDDs). In the model checking community, BDDs have been shown very effective for representing large sets and solving very large verification problems. Our work shows that BDDs can also be very effective for developing a points-to analysis that is simple to implement and that scales well, in both space and time, to large programs. The paper first introduces BDDs and operations on BDDs using … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
141
0

Year Published

2005
2005
2015
2015

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 157 publications
(141 citation statements)
references
References 30 publications
0
141
0
Order By: Relevance
“…The literature contains many variations of points-to analysis: context-sensitive versus context-insensitive, flow-sensitive versus flow-insensitive, etc. [3,6,12,13,15,33,35]. These variations make different trade-offs between precision and running time, but production compilers like gcc and LLVM seem to have settled on context-insensitive, flow-insensitive points-to analysis because the more precise alternatives are currently intractable for very large programs.…”
Section: Inclusion-based Points-to Analysismentioning
confidence: 99%
See 1 more Smart Citation
“…The literature contains many variations of points-to analysis: context-sensitive versus context-insensitive, flow-sensitive versus flow-insensitive, etc. [3,6,12,13,15,33,35]. These variations make different trade-offs between precision and running time, but production compilers like gcc and LLVM seem to have settled on context-insensitive, flow-insensitive points-to analysis because the more precise alternatives are currently intractable for very large programs.…”
Section: Inclusion-based Points-to Analysismentioning
confidence: 99%
“…Another important difference is the use of a Binary Decision Diagram [8] data structure. The benefits of BDDs in the context of points-to analysis have been touted by many researchers [6,35]. The reference implementation uses a BDD to compactly represent the points-to edges, while all the other types of edges are internally represented using sparse bit vectors.…”
Section: Experimental Evaluationmentioning
confidence: 99%
“…The costs of the analysis generally include time and memory consumptions. Recent advances in points-to analysis research have concentrated on the improvement of the analysis precision without the increase of memory costs [22,4]. In what follows we point out the main dimensions proposed by Ryder [69] that determine the relative precision and cost of analysis and that are relevant to our points-to analysis presentation:…”
Section: Precision and Costsmentioning
confidence: 99%
“…A similar approach is presented by Lhoták's and Hendren's Paddle framework [4] that integrates BDD-based analysis into the Java optimization framework Soot. Paddle is implemented based on the Jedd language [44], an extension of Java for expressing program-analysis in terms of relations using BDDs to store and manipulate these relations.…”
Section: Points-to Analysismentioning
confidence: 99%
“…The experiments in [16] involved small set sharings (of at most 50 elements at a time) while in this paper we show how with ZBDDs we can scale up to thousands of sharings and still get reasonable times. There has been extensive work in recent years on the use of BDDs [24,2,22,25] to represent (abstract) points-to information. In these abstractions, information is stored in the form of (v, a) pairs, where each such pair indicates that v may point to the allocation site a.…”
Section: Related Workmentioning
confidence: 99%