|
ABSTRACT
This paper presents a general framework for deriving demand-driven algorithms for interprocedural data flow analysis of imperative programs. The goal of demand-driven analysis is to reduce the time and/or space overhead of conventional exhaustive analysis by avoiding the collection of information that is not needed. In our framework, a demand for data flow information is modeled as a set of date flow queries. The derived demand-driven algorithms find responses to these queries through a partial reversal of the respective data flow analysis. Depending on whether minimizing time or space is of primary concern, result caching may be incorporated in the derived algorithm. Our framework is applicable to interprocedural data flow problems with a finite domain set. If the problem's flow functions are distributive, the derived demand algorithms provide as precise information as the corresponding exhaustive analysis. For problems with monotone but non-distributive flow functions the provided data flow solutions are only approximate. We demonstrate our approach using the example of interprocedural copy constant propagation.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
Bir84
|
G. Birkhoff. Lattice theory, volume 25. American Mathematical Society, Colloquium Publication, Washington, DC, 3rd edition, '84.
|
| |
BJ78
|
W.A. Babich and M. Jazayeri. The method of attributes for data flow analysis: Part II. Demand analysis. Acta Informatica, 10(3), Oct. '78.
|
 |
Bou93
|
|
| |
CC77
|
P. Cousot and R. Cousot. Static determination of dynamic properties of recursive procedures. In E.J. Neuhold, editor, IFIP Conf. on Formal Description of Programming Concepts, pases 237--277. North- Hollan Pub. Co., '77.
|
 |
CCF90
|
Jong-Deok Choi , Ron Cytron , Jeanne Ferrante, Automatic construction of sparse data flow evaluation graphs, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.55-66, January 21-23, 1991, Orlando, Florida, United States
[doi> 10.1145/99583.99594]
|
| |
CCF92
|
|
 |
CG93
|
|
| |
CHK92
|
K. Cooper, M. Hall, and K. Kennedy. Procedure cloning. In IEEE 1992 Int. Conf. on Computer Languages, pages 96-105, San Francisco, CA, April 1992.
|
 |
CK88
|
|
 |
Coo85
|
|
| |
Cou81
|
P. Cousot. Semantic foundations of program analysis. In S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Apphcations, pages 303- 342. Prentice-Hall, '81.
|
| |
DGS94
|
|
 |
DRZ92
|
Dhananjay M. Dhamdhere , Barry K. Rosen , F. Kenneth Zadeck, How to analyze large programs efficiently and informatively, Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.212-223, June 15-19, 1992, San Francisco, California, United States
|
 |
GT93
|
|
| |
HL92
|
|
 |
JM73
|
|
 |
JM82
|
|
 |
JP93
|
|
 |
Kil73
|
|
| |
KS92
|
|
| |
KU77
|
J.B. Kam and J.D. Ullman. Monotone data flow analysis frameworks. Acta Informatica, 7(3):305-317, Jul. '77.
|
 |
Mas94
|
|
 |
Mye81
|
|
| |
PS89
|
|
| |
Rep94
|
|
 |
Ros79
|
|
 |
Ros81
|
|
 |
RP88
|
|
| |
RSH94
|
T. Reps, M. Sagiv, and S. Horwitz. Interprocedural datatiow analysis via graph reachability. Technical Report 94-14, Datalogisk Institut, University of Copenhagen, Copenhagen, Denmark, '94.
|
| |
RT82
|
J. Reif and R.E. Tarjan. Symbolic program analysis in almost linear time. SIAM Journal of Computing, 11 (1):81-93, Feb. '82.
|
 |
RWZ88
|
B. K. Rosen , M. N. Wegman , F. K. Zadeck, Global value numbers and redundant computations, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.12-27, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73562]
|
| |
SMHY93
|
A.D. Stoyenko, T.J. Marlowe, W.A. Halang, and M. Younis. Enabling efficient schedulability analysis through conditional linking and program transformations. Control Engineering Practice, 1(1):85-105, '93.
|
| |
SP81
|
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Applications, pages 189-234. Prentice-Hall, '81.
|
| |
SY93
|
|
 |
WZ85
|
|
 |
Zad84
|
|
CITED BY 21
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thomas Reps , Susan Horwitz , Mooly Sagiv, Precise interprocedural dataflow analysis via graph reachability, Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.49-61, January 23-25, 1995, San Francisco, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jyh-shiarn Yur , Barbara G. Ryder , William A. Landi, An incremental flow- and context-sensitive pointer aliasing analysis, Proceedings of the 21st international conference on Software engineering, p.442-451, May 16-22, 1999, Los Angeles, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|