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.
Description
Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches
%0 Conference Paper
%1 Hoelzle:91:PIC
%A Hölzle, Urs
%A Chambers, Craig
%A Ungar, David
%B ECOOP '91: European Conference on Object-Oriented Programming
%D 1991
%I Springer
%K Me:MastersThesis Optimization VM
%P 21--38
%R 10.1007/BFb0057013
%T Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches
%V 512
%X 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.
%@ 3-540-54262-0
@inproceedings{Hoelzle:91:PIC,
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.},
added-at = {2008-09-12T20:30:21.000+0200},
author = {Hölzle, Urs and Chambers, Craig and Ungar, David},
biburl = {https://www.bibsonomy.org/bibtex/2ca3767dee997a9bd12afb069b08447d7/gron},
booktitle = {ECOOP '91: European Conference on Object-Oriented Programming},
description = {Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches},
doi = {10.1007/BFb0057013},
interhash = {55fd99a8b6901f688e328cdd0b4c6df3},
intrahash = {ca3767dee997a9bd12afb069b08447d7},
isbn = {3-540-54262-0},
keywords = {Me:MastersThesis Optimization VM},
pages = {21--38},
publisher = {Springer},
series = {LNCS},
timestamp = {2015-08-29T14:35:40.000+0200},
title = {{Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches}},
volume = 512,
year = 1991
}