ABSTRACT
The runtime performance of object-oriented languages often suffers due to the overhead of dynamic dispatching. In order to make these languages competitive with traditional languages, optimizing compilers attempt to eliminate as many of the dynamic dispatches as possible. A variety of local and intraprocedural techniques have been developed to do this, but they can be ineffective when they are unable to statically bind and inline a message send. To enable better analysis across noninlined message sends, interprocedural analysis is required. In this paper we describe a simple algorithm for interprocedural class analysis and empirically evaluate its effectiveness as a tool for program optimization. We demonstrate that interprocedural class analysis can substantially decrease application execution times when compared to applications optimized with only intraprocedural techniques.
References
- {Agesen & Höölzle 95} Ole Agesen and Urs Hölzle. Type Feedback vs. Concrete Type Analysis: A Comparison of Optimization Techniques for Object-Oriented Languages. In Proceedings OOPSLA '95, Austin, TX, October 1995.]] Google Scholar
Digital Library
- {Agesen 95} Ole Agesen. The Cartesian Product Algorithm: Simple and Precise Type Inference of Parametric Polymorphism. In Proceedings ECOOP '95, Aarhus, Denmark, August 1995. Springer-Verlag.]] Google Scholar
Digital Library
- {Agesen et al. 93} Ole Agesen, Jens Palsberg, and Michael I. Schwartzback. Type Inference of SELF: Analysis of Objects with Dynamic and Multiple Inheritance. In Proceedings ECOOP '93, July 1993.]] Google Scholar
Digital Library
- {Chambers & Ungar 90} Craig Chambers and David Ungar. Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs. SIGPLAN Notices, 25(6):150-164, June 1990. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation.]] Google Scholar
Digital Library
- {Chambers 93} Craig Chambers. The Cecil Language: Specification and Rationale. Technical Report TR-93-03-05, Department of Computer Science and Engineering. University of Washington, March 1993.]]Google Scholar
- {Chambers et al. 89} Craig Chambers, David Ungar, and Elgin Lee. An Efficient Implementation of SELF - a Dynamically-Typed Object-Oriented Language Based on Prototypes. In Proceedings OOPSLA '89, pages 49-70, October 1989. Published as ACM SIGPLAN Notices, volume 24, number 10.]] Google Scholar
Digital Library
- {Dean et al. 95} Jeffrey Dean, David Grove, and Craig Chambers. Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis. In Proceedings ECOOP '95, Aarhus, Denmark, August 1995. Springer-Verlag.]] Google Scholar
Digital Library
- {Deutsch & Schiffman 84} L. Peter Deutsch and Allan M. Schiffman. Efficient Implementation of the Smalltalk-80 System. In Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, pages 297-302, Salt Lake City, Utah, January 1984.]] Google Scholar
Digital Library
- {Grove et al. 95} David Grove, Jeffery Dean, Charles Garrett, and Craig Chambers. Profile-Guided Receiver Class Prediction. In Proceedings OOPSLA '95, Austin, TX, October 1995.]] Google Scholar
Digital Library
- {Hall & Kennedy 92} Mary W. Hall and Ken Kennedy. Efficient Call Graph Analysis. ACM Letters on Programming Languages and Systems, 1(3):227-242, September 1992.]] Google Scholar
Digital Library
- {Hölzle 94} Urs Hölzle. Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming. PhD thesis, Stanford University, August 1994.]] Google Scholar
Digital Library
- {Oxhøj et al. 92} Nicholas Oxhøj, Jens Palsberg, and Michael I. Schwartzbach. Making Type Inference Practical. In O. Lehrmann Madsen, editor, Proceedings ECOOP '92, LNCS 615, pages 329-349, Utrecht, The Netherlands, July 1992. Springer-Verlag.]] Google Scholar
Digital Library
- {Palsberg & Schwartzbach 91} Jens Palsberg and Michael I. Schwartzbach. Object-Oriented Type Inference. In Proceedings OOPSLA '91, pages 146-161, November 1991. Published as ACM SIGPLAN Notices, volume 26, number 11.]] Google Scholar
Digital Library
- {Pande & Ryder 94} Hemant D. Pande and Barbara G. Ryder. Static Type Determination for C++. In Proceedings of Sixth USENIX C++ Technical Conference, 1994.]] Google Scholar
Digital Library
- {Plevyak & Chien 94} John Plevyak and Andrew A. Chien. Precise Concrete Type Inference for Object-Oriented Languages. In Proceedings OOPSLA '94, pages 324-340, Portland, Oregon, October 1994.]] Google Scholar
Digital Library
- {Shivers 91} Olin Shivers. Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie Mellon University, May 1991. CMU-CS-91-145.]] Google Scholar
Digital Library
- {Steensgaard 94} Bjarne Steensgaard. A Polyvariant Closure Analysis with Dynamic Abstraction. Unpublished manuscript, 1994.]]Google Scholar
Index Terms
The impact of interprocedural class analysis on optimization


David Grove

Comments