|
ABSTRACT
Practical application of procedure integration (inline expansion) as a program optimization requires some method for estimating the effects of subsequent optimization on the integrated procedure. A technique is described for predicting the code improvement that can be expected due to constant folding and test elision when a procedure call involving constant actual parameters is integrated. The technique is based on information collected during a single data flow analysis of each procedure body, and on execution frequency statistics for the procedure. This information can then be used to estimate the cost in code size and the benefit in execution speed of integrating each call to the procedure. The algorithm uses a syntax directed analysis technique suitable for structured programming languages without gotos.
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.
| |
1
|
Allen, Frances E. and Cocke, John. A catalogue of optimizing transformations. RC 3548, IBM T. J. Watson Research Center, Yorktown Heights, N.Y., September 1971.
|
| |
2
|
Allen, Frances E. Interprocedural data flow analysis. Proc. IFIP Congress 74, North Holland Publishing Co., Amsterdam, 1974, 398-402.
|
| |
3
|
Allen, F. E., Carter, J. L., Harrison, W. H., Loewner, P. G., Tapscott, R. P., Trevillyan, L. H., and Wegman, M.N. The Experimental Compiling Systems Project. IBM T. J. Watson Research Center, Yorktown Heights, N.Y., August 1977.
|
| |
4
|
Ball, Eugene; Williams, Graeme; and Low, James. Zeno Preliminary Language Description. TR41, University of Rochester Computer Science Department, Rochester, NY, December 1978.
|
 |
5
|
Alan Demers , James Donahue , Glenn Skinner, Data types as values: polymorphism, type-checking, encapsulation, Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.23-30, January 23-25, 1978, Tucson, Arizona
[doi> 10.1145/512760.512764]
|
| |
6
|
Harrison, William. Compiler analysis of the value ranges for variables. RC 5544, IBM T. J. Watson Research Center, Yorktown Heights, N.Y., July 1975.
|
 |
7
|
|
| |
8
|
Hilfinger, Paul; Feldman, Gary; Fitzgerald, Robert; Kimura, Izumi; London, Ralph L.; Prasad, K. V. S.; Prasad, V. R.; Rosenberg, Jonathan; Shaw, Mary; and Wulf, William A. An Informal Definition of Alphard (Preliminary). Computer Science Department, Carnegie-Mellon University, Pittsburgh, Pa, February 1978.
|
| |
9
|
|
 |
10
|
|
 |
11
|
|
| |
12
|
Liskov, Barbara; Moss, Eliot; Schaffert, Craig; Scheifler, Bob; and Snyder, Alan. CLU Reference Manual. Computation Structures Group Memo 161, Massachusetts Institute of Technology, Laboratory for Computer Science, July 1978.
|
| |
13
|
Mitchell, James G. and Wegbreit, Ben. Schemes: A High Level Data Structuring Concept. CSL-77-1, Xerox Palo Alto Research Center, Palo Alto, Ca., January 1977.
|
| |
14
|
Zelkowitz, M.V. and Bail, W.G. Optimization of structured programs. Software Practice and Experience, 4 (1974), 51-57.
|
|