skip to main content
article
Free Access

The impact of interprocedural analysis and optimization on the design of a software development environment

Authors Info & Claims
Published:25 June 1985Publication History
Skip Abstract Section

Abstract

One of the primary goals of the IRn programming environment project is to mount a concerted attack on the problems of performing interprocedural analysis and optimization in a compiler. Few commercial optimizing compilers employ interprocedural techniques because the cost of gathering the requisite information in a traditional compiler is too great. Computing the side effects of a procedure call requires detailed knowledge of the internals of both the called procedure and any procedures invoked either directly or indirectly from it. Thus, the compiler potentially needs information about the internals of every procedure to determine the side effects of procedure calls, even separately compiled procedures. Gathering this information would require examining the source of every procedure in the program - an expensive process, particularly unfortunate since the primary goal of separate compilation is to reduce the amount of recompilation required in response to changes in an individual procedure.

The existence of a software development environment like the IRn programming environment [HoKe 84] changes the compilation process enough to make computing such information palatable. Since all modules are developed and all programs are defined using tools of the environment, these tools can cooperate to record the information necessary to do a good job of interprocedural analysis and optimization. Whenever the compiler needs information about possible side effects of a particular procedure, it can simply extract this information from the environment's central database. Because the only mechanism for changing modules or programs is through the tools provided by the environment, the compiler is assured that it will be notified of any changes. Thus, it can use information derived from previous analysis with certain knowledge that the information reflects the current state of the program and its procedures.

References

  1. 1 Allen, J.R. and Kennedy, K., "PFC: a Program to Convert Fortran to Parallel Form", Report MASC TR 82-6, Dept. of Mathematical Sciences, Rice University, Houston, TX, March 1982.Google ScholarGoogle Scholar
  2. 2 Ball, J.E., "Predicting the Effects of Optimization on a Procedure Body", Proceedings of the Sigplan Symposium on Compiler Construction, SIGPLAN Notices, 14(8), 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Caplinger, M.A., "A Simple Intermediate Language for Programming Environments", Ph.D. Dissertation, Department of Computer Science, Rice University, Houston TX, May 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Comer, R.S., "Data Breakpoints", Ph.D. Dissertation, Department of Computer Science, Rice University, Houston, TX, expected Fall 1985.Google ScholarGoogle Scholar
  5. 5 Cooper, K.D., "Interprocedural Data Flow Analysis in a Programming Environment", Ph.D. Dissertation, Department of Mathematical Sciences, Rice University, Houston TX, May 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Cooper, K.D., "Analyzing Aliases of Reference Formal Parameters", Proceedings of the Twelfth Annual ACM Symposium on Principles of Programming Languages, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Cooper, K.D. and K.W. Kennedy, "Efficient Computation of Flow Insensitive Interprocedural Summary Information", Proceedings of the Sigplan Symposium on Compiler Construction, SIGPLAN Notices, 19(6), 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 Dongarra, J., "LINPACK Working Note 3: FORTRAN BLAS Timing",# Technical Report ANL-80-24, Argonne National Laboratory, February 1980.Google ScholarGoogle Scholar
  9. 9 Fabri, J., "Automatic Storage Optimization", Proceedings of the SIGPLAN Symposium on Compiler Construction, SIGPLAN Notices, 14(8), 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Feldman, S., "Make - A Computer Program for Maintaining Computer Programs", Software Practice and Experience, Vol. 9, 1979.Google ScholarGoogle Scholar
  11. 11 Goldberg, A. and D. Robson, Smalltalk-80: The Language and its Implementation, Reading MA: Addison-Wesley, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Habermann, A.N. and D.S. Notkin, "The Gandalf Software Development Environment", Research Report, Computer Science Department, Carnegie-Mellon University, Pittsburg PA, January 1982.Google ScholarGoogle Scholar
  13. 13 Hood, R. and K. Kennedy, "A Programming Environment for Fortran", Proceedings of the Eighteenth Annual Hawaii International Conference on Systems Sciences, 1985.Google ScholarGoogle Scholar
  14. 14 Masinter, L., "Global Program Analysis in an Interactive Environment", Xerox Palo Alto Research Center Technical Report SSL-80-1, January 1980.Google ScholarGoogle Scholar
  15. 15 Mitchell, J., W. Maybury and R. Sweet, |"Mesa Language Manual", Technical Report CSL-79-3, Xerox Palo Alto Research Center, Palo Alto CA, April 1979.Google ScholarGoogle Scholar
  16. 16 Muller, H., "A Conceptual Framework for Configuration Management Systems", Rice University, Houston TX, September 1983.Google ScholarGoogle Scholar
  17. 17 Osterweil, L.J. and L.D. Fosdick, "Dave - A Validation, Error Detection and Documentation System for FORTRAN Programs", Technical Report CU-CS-071-75, Computer Science Department, University of Colorado, Boulder CO, June 1975.Google ScholarGoogle Scholar
  18. 18 Rochkind, M.J., "The Source Code Control System", IEEE Transactions on Software Engineering, SE-1, Vol. 4, December 1975.Google ScholarGoogle Scholar
  19. 19 Spillman, T., "Exposing Side-Effects in a PL/I Optimizing Compiler", IFIPS Proceedings 1971, North-Holland Publishing Co., 1971.Google ScholarGoogle Scholar
  20. 20 Teitelman, W., "A Display-Oriented Programmer's Assistant", Proceedings of the Fifth International Joint Conference on Artificial Intelligence, 1977.Google ScholarGoogle Scholar
  21. 21 Teitelbaum, R.T. and T. Reps, "The Cornell Program Synthesizer: A Syntax Directed Programming Environment", Communications of the ACM, 24(9), 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 Tichy W. F. and M. C. Baker, "Smart Recompilation", Proceedings of the Twelfth Annual Symposium on Principles of Programming Languages, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23 Torczon, L.M., "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
  24. 24 Zadeck, F.K., "Incremental Data Flow Analysis in a Structured Program Editor", Ph.D. Dissertation, Department of Mathematical Sciences, Rice University, Houston TX, October 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The impact of interprocedural analysis and optimization on the design of a software development environment

          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

          Full Access

          • Published in

            cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 20, Issue 7
            July 1985
            251 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/17919
            Issue’s Table of Contents
            • cover image ACM Conferences
              SLIPE '85: Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
              June 1985
              257 pages
              ISBN:0897911652
              DOI:10.1145/800225

            Copyright © 1985 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 25 June 1985

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader