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 条
  • [41] Parallel Inclusion-based Points-to Analysis
    Mendez-Lojo, Mario
    Mathew, Augustine
    Pingali, Keshav
    [J]. ACM SIGPLAN NOTICES, 2010, 45 (10) : 428 - 443
  • [42] Fast points-to analysis for languages with structured types
    Jung, M
    Huss, SA
    [J]. SOFTWARE AND COMPILERS FOR EMBEDDED SYSTEMS, PROCEEDINGS, 2004, 3199 : 107 - 121
  • [43] Towards path-sensitive points-to analysis
    Gutzmann, Tobias
    Lundberg, Jonas
    Lowe, Welf
    [J]. SEVENTH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2007, : 59 - 68
  • [44] Parallel Sparse Flow-Sensitive Points-to Analysis
    Zhao, Jisheng
    Burke, Michael G.
    Sarkar, Vivek
    [J]. CC'18: PROCEEDINGS OF THE 27TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION, 2018, : 59 - 70
  • [45] Scaling Java']Java points-to analysis using SPARK
    Lhoták, O
    Hendren, L
    [J]. COMPILER CONSTRUCTION, PROCEEDINGS, 2003, 2622 : 153 - 169
  • [46] An Incremental Points-to Analysis with CFL-Reachability
    Lu, Yi
    Shang, Lei
    Xie, Xinwei
    Xue, Jingling
    [J]. COMPILER CONSTRUCTION, CC 2013, 2013, 7791 : 61 - 81
  • [47] Demand-driven points-to analysis for Java']Java
    Sridharan, M
    Gopan, D
    Shan, L
    Bodík, R
    [J]. ACM SIGPLAN NOTICES, 2005, 40 (10) : 59 - 76
  • [48] Active Learning of Points-To Specifications
    Bastani, Osbert
    Sharma, Rahul
    Aiken, Alex
    Liang, Percy
    [J]. PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 678 - 692
  • [49] Points-to analysis for Java']Java using annotated constraints
    Rountev, A
    Milanova, A
    Ryder, BG
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (11) : 43 - 55
  • [50] Parallel points-to analysis for multi-core machines
    School of Computer Science, Physics and Mathematics, Linnaeus University, 35195 Växjö, Sweden
    [J]. HiPEAC - Proc. Int. Conf. High Perform. Embedded Archit. Compilers, (45-54):