ABSTRACT
We present a flow-sensitive interprocedural constant propagation algorithm, which supports recursion while only performing one flow-sensitive analysis of each procedure. We present experimental results which show that this method finds substantially more constants than previous methods and is efficient in practice. We introduce new metrics for evaluating interprocedural constant propagation algorithms which measure the number of interprocedural constant values that are propagated. We use these metrics to provide further experimental results for our algorithm.
- 1.Frances Allen, Michael Burke, Philippe Charles, Ron Cytron, and Jeanne Ferrante. An overview of the ptran analysis system for multiprocessing. Journal of Parallel and Distributed Computing, 5(5):617-640, 1988. Google ScholarDigital Library
- 2.Frances E. Allen. Interprocedural data flow analysis. Proc. IFIP Congress 74, pages 398-402, 1974.Google Scholar
- 3.Subra Balan and Walter Bays editors. Spec announces new benchmark suites cint92 and cfp92. Technical report, Systems Performance Evaluation Cooperative, March 1992. SPEC Newsletter, Volume4, Issue 1.Google Scholar
- 4.John Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. 6th Annual ACM Symposium on the Principles of Programming Languages, pages 29-4 i, January 1979. Google ScholarDigital Library
- 5.David Binkley. Interprocedural constant propagation using dependence graphs and a data-flow model. In International Conference on Compiler Construction, 1994. Google ScholarDigital Library
- 6.Michael Burke. An interval-based approach to exhaustive and incremental interprocedural data-flow analysis. ACM Transactions on Programming Languages and Systems, 12(3):341-395, July 1990. Google ScholarDigital Library
- 7.Michael Burke and Paul Carini. Compile-Time Measurements of Interprocedural Data-Sharing in FOR- TRAN Programs. RC 17389 76684, IBM- T.J. Watson Research Center, November 1991.Google Scholar
- 8.Michael Burke, Paul Carini, Jong-Deok Choi, and Michael Hind. Flow-insensitive interprocedural alias analysis in the presence of pointers. In K. Pingali, U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, editors, Lecture Notes in Computer Science, 892, pages 234-250. Springer-Verlag, 1995. Proceedings from the 7th International Workshop on Languages and Compilers for Parallel Computing. Extended version published as Research Report RC 19546, IBM T. J. Watson Research Center, September, 1994. Google ScholarDigital Library
- 9.Michael Burke and Ron Cytron. interprocedura}~ dependence analysis and parallelization. In SIGPLAN '86 Symposium on Compiler Construction, pages 162-175. ACM, July 1986. Google ScholarDigital Library
- 10.David Callahan. Keith D. Cooper. Ken Kennedy, and Linda Torczon. Interprocedural constant propagation. In SIGPLAN '86 Symposium on Compiler Construction, pages 152-161, July 1986. Google ScholarDigital Library
- 11.Jong-Deok Choi, Michael Burke, and Paul Carini. Efficient flow-sensitive interprocedural computation of pointer-induces aliases and side effects. In 20th Annual ACM SIGACT-SIGPLAN Symposium on the Principles of Programming Languages, pages 232-245, January 1993. Google ScholarDigital Library
- 12.K eith Cooper and Ken Kennedy. Efficient computation of flow insensitive interprocedural summary information. In SIGPLAN '84 Symposium on Compiler Construction, pages 247-258, June 1984. SIGPLAN Notices, Vol 19, No 6. Google ScholarDigital Library
- 13.Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. W~gman, and F. Kenneth Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems, October 1991. Google ScholarDigital Library
- 14.Jeanne Ferrante, Karl J. Ottenstein, and Joe Warren. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems, 9(3):319-349, July 1987. Google ScholarDigital Library
- 15.Dan Grove. Private Communication, October 1994.Google Scholar
- 16.Dan Grove and Linda Torczon. Interprocedural const~mt propagation: A study of jump function implementations. In SIGPLAN '93 Conference on Programming Language Design and Implementation, pages 90-99, June 1993. SiGPLAN Notices 286. Google ScholarDigital Library
- 17.Michael Hind, Michael Burke, Paul Carini, and Sam Midkiff. A comparison of interprocedural array analysis methods. Scientific Programming, 3:255-271, 1994. Google ScholarDigital Library
- 18.D. J. Kuck, R. H. Kuhn, D. A. Padua, B. Leasure, and Michael Wolfe. Dependence graphs and compiler optimizations. In 8th Annual ACM Symposium on the Principles of Programming Languages, pages 207-218, 19'81. Google ScholarDigital Library
- 19.T.J. Marlowe, B.G. Ryder, and M.G. Burke. Defining flow-sensitivity in data flow problems. In Preparation, 1995.Google Scholar
- 20.R. Metzger and S. Stroud. Interprocedural constant propagation: An empirical study. ACM Letters on Programming Languages and Systems, 2(I-4), 1993. Google ScholarDigital Library
- 21.Joseph Uniejewski. Spec benchmark suite: Designed for today's advanced systems. Technical report, Systems Performance Evualation Cooperative, Fall 1989. SF'EC Newsletter, Volume 1, Issue 1.Google Scholar
- 22.Mark N. Wegman and F. Kenneth Zadeck. Const,rot propagation with conditional branches. A CM Transactions on Programming Languages and Systems, 13(2):181-210, 1991. Google ScholarDigital Library
Index Terms
- Flow-sensitive interprocedural constant propagation
Recommendations
Flow-sensitive interprocedural constant propagation
We present a flow-sensitive interprocedural constant propagation algorithm, which supports recursion while only performing one flow-sensitive analysis of each procedure. We present experimental results which show that this method finds substantially ...
Interprocedural constant propagation: an empirical study
Constant propagation is an optimization that substitutes values for names. Interprocedural constant propagation performs this substitution throughout an entire program, propagating constant values across procedure boundaries. CONVEX Computer Corporation ...
Comments