Exploiting the Structure of the Constraint Graph for Efficient Points-to Analysis

被引:6
|
作者
Nasre, Rupesh [1 ,2 ]
机构
[1] Indian Inst Sci, Bangalore 560012, Karnataka, India
[2] Univ Texas Austin, Austin, TX USA
关键词
Algorithms; Languages; constraint graph; dominators; points-to analysis; context-sensitivity; PROPAGATION; LINES;
D O I
10.1145/2426642.2259013
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Points-to analysis is a key compiler analysis. Several memory related optimizations use points-to information to improve their effectiveness. Points-to analysis is performed by building a constraint graph of pointer variables and dynamically updating it to propagate more and more points-to information across its subset edges. So far, the structure of the constraint graph has been only trivially exploited for efficient propagation of information, e.g., in identifying cyclic components or to propagate information in topological order. We perform a careful study of its structure and propose a new inclusion-based flow-insensitive context-sensitive points-to analysis algorithm based on the notion of dominant pointers. We also propose a new kind of pointer-equivalence based on dominant pointers which provides significantly more opportunities for reducing the number of pointers tracked during the analysis. Based on this hitherto unexplored form of pointer-equivalence, we develop a new context-sensitive flow-insensitive points-to analysis algorithm which uses incremental dominator update to efficiently compute points-to information. Using a large suite of programs consisting of SPEC 2000 benchmarks and five large open source programs we show that our points-to analysis is 88% faster than BDD-based Lazy Cycle Detection and 2x faster than Deep Propagation. We argue that our approach of detecting dominator-based pointer-equivalence is a key to improve points-to analysis efficiency.
引用
收藏
页码:121 / 132
页数:12
相关论文
共 50 条
  • [21] Points-to analysis for program understanding
    Tonella, P
    Antoniol, G
    Fiutem, R
    Merlo, E
    FIFTH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION - IWPC '97, PROCEEDINGS, 1997, : 90 - 99
  • [22] Fast and Precise Points-to Analysis
    Lundberg, Jonas
    Gutzmann, Tobias
    Lowe, Welf
    EIGHTH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2008, : 133 - 142
  • [23] Points-to analysis for program understanding
    Fiutem, R
    Tonella, P
    Antoniol, G
    Merlo, E
    JOURNAL OF SYSTEMS AND SOFTWARE, 1999, 44 (03) : 213 - 227
  • [24] Collections frameworks for points-to analysis
    Gutzmann, Tobias
    Lundberg, Jonas
    Löwe, Welf
    Proceedings - 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation, SCAM 2012, 2012, : 4 - 13
  • [25] Efficient and Precise Points-to Analysis: Modeling the Heap by Merging Equivalent Automata
    Tan, Tian
    Li, Yue
    Xue, Jingling
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 278 - 291
  • [26] On the non-approximability of points-to analysis
    Chakaravarthy, VT
    Horwitz, S
    ACTA INFORMATICA, 2002, 38 (08) : 587 - 598
  • [27] Flow- and Context-Sensitive Points-To Analysis Using Generalized Points-To Graphs
    Gharat, Pritam M.
    Khedker, Uday P.
    Mycroft, Alan
    STATIC ANALYSIS, (SAS 2016), 2016, 9837 : 212 - 236
  • [28] Call-Graph-Based Context-Sensitive Points-to Analysis for Java']Java
    Bao, Yulin
    Zhang, Chenyi
    Su, Kaile
    IEEE TRANSACTIONS ON RELIABILITY, 2024, 73 (02) : 851 - 860
  • [29] On the non-approximability of points-to analysis
    Venkatesan T. Chakaravarthy
    Susan Horwitz
    Acta Informatica, 2002, 38 : 587 - 598
  • [30] Probabilistic Points-to Analysis for Java']Java
    Sun, Qiang
    Zhao, Jianjun
    Chen, Yuting
    COMPILER CONSTRUCTION, 2011, 6601 : 62 - +