MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Program decomposition for pointer aliasing: A step towards practical analyses (1996) [43 citations — 17 self]

Download:
Download as a PDF | Download as a PS
by Sean Zhang, Barbara G. Ryder, William Landi
In Symposium on the Foundations of Software Engineering
http://www.prolangs.rutgers.edu/refs/docs/fse96.ps
Add To MetaCart

Abstract:

Pointer aliasing analysis is crucial to compile-time analyses for languages with general-purpose pointer usage (such as C), but many aliasing methods have proven quite costly. We present a technique that partitions the statements of a program to allow separate, and therefore possibly different, pointer aliasing analysis methods to be used on independent parts of the program. This decomposition enables exploration of tradeoff between algorithm efficiency and precision. We also present a new, efficient flow-insensitive pointer aliasing algorithm, which is used together with an existing flow-sensitive aliasing algorithm in our experiments. We demonstrate our technique in the context of determining side effects and variable fetches through names containing pointer dereferences (Thru-deref MOD/REF). Initial empirical results using a combination of a flow-sensitive and a flowinsensitive aliasing analysis on the same program, demonstrate that the resulting analysis is much faster than solely using the flow-sensitive method, and obtains similar precision for the Thruderef MOD/REF problems. 1

Citations

599 Data Structures and Algorithms – Aho, Hopcroft, et al. - 1983
519 Interprocedural slicing using dependence graphs – Horwitz, Reps, et al. - 1990
504 Data structures and network algorithms – Tarjan - 1983
415 Points-to analysis in almost linear time – Steensgaard - 1996
403 Program Analysis and Specialization for the C Programming Language. PhDthesis, University of Copenhagen, DIKU, DIKU report 94/19 – Andersen - 1994
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
318 Analysis of pointers and structures – Chase, Wegman, et al. - 1990
301 A safe approximate algorithm for interprocedural pointer aliasing – Landi, Ryder - 1992
249 Solving shape-analysis problems in languages with destructive updating – Sagiv, Reps, et al. - 1998
215 Intergrating Noninterfering Version of Programs – Horwitz, Reps, et al. - 1989
211 Selecting software test data using data flow information – Rapps, Weyuker - 1985
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
155 Detecting conflicts between structure accesses – Larus, Hilfinger - 1988
152 Is it a Tree, a DAG, or a Cyclic Graph? A shape analysis for heap-directed pointers in C – Ghiya, Hendren - 1996
147 An applicable family of data flow testing criteria – Frankl, Weyuker - 1988
135 Detecting parallelism in C programs with recursive data structures – Ghiya, Hendren, et al. - 1998
129 Dependence analysis for pointer variables – HORWITZ, PFEIFFER, et al.
122 Context-insensitive alias analysis reconsidered – Ruf - 1995
120 Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria – Hutchins, Foster, et al. - 1994
114 Interprocedural modification side effect analysis with pointer aliasing – Landi, Ryder, et al. - 1993
111 Pointer-induced aliasing: A problem classification – Landi, Ryder - 1991
65 FlowInsensitive Interprocedural Alias Analysis – Burke, Carini, et al. - 1994
65 Interprocedural data flow analysis in the presence of pointers, procedure variables, and label variables – Weihl - 1980
59 The undecidability of aliasing – Ramalingam - 1994
54 Efficient computation of interprocedural definition-use chains – Harrold, Soffa - 1994
53 Interprocedural Aliasing in the Presence of Pointers – Landi - 1992
46 An efficient hybrid algorithm for incremental data flow analysis – MARLOWE, G - 1990
44 Incremental data flow analysis algorithms – Ryder, Paull - 1988
39 Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors – Larus - 1989
37 Interprocedural Data Flow Testing – Harrold, Sofia - 1989
37 A program integration algorithm that accommodates semantics-preserving transformations – Yang, Horwitz, et al. - 1992
32 Incremental data flow analysis in a structured program editor – Zadeck - 1984
24 Pointer-induced aliasing: A clarification – MARLOWE, LANDI, et al. - 1993
22 Incremental data flow analysis via dominator and attribute updates – CARROLL, G - 1988
11 ISMM: The Incremental Software Maintenance Manager – Ryder - 1989
10 Data-flow testing with pointers and function calls – Ostrand - 1990
3 Program decomposition for pointer-induced aliasing analysis – Zhang, Ryder, et al. - 1996
2 Undecidability of static analysis. ACM letters on programming languages and systems – Landi - 1992
1 Incremental anlaysis of the mod problem for c – Yur, Ryder - 1995