Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches

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%.

[1]  James G. Mitchell The Design and Construction of Flexible and Efficient Interactive Programming Systems , 1970, Outstanding Dissertations in the Computer Sciences.

[2]  Gilbert Joseph Hansen,et al.  Adaptive systems for the dynamic run-time optimization of programs. , 1974 .

[3]  Norihisa Suzuki,et al.  Inferring types in Smalltalk , 1981, POPL '81.

[4]  Alan Borning,et al.  A type declaration and inference system for smalltalk , 1982, POPL '82.

[5]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[6]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[7]  Norihisa Suzuki,et al.  Creating efficient systems for object-oriented languages , 1984, POPL '84.

[8]  David A. Patterson,et al.  Architecture of SOAR: Smalltalk on a RISC , 1984, ISCA '84.

[9]  Daniel H. H. Ingalls A Simple Technique for Handling Multiple Polymorphism , 1986, OOPSLA.

[10]  David A. Patterson,et al.  What Price Smalltalk? , 1987, Computer.

[11]  David Ungar,et al.  The design and evaluation of a high performance Smalltalk system , 1987 .

[12]  Ralph E. Johnson,et al.  TS: an optimizing compiler for smalltalk , 1988, OOPSLA '88.

[13]  John R. Rose,et al.  Fast dispatch mechanisms for stock hardware , 1988, Conference on Object-Oriented Programming Systems, Languages, and Applications.

[14]  Justin O. Graver,et al.  TS: an optimizing compiler for smalltalk , 1988, OOPSLA 1988.

[15]  Ifor Williams,et al.  The design and evaluation of a high-performance smalltalk system , 1988 .

[16]  John R. Rose,et al.  Fast dispatch mechanisms for stock hardware , 1988, OOPSLA '88.

[17]  Paul Schweizer,et al.  A fast method dispatcher for compiled languages with multiple inheritance , 1989, OOPSLA '89.

[18]  Ralph E. Johnson,et al.  A type system for Smalltalk , 1989, POPL '90.

[19]  Craig Chambers,et al.  Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language , 1989, PLDI '89.

[20]  Paul R. Wilson,et al.  Design of the opportunistic garbage collector , 1989, OOPSLA '89.

[21]  Tom Moher,et al.  Design of the opportunistic garbage collector , 1989, OOPSLA 1989.

[22]  Craig Chambers,et al.  An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes , 1989, OOPSLA '89.

[23]  Doug Lea Customization in C++ , 1990, C++ Conference.

[24]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[25]  William Pugh,et al.  Two-directional record layout for multiple inheritance , 1990, PLDI '90.

[26]  Gregor Kiczales,et al.  Efficient method dispatch in PCL , 1990, LISP and Functional Programming.

[27]  Craig Chambers,et al.  Iterative type analysis and extended message splitting; optimizing dynamically-typed object-oriented programs , 1990, PLDI '90.

[28]  Craig Chambers,et al.  Making pure object-oriented languages practical , 1991, OOPSLA 1991.

[29]  C. Chambers,et al.  Making pure object-oriented languages practical , 1991, OOPSLA '91.

[30]  Craig Chambers,et al.  The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages , 1992 .