Precise and Scalable Context-Sensitive Pointer Analysis via Value Flow Graph

被引:3
|
作者
Li, Lian [1 ]
Cifuentes, Cristina [1 ]
Keynes, Nathan [1 ]
机构
[1] Oracle Labs, Brisbane, Qld, Australia
关键词
context-sensitive analysis; flow-sensitive analysis; demand-driven; function summary; CFL-reachability; TO ANALYSIS; ALIAS ANALYSIS;
D O I
10.1145/2555670.2466483
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In this paper, we propose a novel method for context-sensitive pointer analysis using the value flow graph (VFG) formulation. We achieve context-sensitivity by simultaneously applying function cloning and computing context-free language reachability (CFL-reachability) in a novel way. In contrast to existing clone-based and CFL-based approaches, flow-sensitivity is easily integrated in our approach by using a flow-sensitive VFG where each value flow edge is computed in a flow-sensitive manner. We apply context-sensitivity to both local variables and heap objects and propose a new approximation for heap cloning. We prove that our approach can achieve context-sensitivity without loss of precision, i.e., it is as precise as inlining all function calls. We develop an efficient algorithm and implement a context-, flow-, and field-sensitive pointer analysis with heap cloning support in LLVM. We evaluate the efficiency and precision of our implementation using standard SPEC CPU2006 benchmarks. Our experimental results show that the analysis is much faster than existing approaches, it scales well to large real-world applications, and it enables more effective compiler optimizations.
引用
收藏
页码:85 / 96
页数:12
相关论文
共 50 条
  • [41] Synthesis and Analysis of Context-Sensitive Languages
    Bravo Pariente, C. A.
    Lima, D. A. C.
    IEEE LATIN AMERICA TRANSACTIONS, 2016, 14 (03) : 1526 - 1531
  • [42] Incremental and Modular Context-sensitive Analysis
    Garcia-Contreras, Isabel
    Morales, Jose F.
    Hermenegildo, Manuel, V
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2021, 21 (02) : 196 - 243
  • [43] Context-Sensitive Flow Graph and Projective Single Assignment Form for Resolving Context-Dependency of Binary Code
    Izumida, Tomonori
    Mori, Akira
    Hashimoto, Masatomo
    PLAS'18: PROCEEDINGS OF THE 13TH WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY, 2018, : 48 - 53
  • [44] NCE context-sensitive graph grammar for visual design languages
    Adachi, Yoshihiro
    Kobayashi, Suguru
    Tsuchida, Kensei
    Yaku, Takeo
    IEEE Symposium on Visual Languages, Proceedings, 1999, : 228 - 235
  • [45] A context-sensitive graph grammar formalism for the specification of visual languages
    Zhang, DQ
    Zhang, K
    Cao, JN
    COMPUTER JOURNAL, 2001, 44 (03): : 186 - 200
  • [46] Edge-based context-sensitive graph grammar formalism
    Zeng, Xiao-Qin
    Han, Xiu-Qing
    Zou, Yang
    Ruan Jian Xue Bao/Journal of Software, 2008, 19 (08): : 1893 - 1901
  • [47] Constructing VEGGE: Machine learning for context-sensitive graph grammars
    Ates, Keven
    Zhang, Kang
    19TH IEEE INTERNATIONAL CONFERENCE ON TOOLS WITH ARTIFICIAL INTELLIGENCE, VOL II, PROCEEDINGS, 2007, : 456 - 463
  • [48] 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
  • [49] Context-sensitive synchronization-sensitive analysis is undecidable
    Ramalingam, G
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2000, 22 (02): : 416 - 430
  • [50] Y A general parsing algorithm with context matching for context-sensitive graph grammars
    Zou, Yang
    Zeng, Xiaoqin
    Zhu, Yun
    MULTIMEDIA TOOLS AND APPLICATIONS, 2022, 81 (01) : 273 - 297