MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches (1991) [98 citations — 8 self]

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

Citations

1295 The C++ Programming Language – Stroustrup - 1991
1137 Smalltalk-80: The Language and Its Implementation – Goldberg, Robson
481 Self: The power of simplicity – Ungar, Smith - 1987
306 Using Prototypical Objects to Implement Shared Behavior in ObjectOriented Systems – Lieberman - 1986
202 Efficient implementation of the Smalltalk-80 system – Deutsch, Schiffman - 1984
200 Dimensions of object-based language design – Wegner - 1987
193 and Bjarne Stroustrup. The Annotated C++ Reference Manual – Ellis - 1990
185 Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language – Chambers, Ungar - 1989
145 An efficient implementation of self - a dynamically-typed object-oriented language based on prototypes – Chambers, Ungar, et al. - 1989
141 Object-oriented programming with Flavors – Moon - 1986
126 The Design and Evaluation of a High Performance Smalltalk System. ACM Distinguished Dissertations – Ungar - 1987
118 The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object-Oriented Programming Languages – Chambers - 1992
116 Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented – Chambers, Ungar - 1990
116 Making Pure Object-Oriented Languages Practical – Chambers, Ungar - 1991
104 An Introduction to Trellis/Owl – Schaffert, Cooper, et al. - 1986
86 Delegation is inheritance – Stein - 1987
76 A simple technique for handling multiple polymorphism – Ingalls - 1986
62 A Fast Method Dispatcher for Compiled Languages with Multiple Inheritance – Dixon, McKee, et al. - 1989
62 Design of the opportunistic garbage collector – Wilson, Moher - 1989
58 Classes Versus Prototypes in Object-Oriented Languages – Borning - 1986
58 A type system for Smalltalk – Graver, Johnson - 1990
55 Genericity versus Inheritance – Meyer - 1986
48 TS: An Optimizing Compiler for Smalltalk – Johnson, Graver, et al. - 1988
48 Tenuring policies for generationbased storage reclamation – Ungar, Jackson - 1988
47 Inferring Types in Smalltalk – Suzuki - 1981
40 A type declaration and inference system for Smalltalk – Borning, Ingalls - 1982
39 An Exemplar Based Smalltalk – LaLonde, Thomas, et al. - 1986
37 Efficient method dispatch in PCL – Kiczales, Jr - 1993
34 the ultimate imperative – Sussman, Lambda - 1976
28 Customization in C – Lea - 1990
28 Two-Directional Record Layout for Multiple Inheritance – Pugh, Weddell - 1990
28 Fast Dispatch Mechanisms for Stock Hardware – Rose - 1988
23 Adaptive systems for the dynamic run-time optimization of programs – Hansen - 1974
16 Lambda: the ultimate declarative – Steele - 1976
15 Design and Construction of Flexible and Efficient Interactive Programming Systems – Mitchell - 1970
14 Hurricane: an optimizing compiler for Smalltalk – Atkinson - 1986
14 Architecture of SOAR: Smalltalk on a risc – Ungar, Blau, et al. - 1984
12 Object Storage and Inheritance for SELF, a Prototype-Based ObjectOriented Programming Language. Engineer’s thesis – Lee - 1988
11 D.: Berkeley Smalltalk: Who Knows Where the Time Goes – Ungar, Patterson
10 The Smalltalk-80 benchmarks – McCall - 1983
10 What price Smalltalk – Ungar, Patterson - 1987
9 Workshop on Compiling and Optimizing Object-Oriented Programming Languages – Johnson - 1987
8 Creating Efficient Systems for Object-Oriented Languages – Suzuki, Terada - 1984
7 The Dorado Smalltalk-80 Implementation: Hardware Architecture's Impact on Software Architecture – Deutsch - 1983
6 QUICKTALK: a Smalltalk80 dialect for defining primitive methods – Ballard, Maier, et al. - 1986
6 Low Level Optimizations for an Object-Oriented Programming Language – Heintz - 1990
5 Efficient implementation of the Smalltalk-80 – Deutsch, Schiffman - 1984
3 integer benchmarks – Hennessy - 1988
2 Type inferencing – Curtis - 1989
2 and Eduardo Pelegri-Llopart, "An Assessment of Method-Lookup Caches for Smalltalk-80 Implementations – Conroy - 1983