Prioritizing Constraint Evaluation for Efficient Points-to Analysis

被引:0
|
作者
Nasre, Rupesh [1 ]
Govindarajan, R. [1 ]
机构
[1] Indian Inst Sci, Bangalore 560012, Karnataka, India
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Pervasive use of pointers in large-scale real-world applications continues to make points-to analysis an important optimization-enabler. Rapid growth of software systems demands a scalable pointer analysis algorithm. A typical inclusion-based points-to analysis iteratively evaluates constraints and computes a points-to solution until a fixpoint. In each iteration, (i) points-to information is propagated across directed edges in a constraint graph G and (ii) more edges are added by processing the points-to constraints. We observe that prioritizing the order in which the information is processed within each of the above two steps can lead to efficient execution of the points-to analysis. While earlier work in the literature focuses only on the propagation order, we argue that the other dimension, that is, prioritizing the constraint processing, can lead to even higher improvements on how fast the fixpoint of the points-to algorithm is reached. This becomes especially important as we prove that finding an optimal sequence for processing the points-to constraints is NP-Complete. The prioritization scheme proposed in this paper is general enough to be applied to any of the existing points-to analyses. Using the prioritization framework developed in this paper, we implement prioritized versions of Andersen's analysis, Deep Propagation, Hardekopf and Lin's Lazy Cycle Detection and Bloom Filter based points-to analysis. In each case, we report significant improvements in the analysis times (33%, 47%, 44%, 20% respectively) as well as the memory requirements for a large suite of programs, including SPEC 2000 benchmarks and five large open source programs.
引用
收藏
页码:267 / 276
页数:10
相关论文
共 50 条
  • [41] Staged Points-to Analysis for Large Code Bases
    Allen, Nicholas
    Scholz, Bernhard
    Krishnan, Padmanabhan
    COMPILER CONSTRUCTION (CC 2015), 2015, 9031 : 131 - 150
  • [42] Demand-Driven Refinement of Points-to Analysis
    Sun, Chenguang
    Midkiff, Samuel
    2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2019), 2019, : 264 - 265
  • [43] Correlation Tracking for Points-To Analysis of Java']JavaScript
    Sridharan, Manu
    Dolby, Julian
    Chandra, Satish
    Schaefer, Max
    Tip, Frank
    ECOOP 2012 - OBJECT-ORIENTED PROGRAMMING, 2012, 7313 : 435 - 458
  • [44] Modeling and Diagnosing Buggy Programs with Points-to Analysis
    Peng, Tao
    Zhang, Qiang
    Chen, Rong
    MATERIALS SCIENCE AND INFORMATION TECHNOLOGY, PTS 1-8, 2012, 433-440 : 2927 - +
  • [45] Towards path-sensitive points-to analysis
    Gutzmann, Tobias
    Lundberg, Jonas
    Lowe, Welf
    SEVENTH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2007, : 59 - 68
  • [46] Fast points-to analysis for languages with structured types
    Jung, M
    Huss, SA
    SOFTWARE AND COMPILERS FOR EMBEDDED SYSTEMS, PROCEEDINGS, 2004, 3199 : 107 - 121
  • [47] Parallel Inclusion-based Points-to Analysis
    Mendez-Lojo, Mario
    Mathew, Augustine
    Pingali, Keshav
    ACM SIGPLAN NOTICES, 2010, 45 (10) : 428 - 443
  • [48] Parallel Sparse Flow-Sensitive Points-to Analysis
    Zhao, Jisheng
    Burke, Michael G.
    Sarkar, Vivek
    CC'18: PROCEEDINGS OF THE 27TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION, 2018, : 59 - 70
  • [49] Scaling Java']Java points-to analysis using SPARK
    Lhoták, O
    Hendren, L
    COMPILER CONSTRUCTION, PROCEEDINGS, 2003, 2622 : 153 - 169
  • [50] An Incremental Points-to Analysis with CFL-Reachability
    Lu, Yi
    Shang, Lei
    Xie, Xinwei
    Xue, Jingling
    COMPILER CONSTRUCTION, CC 2013, 2013, 7791 : 61 - 81