Points-To Analysis with Efficient Strong Updates

被引:41
|
作者
Lhotak, Ondrej [1 ]
Chung, Kwok-Chiang Andrew [1 ]
机构
[1] Univ Waterloo, DR Cheriton Sch Comp Sci, Waterloo, ON N2L 3G1, Canada
关键词
points-to analysis; flow sensitivity; strong updates; Andersen's analysis; LLVM; DATA-FLOW ANALYSIS; PROPAGATION;
D O I
10.1145/1926385.1926389
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper explores a sweet spot between flow-insensitive and flow-sensitive subset-based points-to analysis. Flow-insensitive analysis is efficient: it has been applied to million-line programs and even its worst-case requirements: are quadratic space and cubic time. Flow-sensitive analysis is precise because it allows strong updates, so that points-to relationships holding in one program location can be removed from the analysis when they no longer hold in other locations. We propose a 'Strong Update" analysis combining both features: it is efficient like flow-insensitive analysis, with the same worst-case bounds, yet its precision benefits from strong updates like flow-sensitive analysis. The key enabling insight is that strong updates are applicable when the dereferenced points-to set is a singleton, and a singleton set is cheap to analyze. The analysis therefore focuses flow sensitivity on singleton sets. Larger sets, which will not lead to strong updates, are modelled flow insensitively to maintain efficiency. We have implemented and evaluated the analysis as an extension of the standard flow-insensitive points-to analysis in the LLVM compiler infrastructure.
引用
收藏
页码:3 / 15
页数:13
相关论文
共 50 条
  • [1] Points-To Analysis with Efficient Strong Updates
    Lhotak, Ondrej
    Chung, Kwok-Chiang Andrew
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (01) : 3 - 15
  • [2] Prioritizing Constraint Evaluation for Efficient Points-to Analysis
    Nasre, Rupesh
    Govindarajan, R.
    [J]. 2011 9TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2011, : 267 - 276
  • [3] Efficient points-to analysis for whole-program analysis
    Liang, DL
    Harrold, MJ
    [J]. SOFTWARE ENGINEERING - ESEC/FSE '99, PROCEEDINGS, 1999, 1687 : 199 - 215
  • [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] Exploiting the Structure of the Constraint Graph for Efficient Points-to Analysis
    Nasre, Rupesh
    [J]. ACM SIGPLAN NOTICES, 2012, 47 (11) : 121 - 132
  • [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] Push-Pull Constraint Graph for Efficient Points-to Analysis
    Ratnakar, Bollu
    Nasre, Rupesh
    [J]. ACM SIGPLAN NOTICES, 2014, 49 (11) : 25 - 33