An efficient inclusion-based points-to analysis for strictly-typed languages

被引:0
|
作者
Whaley, J [1 ]
Lam, MS [1 ]
机构
[1] Stanford Univ, Comp Syst Lab, Stanford, CA 94305 USA
来源
STATIC ANALYSIS, PROCEEDINGS | 2002年 / 2477卷
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We describe the design and implementation of an efficient. inclusion-based points-to analysis for strictly-typed object-oriented languages. Our implementation easily scales to millions of lines of Java code, and it supports language features such as inheritance, object fields, exceptional control flow, type casting, dynamic dispatch, and reflection. Our algorithm is based on Heintze and Tardieu's Andersen-style points-to analysis designed originally for C programs. We have improved the precision of their algorithm by tracking the fields of individual objects separately and by analyzing the local variables in a method in a flow-sensitive manner. Our algorithm represents the semantics of each procedure concisely using a sparse summary graph representation based on access paths; it iterates over this sparse representation until it reaches a fixed point solution. By utilizing the access path and field information present in the summary graphs, along with minimizing redundant operations and memory management overheads, we are able to quickly and effectively analyze very large programs. Our experimental results demonstrate that this technique can be used to compute precise static call graphs for very large Java programs.
引用
收藏
页码:180 / 195
页数:16
相关论文
共 43 条
  • [1] Parallel Inclusion-based Points-to Analysis
    Mendez-Lojo, Mario
    Mathew, Augustine
    Pingali, Keshav
    ACM SIGPLAN NOTICES, 2010, 45 (10) : 428 - 443
  • [2] A GPU Implementation of Inclusion-based Points-to Analysis
    Mendez-Lojo, Mario
    Burtscher, Martin
    Pingali, Keshav
    ACM SIGPLAN NOTICES, 2012, 47 (08) : 107 - 116
  • [3] An Efficient GPU Implementation of Inclusion-Based Pointer Analysis
    Su, Yu
    Ye, Ding
    Xue, Jingling
    Liao, Xiang-Ke
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2016, 27 (02) : 353 - 366
  • [4] Fast points-to analysis for languages with structured types
    Jung, M
    Huss, SA
    SOFTWARE AND COMPILERS FOR EMBEDDED SYSTEMS, PROCEEDINGS, 2004, 3199 : 107 - 121
  • [5] 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
  • [6] Points-To Analysis with Efficient Strong Updates
    Lhotak, Ondrej
    Chung, Kwok-Chiang Andrew
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 3 - 15
  • [7] 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
  • [8] PUS: A Fast and Highly Efficient Solver for Inclusion-based Pointer Analysis
    Liu, Peiming
    Li, Yanze
    Swain, Brad
    Huang, Jeff
    2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2022), 2022, : 1781 - 1792
  • [9] Efficient points-to analysis for whole-program analysis
    Liang, DL
    Harrold, MJ
    SOFTWARE ENGINEERING - ESEC/FSE '99, PROCEEDINGS, 1999, 1687 : 199 - 215
  • [10] Exploiting the Structure of the Constraint Graph for Efficient Points-to Analysis
    Nasre, Rupesh
    ACM SIGPLAN NOTICES, 2012, 47 (11) : 121 - 132