Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Predicting the effects of optimization on a procedure body

Published: 01 August 1979 Publication History

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

[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]
Demers, Alan; Donahue, James; and Skinner, Glenn. Data Types as Values: Polymorphism, Type-checking, Encapsulation. Proc. 5th Annual ACM Symposium on Principles of Programming Languages, 1978, 23-30.
[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]
Harrison, William. A new strategy for code generation - the general purpose optimizing compiler. Proc. 4th ACM Symposium on Principles of Programming Languages, 1977, 29-37.
[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]
Hecht, Matthew S. Flow Analysis of Computer Programs. Elsevier North-Holland, Inc., New York.
[10]
Kildall, G. A. A Unified Approach to Global Program Optimization. Proc. ACM Symposium on Principles of Programming Languages, 1973, 194-206.
[11]
Lampson, B. W., Horning, J. J., London, R. L., Mitchell, J. G., and Popek, G. L. Report on the Programming Language Euclid. SigPlan Notices, 12, 2 (Feb. 1977), 1-79.
[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.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 14, Issue 8
Proceedings of the 1979 SIGPLAN symposium on Compiler construction
August 1979
234 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/872732
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGPLAN '79: Proceedings of the 1979 SIGPLAN symposium on Compiler construction
    August 1979
    241 pages
    ISBN:0897910028
    DOI:10.1145/800229

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 August 1979
Published in SIGPLAN Volume 14, Issue 8

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)53
  • Downloads (Last 6 weeks)13
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)BibliographyEngineering a Compiler10.1016/B978-0-12-815412-0.00023-1(793-813)Online publication date: 2023
  • (2023)Introduction to OptimizationEngineering a Compiler10.1016/B978-0-12-815412-0.00014-0(379-447)Online publication date: 2023
  • (2022)Inlining-Benefit Prediction with Interprocedural Partial Escape AnalysisProceedings of the 14th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3563838.3567677(13-24)Online publication date: 29-Nov-2022
  • (2018)Dominance-based duplication simulation (DBDS): code duplication to enable compiler optimizationsProceedings of the 2018 International Symposium on Code Generation and Optimization - CGO 201810.1145/3179541.3168811(126-137)Online publication date: 2018
  • (2018)Dominance-based duplication simulation (DBDS): code duplication to enable compiler optimizationsProceedings of the 2018 International Symposium on Code Generation and Optimization10.1145/3168811(126-137)Online publication date: 24-Feb-2018
  • (2005)Interprocedural parallelization analysis in SUIFACM Transactions on Programming Languages and Systems10.1145/1075382.107538527:4(662-731)Online publication date: 1-Jul-2005
  • (2005)Fast and effective procedure inliningStatic Analysis10.1007/BFb0032732(35-52)Online publication date: 15-Jun-2005
  • (2004)Interprocedural constant propagationACM SIGPLAN Notices10.1145/989393.98941239:4(155-166)Online publication date: 1-Apr-2004
  • (1993)A methodology for procedure cloningComputer Languages10.1016/0096-0551(93)90005-L19:2(105-117)Online publication date: Apr-1993
  • (1992)Inlining semantics for subroutines which are recursiveACM SIGPLAN Notices10.1145/142181.14219327:12(39-46)Online publication date: 1-Dec-1992
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media