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 条
  • [1] Push-Pull Constraint Graph for Efficient Points-to Analysis
    Ratnakar, Bollu
    Nasre, Rupesh
    ACM SIGPLAN NOTICES, 2014, 49 (11) : 25 - 33
  • [2] Prioritizing Constraint Evaluation for Efficient Points-to Analysis
    Nasre, Rupesh
    Govindarajan, R.
    2011 9TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2011, : 267 - 276
  • [3] Points-to analysis for partial call graph construction
    College of Computer Science and Technology, Zhejiang University, Hangzhou
    310027, China
    Zhejiang Daxue Xuebao (Gongxue Ban), 6 (1031-1040):
  • [4] Points-To Analysis with Efficient Strong Updates
    Lhotak, Ondrej
    Chung, Kwok-Chiang Andrew
    POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, : 3 - 15
  • [5] Points-To Analysis with Efficient Strong Updates
    Lhotak, Ondrej
    Chung, Kwok-Chiang Andrew
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 3 - 15
  • [6] A constraint-weaving approach to points-to analysis for AspectJ
    Sun, Qiang
    Chen, Yuting
    Zhao, Jianjun
    FRONTIERS OF COMPUTER SCIENCE, 2014, 8 (01) : 52 - 68
  • [7] A constraint-weaving approach to points-to analysis for AspectJ
    Qiang SUN
    Yuting CHEN
    Jianjun ZHAO
    Frontiers of Computer Science, 2014, 8 (01) : 52 - 68
  • [8] A constraint-weaving approach to points-to analysis for AspectJ
    Qiang Sun
    Yuting Chen
    Jianjun Zhao
    Frontiers of Computer Science, 2014, 8 : 52 - 68
  • [9] Efficient points-to analysis for whole-program analysis
    Liang, DL
    Harrold, MJ
    SOFTWARE ENGINEERING - ESEC/FSE '99, PROCEEDINGS, 1999, 1687 : 199 - 215
  • [10] Probabilistic points-to analysis
    Hwang, YS
    Chen, PS
    Lee, JK
    Ju, RDC
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2003, 2624 : 290 - 305