Points-to analysis using BDDs.

被引:54
|
作者
Berndl, M [1 ]
Lhoták, O [1 ]
Qian, F [1 ]
Hendren, L [1 ]
Umanee, N [1 ]
机构
[1] McGill Univ, Sch Comp Sci, Sable Res Grp, Montreal, PQ H3A 2A7, Canada
关键词
points-to analysis; binary decision diagrams;
D O I
10.1145/780822.781144
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 some simple points-to examples. Then, a complete subset-based points-to algorithm is presented, expressed completely using BDDs and BDD operations. This algorithm is then refined by finding appropriate variable orderings and by making the algorithm propagate sets incrementally, in order to arrive at a very efficient algorithm. Experimental results are given to justify the choice of variable ordering, to demonstrate the improvement due to incrementalization, and to compare the performance of the BDD-based solver to an efficient hand-coded graph-based solver. Finally, based on the results of the BDD-based solver, a variety of BDD-based queries are presented, including the points-to query.
引用
收藏
页码:103 / 114
页数:12
相关论文
共 50 条
  • [1] Flow-Sensitive Points-to Analysis for Java']Java Programs using BDDs
    Toussi, Hamid A.
    Rasoolzadegan, Abbas
    [J]. 2014 4TH INTERNATIONAL CONFERENCE ON COMPUTER AND KNOWLEDGE ENGINEERING (ICCKE), 2014, : 380 - 386
  • [2] Using ZBDDs in points-to analysis
    Lhotak, Ondrej
    Curial, Stephen
    Amaral, Jose Nelson
    [J]. LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2008, 5234 : 338 - +
  • [3] Using XBDDs and ZBDDs in points-to analysis
    Lhotak, Ondrej
    Curial, Stephen
    Amaral, Jose Nelson
    [J]. SOFTWARE-PRACTICE & EXPERIENCE, 2009, 39 (02): : 163 - 188
  • [4] Probabilistic points-to analysis
    Hwang, YS
    Chen, PS
    Lee, JK
    Ju, RDC
    [J]. LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2003, 2624 : 290 - 305
  • [5] Flow- and Context-Sensitive Points-To Analysis Using Generalized Points-To Graphs
    Gharat, Pritam M.
    Khedker, Uday P.
    Mycroft, Alan
    [J]. STATIC ANALYSIS, (SAS 2016), 2016, 9837 : 212 - 236
  • [6] Generalized Points-to Graphs: A Precise and Scalable Abstraction for Points-to Analysis
    Gharat, Pritam M.
    Khedker, Uday P.
    Mycroft, Alan
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2020, 42 (02):
  • [7] Searching,for points-to analysis
    Bruns, G
    Chandra, S
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2003, 29 (10) : 883 - 897
  • [8] The ART of Sharing Points-to Analysis: Reusing Points-to Analysis Results Safely and Efficiently
    Halalingaiah, Shashin
    Sundaresan, Vijay
    Maier, Daryl
    Nandivada, V. Krishna
    [J]. Proceedings of the ACM on Programming Languages, 2024, 8 (OOPSLA2)
  • [9] Heterogeneous fixed points with application to points-to analysis
    Kanade, A
    Khedker, U
    Sanyal, A
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2005, 3780 : 298 - 314
  • [10] Scaling Java']Java points-to analysis using SPARK
    Lhoták, O
    Hendren, L
    [J]. COMPILER CONSTRUCTION, PROCEEDINGS, 2003, 2622 : 153 - 169