|
ABSTRACT
Dynamically dispatched calls often limit the performance of object-oriented programs, since opject-oriented programming encourages factoring code into small, reusable units, thereby increasing the frequency of these expensive operations. Frequent calls not only slow down execution with the dispatch overhead per se, but more importantly they hinder optimization by limiting the range and effectiveness of standard global optimizations. In particular, dynamically dispatched calles prevent standard interprocedual optimizations that depend on the availability of a static call graph. The SELF implementation described here offers tow novel approaches to optimization. Type feedback speculatively inlines dynamically dispatched calls based on profile information that predicts likely receiver classes. Adaptive optimization reconciles optimizing compilation with interactive performance by incrementally optimizing only the frequently executed parts of a program. When combined, these two techniques result in a system that can execute programs significantly faster than previous systems while retaining much of the interactiveness of an interpreted system.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Ole Agesen , Urs Hölzle, Type feedback vs. concrete type inference: a comparison of optimization techniques for object-oriented languages, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.91-107, October 15-19, 1995, Austin, Texas, United States
|
| |
2
|
|
| |
3
|
|
| |
4
|
APPLE. 1988. Object Pascal User's Manual. Apple Computer, Inc., Cupertino, Calif.
|
| |
5
|
|
| |
6
|
CHAMBERS, C. 1993. The Cecil language--Specification and rationale. Tech. Rep. UW CS TR 93-03-05, Dept. of Computer Science, Univ. of Washington, Seattle, Wash.
|
 |
7
|
Craig Chambers , David Ungar, Making pure object-oriented languages practical, Conference proceedings on Object-oriented programming systems, languages, and applications, p.1-15, October 06-11, 1991, Phoenix, Arizona, United States
|
 |
8
|
C. Chambers , D. Ungar , E. Lee, An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes, Conference proceedings on Object-oriented programming systems, languages and applications, p.49-70, October 02-06, 1989, New Orleans, Louisiana, United States
|
 |
9
|
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
 |
14
|
|
| |
15
|
|
| |
16
|
DEUTSCH, L. P. 1983. The Dorado Smalltalk-80 implementation: Hardware architecture's impact on software architecture. In Smalltalk-80: Bits of History and Words of Advice, G. Krasner, Ed. Addison-Wesley, Reading, Mass.
|
 |
17
|
|
 |
18
|
|
 |
19
|
|
| |
20
|
GRAHAM, S. L., KESSLER, P. B., AND McKuSICK, M. K. 1983. An execution profiler for modular programs. Softw. Pract. Exper. 13, 671-685.
|
 |
21
|
David Grove , Jeffrey Dean , Charles Garrett , Craig Chambers, Profile-guided receiver class prediction, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.108-123, October 15-19, 1995, Austin, Texas, United States
|
 |
22
|
|
| |
23
|
|
| |
24
|
|
| |
25
|
|
| |
26
|
|
| |
27
|
|
 |
28
|
|
| |
29
|
|
 |
30
|
Urs Hölzle , Craig Chambers , David Ungar, Debugging optimized code with dynamic deoptimization, Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.32-43, June 15-19, 1992, San Francisco, California, United States
|
 |
31
|
|
| |
32
|
IRLAM, G. 1991. SPA--SPARC analyzer tool set. Available via ftp from cs.adelaide.edu.au.
|
| |
33
|
ISE. 1993. ISE Eiffel 3.0. Software. ISE, Inc., Santa Barbara, Calif.
|
 |
34
|
|
 |
35
|
|
| |
36
|
|
| |
37
|
PANDE, H. AND RYDER, B. 1994. Static type determination for C++. Tech. Rep. LCSR-TR- 197a, Rutgers Univ., Piscataway, N.J.
|
| |
38
|
PARCPLACE. 1992. VisualWorks 1.0 Smalltalk System. Software. ParcPlace Systems, Sunnyvale, Calif.
|
 |
39
|
John Plevyak , Andrew A. Chien, Precise concrete type inference for object-oriented languages, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.324-340, October 23-28, 1994, Portland, Oregon, United States
|
| |
40
|
|
| |
41
|
SILICON GRAPHICS. 1993. SGI Delta C++ programming environment. Silicon Graphics, Inc., Mountain View, Calif. Software.
|
| |
42
|
|
| |
43
|
SRIVASTAVA, A. AND WALL, D. 1992. A practical system for intermodule code optimization at link-time. DEC WRL Res. Rep. 92/6, Digital Equipment Corp., Palo Alto, Calif.
|
 |
44
|
David Ungar , Randall B. Smith, Self: The power of simplicity, Conference proceedings on Object-oriented programming systems, languages and applications, p.227-242, October 04-08, 1987, Orlando, Florida, United States
|
| |
45
|
VAN DYKE, E. 1977. A dynamic incremental compiler for an interpretative language. HP J. 28, 3 (July), 17-24.
|
 |
46
|
P. R. Wilson , T. G. Moher, Design of the opportunistic garbage collector, Conference proceedings on Object-oriented programming systems, languages and applications, p.23-35, October 02-06, 1989, New Orleans, Louisiana, United States
|
 |
47
|
|
CITED BY 28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T. Suganuma , T. Ogasawara , K. Kawachiya , M. Takeuchi , K. Ishizaki , A. Koseki , T. Inagaki , T. Yasue , M. Kawahito , T. Onodera , H. Komatsu , T. Nakatani, Evolution of a java just-in-time compiler for IA-32 platforms, IBM Journal of Research and Development, v.48 n.5/6, p.767-795, September/November 2004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"Scott R. Tilley : Reviewer"
Two optimizations used to accelerate the execution of SELF code are
described. The first, “type feedback,” uses runtime type
information to guide code optimization by inlining calls to certain
object types that occur more often tha
more...
|