Generic Sensitivity: Customizing Context-Sensitive Pointer Analysis for Generics

被引:3
|
作者
Li, Haofeng [1 ,2 ]
Lu, Jie [1 ]
Meng, Haining [1 ,2 ]
Cao, Liqing [1 ,2 ]
Huang, Yongheng [1 ,2 ]
Li, Lian [1 ,2 ]
Gao, Lin [3 ]
机构
[1] Chinese Acad Sci, SKLP, Inst Comp Technol, Beijing, Peoples R China
[2] Univ Chinese Acad Sci, Beijing, Peoples R China
[3] TianqiSoft Inc, Chengdu, Sichuan, Peoples R China
来源
PROCEEDINGS OF THE 30TH ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2022 | 2022年
基金
美国国家科学基金会;
关键词
pointer analysis; generic programming; context sensitivity; TO ANALYSIS;
D O I
10.1145/3540250.3549122
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Generic programming has been extensively used in object-oriented programs such as Java. However, existing context-sensitive pointer analyses perform poorly in analyzing generics. This paper introduces generic sensitivity, a new context customization scheme targeting generics. We design our context customization scheme in such a way that generic instantiation sites, i.e., locations instantiating generic classes/methods with concrete types, are always preserved as key context elements. This is realized by augmenting contexts with a type variable lookup map, which is efficiently updated during the analysis in a context-sensitive manner. We have implemented different variants of generic-sensitive analysis in WALA and experimental results show that the generic customization scheme can significantly improve performance and precision of context-sensitive pointer analyses. For instance, generic context customization significantly improves precision of 1-object-sensitive analysis, with an average speedup of 1.8x. In addition, generic context customization enables a 1-object-sensitive analysis to achieve overall better precision than a 2-object-sensitive analysis, with an averagely speed up of 12.6 x (62 x for chart).
引用
收藏
页码:1110 / 1121
页数:12
相关论文
共 50 条
  • [1] Generic sensitivity: customizing context-sensitive pointer analysis for generics
    Li, Haofeng
    Lu, Jie
    Meng, Haining
    Cao, Liqing
    Huang, Yongheng
    Li, Lian
    Gao, Lin
    ESEC/FSE 2022 - Proceedings of the 30th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2022, : 1110 - 1121
  • [2] Generic Sensitivity: Generics-Guided Context Sensitivity for Pointer Analysis
    Li, Haofeng
    Tan, Tian
    Li, Yue
    Lu, Jie
    Meng, Haining
    Cao, Liqing
    Huang, Yongheng
    Li, Lian
    Gao, Lin
    Di, Peng
    Lin, Liang
    Cui, Chenxi
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2024, 50 (05) : 1144 - 1162
  • [3] EFFICIENT CONTEXT-SENSITIVE POINTER ANALYSIS FOR C PROGRAMS
    WILSON, RP
    LAM, MS
    SIGPLAN NOTICES, 1995, 30 (06): : 1 - 12
  • [4] A generic framework for context-sensitive analysis of modular programs
    Puebla, G
    Correas, J
    Hermenegildo, MV
    Bueno, F
    de la Banda, MG
    Marriott, K
    Stuckey, PJ
    PROGRAM DEVELOPMENT IN COMPUTATIONAL LOGIC: A DECADE OF RESEARCH ADVANCES IN LOGIC-BASED PROGRAM DEVELOPMENT, 2004, 3049 : 233 - 260
  • [5] Bootstrapping: A Technique for Scalable Flow and Context-Sensitive Pointer Alias Analysis
    Kahlon, Vineet
    PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION, 2008, : 249 - 259
  • [6] SHARP: Fast Incremental Context-Sensitive Pointer Analysis for Java']Java
    Liu, Bozhen
    Huang, Jeff
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA):
  • [7] Bootstrapping: A technique for scalable flow and context-sensitive pointer alias analysis
    Kahlon, Vineet
    ACM SIGPLAN NOTICES, 2008, 43 (06) : 249 - 259
  • [8] Bottom-Up Context-Sensitive Pointer Analysis for Java']Java
    Feng, Yu
    Wang, Xinyu
    Dillig, Isil
    Dillig, Thomas
    PROGRAMMING LANGUAGES AND SYSTEMS, APLAS 2015, 2015, 9458 : 465 - 484
  • [9] Cycle elimination for invocation graph-based context-sensitive pointer analysis
    Choi, Woongsik
    Choe, Kwang-Moo
    INFORMATION AND SOFTWARE TECHNOLOGY, 2011, 53 (08) : 818 - 833
  • [10] Precise and Scalable Context-Sensitive Pointer Analysis via Value Flow Graph
    Li, Lian
    Cifuentes, Cristina
    Keynes, Nathan
    PROCEEDINGS OF THE ACM SIGPLAN INTERNATIONAL SYMPOSIUM ON MEMORY MANAGEMENT (ISMM '13), 2013, : 85 - 96