Skip to main content

Interprocedural call optimization

  • Compilers and Tools
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1088))

Abstract

This paper demonstrates that interprocedural optimization yields significant performance benefits. A classification is presented that encapsulates a subprogram's side-effects into a single attribute. This classification is then used to extend the Common Subexpression Elimination, Dead Code Elimination, and Invariant Hoisting optimizations to include subprogram calls. These extensions reduce the number of subprogram calls thus improving execution speed. Quantitative results are given for both benchmarks and applications.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F. Allen, P. Charles, M. Burke, R. Cytron and J, Ferrante. The parallel programming technology project. Research report, IBM Yorktown Heights, 1986.

    Google Scholar 

  2. R. Allen, D. Callahan and K. Kennedy. An implementation of interprocedural data flow analysis in a vectorizing Fortran compiler. Technical Report COMP TR86-38, Department of Computer Science, Rice University, May 1986.

    Google Scholar 

  3. Reference Manual for the Ada Programming Language 1983

    Google Scholar 

  4. J. R. Allen and K. Kennedy. Pfc:a program to convert fortran to parallel form. In K. Hwang (editor), Superconductors: Design and Applications. IEEE Computer Society Press, 1984.

    Google Scholar 

  5. T. Birus, C. Cipriani and D. Sutherland. Strategies for benchmarking with optimizing compilers. Proceedings of the National Aerospace and Electronics Conference, June, 1992.

    Google Scholar 

  6. K. D. Cooper and K. Kennedy. Interprocedural Side Effect Analysis in Linear Time. Proc. of the SIGPLAN 88 Conference on Programming Language Design and Implementation, SIGPLAN Notices 25(6), June, 1988

    Google Scholar 

  7. K. D. Cooper, K. Kennedy and L. Torczon. The Impact of Interprocedural Analysis and Optimization in the Rn Programming Environment. ACM Transactions on Programming Languages and Systems 8(4), Oct., 1986.

    Google Scholar 

  8. M. Ganapathi and K. Kennedy. Interprocedural analysis and optimization. Technical Report COMP TR89-96, Department of Computer Science, Rice University, July, 1989.

    Google Scholar 

  9. K. Kennedy. Ptool. Technical Report, Department of Mathematical Sciences, Rice University, 1986.

    Google Scholar 

  10. S. Richardson and M. Ganapathi. Interprocedural optimization: Experimental Results. Software — Practice and Experience 19(2), Feb. 1989.

    Google Scholar 

  11. D. M. Roy, Ed. Ada Performance Issues. Ada Letters X(3), Winter, 1990.

    Google Scholar 

  12. R. E. Tarjan. Depth-first search and linear graph algorithms. SIAMJ. Computing 1(2), 1988.

    Google Scholar 

  13. W. Wulf. Personal communications, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Alfred Strohmeier

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Birus, T., Cipriani, C., Sutherland, D. (1996). Interprocedural call optimization. In: Strohmeier, A. (eds) Reliable Software Technologies — Ada-Europe '96. Ada-Europe 1996. Lecture Notes in Computer Science, vol 1088. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0013499

Download citation

  • DOI: https://doi.org/10.1007/BFb0013499

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61317-6

  • Online ISBN: 978-3-540-68457-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics