MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  A Hierarchical Approach to Context-Sensitive Interprocedural Alias Analysis

Download:
Download as a PDF | Download as a PS
by Bixia Zheng, Pen-chung Yew
http://www.cs.umn.edu/Research/Agassiz/Paper/bzheng.tr99-018.ps
Add To MetaCart

Abstract:

In this paper, we present a hierarchical flow-sensitive alias analysis algorithm which parameterizes the context-sensitive level. Our approach groups the pointers in a program by their maximum possible dereference levels. It then orders the analysis of each pointer group by its pointer level, starting from the highest level down to the lowest level. During the analysis of each pointer group, a bottom-up traversal of a program call graph is followed by a top-down traversal with the necessary interprocedural information propagated along the way. The interprocedural information is tagged with call-chains, which are the program call graph paths, to achieve context-sensitivity. We also provide empirical results to quantify how different context-sensitive levels affect the precision and the efficiency of the algorithm. Our studies show that (1) the precision improvement achieved by increasing the context-sensitive level of the analysis varies significantly depending on the programs analyzed; (2) increasing the maximum call-chain length for a higher degree of context sensitivity may trigger the exponential complexity problem [15, 10, 23]. Thus, it is very desirable for an algorithm to allow users to select an appropriate context-sensitive level that works best for a particular program. By parameterizing the maximum call-chain length used in tagging the interprocedural information, our approach provides this type of flexibility.

Citations

339 Effective context-sensitive pointer analysis for C programs – Wilson, Lam - 1995
329 Context-sensitive interprocedural points-to analysis in the presence of function pointers – Enami, Ghiya, et al. - 1994
301 A safe approximate algorithm for interprocedural pointer aliasing – Landi, Ryder - 1992
216 Two approaches to interprocedural data flow analysis – Sharir, Pnueli - 1981
187 Interprocedural May-Alias Analysis for Pointers: Beyond k-limiting – Deutsch - 1994
179 Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects – Choi, Burke, et al. - 1993
152 Is it a Tree, a DAG, or a Cyclic Graph? A shape analysis for heap-directed pointers in C – Ghiya, Hendren - 1996
122 Context-insensitive alias analysis reconsidered – Ruf - 1995
114 Interprocedural modification side effect analysis with pointer aliasing – Landi, Ryder, et al. - 1993
111 Pointer-induced aliasing: A problem classification – Landi, Ryder - 1991
108 Automatic construction of sparse data flow evaluation graphs – Choi, Cytron, et al. - 1991
65 Connection analysis: A practical interprocedural heap analysis for C – Ghiya, Hendren - 1995
62 Interprocedural def-use associations for C systems with single level pointers – Pande, Landi, et al. - 1994
59 The undecidability of aliasing – Ramalingam - 1994
54 Efficient computation of interprocedural definition-use chains – Harrold, Soffa - 1994
43 Program decomposition for pointer aliasing: A step towards practical analyses – Zhang, Ryder, et al. - 1996
26 Assesing the effects of flow-sensitivity on pointer alias analyses – Hind, Pioli - 1998
23 Partitioning dataflow analyses using types – Ruf - 1997
19 Experiments with combined analysis for pointer aliasing – Zhang, Ryder, et al. - 1998
6 An Empirical Comparison of Interprocedural Pointer Alias Analyses – Hind, Pioli - 1997
3 Context-sensitive interprocedural analysis in the presence of dynamic aliasing – Sathyanathan, Lam - 1996
1 Pointer intensive programs – Austin
1 Interprocedural pointer anlias analysis – Burke, Carini, et al. - 1997