skip to main content
10.1145/12276.13317acmconferencesArticle/Chapter ViewAbstractPublication PagesplanConference Proceedingsconference-collections
Article
Free Access

Interprocedural optimization: eliminating unnecessary recompilation

Published:01 July 1986Publication History

ABSTRACT

While efficient new algorithms for interprocedural data flow analysis have made these techniques practical for use in production compilation systems, a new problem has arisen: collecting and using interprocedural information in a compiler introduces subtle dependences among the procedures of a program. If the compiler depends on interprocedural information to optimize a given module, a subsequent editing change to another module in the program may change the interprocedural information and necessitate recompilation. To avoid having to recompile every module in a program in response to a single editing change to one module, we must develop techniques to more precisely determine which compilations have actually been invalidated by a change to the program's source. This paper presents a general recompilation test to determine which procedures must be compiled in response to a series of editing changes. Three different implementation strategies, which demonstrate the fundamental tradeoff between the cost of analysis and the precision of the resulting test, are also discussed.

References

  1. AlCa 80.F.E. Allen et al. The experimental compiling system. IBM Journal of Research and Development, 24(6), 1980.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. ANSI 78.American National Standards Institute. American National Standard Programming Language Fortran, )(8.9-1978.]]Google ScholarGoogle Scholar
  3. Ball 79.J.E. Ball. Predicting the effects of optimization on a procedure body. Proceedings of the SIGPLAN 79 Symposium on Compiler Construction, SIGPLAN Notices, 14(8). 1979.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Burk 83.M. Burke. Private Communication. November, 1983.]]Google ScholarGoogle Scholar
  5. CCKT 86.D. Callahan, K.D. Cooper, K. Kennedy, and L. Torezon. Interprocedural constant propagation. Proceedinge of the SIGPLAN 86 Symposium on Compiler Construction. SIG- PLAN Notices, 21. 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Coop 85.K.D. Cooper. Analyzing aliases of reference formal parameters. Proceedings o/ the Twelfth POPL. January 1985.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. CoKe 84.K.D. Cooper and K. Kennedy. Efficient computation of flow insensitive interprocedural summary information. Proceedings of the SfGPLAN 84 Symposium on Compiler Con,truction. SIGPLAN Notices, 19(6). 1984.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. CoKT 86.K.D. Cooper, K. Kennedy and L. Torczon. Optimization of compiled code in the IR~ programming environment. Proceedings of the Nineteenth Annual Hawaii International Conference on System~ Sciences, 1986.]]Google ScholarGoogle Scholar
  9. Conr 83.R. Conradi. Inter-procedural optimization ol object code. TR 25/83, Division of Computer Science, University of Trondheim, Trondheim-NTH, Norway. 1983.]]Google ScholarGoogle Scholar
  10. DBMS 79.J.J. Dongarra, J.R. Bunch, C.B. Moler, and G.W. Stewart. LINPACK Users' Guide. SIAM, Philadelphia. 1979.]]Google ScholarGoogle Scholar
  11. Feld 79.S. Feldman. Make- a computer program for maintaining computer programs. Software Practice and Experience 9, 1979.]]Google ScholarGoogle Scholar
  12. KaUl 76.J. Kam and J.D. Ullman. Global data flow analysis and iterative algorithms. Journal of the A CM, 23(1). January 1976.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. KaUl 77.J. Kam and J.D. Ullman. Monotone data flow analysis frameworks. Acta Informatica, 7. 1977.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kenn 81.K. Kennedy. A survey of data flow analysis techniques. In Program Flow Analysis: Theory and Applications, New Jersey: Prentice-Hall. 1981.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Myer 81.E.W. Myers. A precise inter-procedural data flow algorithm. Proceeding~ of the Eighth POPL. January 1981.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Spil 71.T.C. Spillman. Exposing side-effects in a PL/I optimizing compiler. IFIPS Proceedings, 1971.]]Google ScholarGoogle Scholar
  17. TiBa 85.Tichy W. F. and M. C. Baker, "Smart Recompilation", Proceedings of the Twelfth POPL, 1985.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Torc 85.L. Torczon. Compilation dependences in an ambitious optimizing compiler. Ph.D. Dissertation, Department of Computer Science, Rice University, Houston, TX. May 1985.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Interprocedural optimization: eliminating unnecessary recompilation

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                SIGPLAN '86: Proceedings of the 1986 SIGPLAN symposium on Compiler construction
                July 1986
                275 pages
                ISBN:0897911970
                DOI:10.1145/12276

                Copyright © 1986 Authors

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 July 1986

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • Article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader