Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Self paper: "Optimizing DTOOLs with PICs"
[go: Go Back, main page]

Optimizing Dynamically-Typed Object-Oriented Programming Languages with Polymorphic Inline Caches


Urs Hölzle, Craig Chambers, and David Ungar
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 infor\-mation 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.


ECOOP `91 Conference Proceedings, Geneva, Switzerland, July, 1991.

Published as Springer Verlag LNCS 512, 1991.

To get the PostScript file, click here (PDF).