This paper describes the first algorithm that calculates Interprocedural Def-Use Associations in C software systems. Our algorithm accounts for program-point-specific pointer-induced aliases, although it is currently limited to programs using a single level of indirection. We prove the NP-hardness of the Interprocedural Reaching Definitions Problem and point out the approximation made by our polynomial-time algorithm. Initial empirical results are also presented. 3
|
908
|
Program slicing
– Weiser
- 1984
|
|
519
|
Interprocedural slicing using dependence graphs
– Horwitz, Reps, et al.
- 1990
|
|
318
|
Analysis of pointers and structures
– Chase, Wegman, et al.
- 1990
|
|
301
|
A safe approximate algorithm for interprocedural pointer aliasing
– Landi, Ryder
- 1992
|
|
234
|
The Program Dependence Graph in a Software Development
– Ottenstein, Ottenstein
|
|
214
|
Dynamic program slicing
– Agrawal, Horgan
- 1990
|
|
211
|
Selecting software test data using data flow information
– Rapps, Weyuker
- 1985
|
|
188
|
Flow analysis and optimization of lisp-like structures
– Jones, Muchnick
- 1981
|
|
155
|
Detecting conflicts between structure accesses
– Larus, Hilfinger
- 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.
|
|
111
|
Pointer-induced aliasing: A problem classification
– Landi, Ryder
- 1991
|
|
110
|
A precise interprocedural data flow algorithm
– Myers
- 1981
|
|
92
|
The program summary graph and flow-sensitive interprocedural data flow analysis
– Callahan
- 1988
|
|
89
|
The Semantic Approach to Program Slicing
– Venkatesh
- 1991
|
|
72
|
Fast interprocedural alias analysis
– Cooper, Kennedy
|
|
68
|
On Determining Lifetime and Aliasing of Dynamically Allocated Data in Higher Order Functional Specifications
– Deutsch
- 1990
|
|
65
|
Dynamic slicing of computer programs
– Korel, Laski
|
|
65
|
Interprocedural data flow analysis in the presence of pointers, procedure variables, and label variables
– Weihl
- 1980
|
|
64
|
A practical interprocedural data flow analysis algorithm
– Barth
- 1978
|
|
53
|
Interprocedural Aliasing in the Presence of Pointers
– Landi
- 1992
|
|
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
|
|
36
|
Efficient computation of flow insensitive interprocedural summary information
– COOPER, K
- 1984
|
|
23
|
A technique for analyzing pointer and structure references in parallel restructuring compilers
– Guarna
- 1988
|
|
20
|
Retargetable high-level alias analysis
– COUTANT
- 1986
|
|
13
|
A data flow testing tool
– Frankl, Weyuker
- 1985
|
|
12
|
The design of a data flow analyzer
– Chow, Rudmik
- 1982
|
|
11
|
Ambitious data flow analysis of procedural programs
– COOPER
- 1989
|
|
11
|
Computation of aliases and support sets
– NEIRYNCK, PANANGADEN, et al.
- 1987
|
|
11
|
ISMM: The Incremental Software Maintenance Manager
– Ryder
- 1989
|
|
10
|
Data-flow testing with pointers and function calls
– Ostrand
- 1990
|
|
9
|
Parcel and Miprac: parallelizers for symbolic and numeric programs
– Harrison, Ammarguellat
- 1990
|
|
9
|
An incremental algorithm for software analysis
– Carroll, Ryder
- 1987
|
|
8
|
Data Flow Analysis in the Presence of Procedure Calls
– Lomet
- 1977
|
|
7
|
Data flow based test adequecy analysis for languages with pointers
– Ostrand, Weyuker
- 1991
|
|
6
|
Computation of interprocedural definition and use dependencies
– Harrold, Soffa
- 1990
|
|
5
|
An integrated program representation and toolkit for the maintenance of C programs
– Platoff, Wagner, et al.
- 1991
|
|
4
|
Aliasing with and without Pointers: A Problem Taxonomy
– Landi, Ryder
- 1990
|
|
1
|
Interprocedural definition-use dependency analysis for recursive procedures
– Liu, Taha
- 1990
|
|
1
|
Static Analysis in the Presence of Pointers
– Pande
- 1993
|