Optimizing dynamically-typed object-oriented languages with polymorphic inline caches

Conference paper

DOI: 10.1007/BFb0057013

Part of the Lecture Notes in Computer Science book series (LNCS, volume 512)
Cite this paper as:
Hölzle U., Chambers C., Ungar D. (1991) Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In: America P. (eds) ECOOP'91 European Conference on Object-Oriented Programming. ECOOP 1991. Lecture Notes in Computer Science, vol 512. Springer, Berlin, Heidelberg

Abstract

Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a set of typical object-oriented SELF programs, PICs achieve a median speedup of 11%.

As an important side effect, PICs collect type information by recording all of the receiver types actually used at a given call site. The compiler can exploit this type information to generate better code when recompiling a method. An experimental version of such a system achieves a median speedup of 27% for our set of SELF programs, reducing the number of non-inlined message sends by a factor of two.

Implementations of dynamically-typed object-oriented languages have been limited by the paucity of type information available to the compiler. The abundance of the type information provided by PICs suggests a new compilation approach for these languages, adaptive compilation. Such compilers may succeed in generating very efficient code for the time-critical parts of a program without incurring distracting compilation pauses.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag 1991

Authors and Affiliations

  1. 1.Computer Systems LaboratoryStanford UniversityStanford
  2. 2.Sun LabsSun MicrosystemsMountain View

Personalised recommendations