Abstract:
The paper shows how a large class of interprocedural dataflow-analysis problems can be solved precisely in polynomial time by transforming them into a special kind of graph-reachability problem. The only restrictions are that the set of dataflow facts must be a finite set, and that the dataflow functions must distribute over the confluence operator (either union or intersection). This class of problems includes---but is not limited to---the classical separable problems (also known as "gen/kill" or "bit-vector" problems)---e.g., reaching definitions, available expressions, and live variables. In addition, the class of problems that our techniques handle includes many non-separable problems, including truly-live variables, copy constant propagation, and possibly-uninitialized variables. Results are reported from a preliminary experimental study of C programs (for the problem of finding possiblyuninitialized variables). 1. Introduction This paper shows how to find precise solutions to a...
Citations
|
6121
|
Introduction to Algorithms
– Cormen, Leiserson, et al.
- 2001
|
|
2010
|
The Design and Analysis of Computer Algorithms
– Aho, Hopcroft, et al.
- 1974
|
|
246
|
Magic sets and other strange ways to implement logic programs
– Bancilhon, Maier, et al.
- 1986
|
|
234
|
Two approaches to interprocedural data flow analysis
– Sharir, Pnueli
- 1981
|
|
232
|
A unified approach to global program optimization
– Kildall
- 1973
|
|
205
|
On the power of magic
– BEERI, R
- 1987
|
|
108
|
On affine relationships among variables of a program
– Karr
- 1976
|
|
94
|
The program summary graph and flow-sensitive interprocedural data flow analysis
– Callahan
- 1988
|
|
79
|
Interprocedural constant propagation
– Callahan, Cooper, et al.
- 1986
|
|
76
|
Static determination of dynamic properties of recursive procedures
– Cousot, Cousot
- 1977
|
|
75
|
Demand-driven computation of interprocedural data flow
– Duesterwald, Gupta, et al.
- 1995
|
|
75
|
The interprocedural coincidence theorem
– Knoop, Steffen
- 1992
|
|
55
|
Demand interprocedural dataflow analysis
– Horwitz, Reps, et al.
- 1995
|
|
53
|
Data flow analysis of applicative programs using minimal function graphs
– Jones, Mycroft
- 1986
|
|
40
|
The Alexander method: a technique for the processing of recursive atoms in deductive databases
– Rohmer, Lescoeur, et al.
- 1986
|
|
39
|
Crafting a Compiler
– Fischer, LeBlanc
- 1988
|
|
39
|
Demand interprocedural program analysis using logic databases
– Reps
- 1993
|
|
38
|
Data flow frequency analysis
– Ramalingam
|
|
31
|
Solving Demand Versions of Interprocedural Analysis Problems
– Reps
- 1994
|
|
20
|
Invariance of approximative semantics with respect to program transformations
– Giegerich, Moncke, et al.
- 1981
|
|
18
|
Interprocedural constant propagation: an empirical study
– Metzger, Stroud
- 1992
|
|
16
|
Flow-sensitive interprocedural constant propagation
– Carini, Hind
- 1995
|
|
9
|
induced aliasing: A problem classification
– Pointer
- 1991
|
|
5
|
Finite constants: Characterizations of a new decidable set of constants
– Steffen, Knoop
- 1991
|
|
1
|
A study of jump function implementations
– Grove, Torczon
- 1993
|