Program slicing with dynamic points-to sets

被引:16
|
作者
Mock, M [1 ]
Atkinson, DC
Chambers, C
Eggers, SJ
机构
[1] Univ Pittsburgh, Dept Comp Sci, Pittsburgh, PA 15260 USA
[2] Santa Clara Univ, Dept Comp Engn, Santa Clara, CA 95053 USA
[3] Univ Washington, Dept Comp Sci & Engn, Seattle, WA 98195 USA
关键词
dynamic analysis; points-to analysis; program slicing;
D O I
10.1109/TSE.2005.94
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Program slicing is a potentially useful analysis for aiding program understanding. However, in reality even slices of small programs are often too large to be useful. Imprecise pointer analyses have been suggested as one cause of this problem. In this paper, we use dynamic points-to data, which represents optimistic pointer information, to obtain a bound on the best case slice size improvement that can be achieved with improved pointer precision. Our experiments show that slice size can be reduced significantly for programs that make frequent use of calls through function pointers because for them the dynamic pointer data results in a considerably smaller call graph, which leads to fewer data dependences. Programs without or with only few calls through function pointers, however, show considerably less improvement. We discovered that C programs appear to have a significant fraction of direct and nonspurious pointer data dependences so that reducing spurious dependences via pointers is only of limited benefit. Consequently, to make slicing useful in general for such programs, improvements beyond better pointer analyses will be necessary. On the other hand, since we show that collecting dynamic function pointer information can be performed with little overhead ( average slowdown of 10 percent for our benchmarks), dynamic pointer information may be a practical approach to making slicing of programs with frequent function pointer use more successful in practice.
引用
收藏
页码:657 / 678
页数:22
相关论文
共 50 条
  • [1] Dynamic points-to sets: A comparison with static analyses and potential applications in program understanding and optimization
    Mock, M
    Das, M
    Chambers, C
    Eggers, SJ
    ACM SIGPLAN NOTICES, 2001, : 66 - 72
  • [2] Hash Consed Points-To Sets
    Barbar, Mohamad
    Sui, Yulei
    STATIC ANALYSIS, SAS 2021, 2021, 12913 : 25 - 48
  • [3] Flow insensitive points-to sets
    Anderson, P
    Binkley, D
    Rosay, G
    Teitelbaum, T
    FIRST IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2001, : 79 - 89
  • [4] Flow insensitive points-to sets
    Anderson, P
    Binkley, D
    Rosay, G
    Teitelbaum, T
    INFORMATION AND SOFTWARE TECHNOLOGY, 2002, 44 (13) : 743 - 754
  • [5] Points-to analysis for program understanding
    Tonella, P
    Antoniol, G
    Fiutem, R
    Merlo, E
    FIFTH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION - IWPC '97, PROCEEDINGS, 1997, : 90 - 99
  • [6] Points-to analysis for program understanding
    Fiutem, R
    Tonella, P
    Antoniol, G
    Merlo, E
    JOURNAL OF SYSTEMS AND SOFTWARE, 1999, 44 (03) : 213 - 227
  • [7] Compacting Points-To Sets through Object Clustering
    Barbar, Mohamad
    Sui, Yulei
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2021, 5 (OOPSLA):
  • [8] Refinement in Object-Sensitivity Points-To Analysis via Slicing
    Rama, Girish Maskeri
    Komondoor, Raghavan
    Sharma, Himanshu
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [9] Refinement in Object-Sensitivity Points-To Analysis via Slicing
    Rama, Girish Maskeri
    Komondoor, Raghavan
    Sharma, Himanshu
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2
  • [10] DYNAMIC PROGRAM SLICING
    AGRAWAL, H
    HORGAN, JR
    SIGPLAN NOTICES, 1990, 25 (06): : 246 - 256