skip to main content
10.1145/178243.178478acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Optimizing dynamically-dispatched calls with run-time type feedback

Published: 01 June 1994 Publication History
First page of PDF

References

[1]
Ole Agesen, Jens Palsberg, and Michael I. Schwartzbach. Type Inference of SELF: Analysis of Objects with Dynamic and Multiple Inheritance. In ECOOP '93 Conference Proceedings, p. 247-267. Kaiserslautern, Germany, July 1993.
[2]
Apple Computer, Inc. Object Pascal User's Manual. Cupertino, 1988.
[3]
Brad Calder, Dirk Grunwald, and Benjamin Zorn. Quantifying Behavioral Differences Between C and C++ Programs. Technical Report CU-CS~698-94, University of Colorado, Boulder, January 1994.
[4]
Brad Calder and Dirk Grunwald. Reducing Indirect Function Call Overhead in C++ Programs. In 21st Annual A CM Symposium on Principles of Programming Languages, p. 397-408, January 1994.
[5]
Craig Chambers, The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object- Oriented Programming Languages. Ph.D. Thesis, Stanford University, April 1992
[6]
Craig Chambers. The Cecil Language - Specification and Rationale. Technical Report CSE-TR-93-03-05, University of Washington, 1993.
[7]
Craig Chambers, David Ungar, and Elgin Lee. An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes. in OOPSLA '89 Conference Proceedings, p. 49-70, New Orleans, LA, October 1989. Published as SIGPLAN Notices 24(i 0), October 1989.
[8]
Craig Chambers and David Ungar. Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, p. 150-164, White Plains, NY, June 1990. Published as SIGPLAN Notices 25(6), June 1990.
[9]
Bay-Wei Chang and David Ungar. Animation: From cartoons to the user interface. User Interface Software and Technology Conference Proceedings, Atlanta, GA, November 1993.
[10]
Pohua P. Chang, Scott A. Mahlke, William Y. Chen, and Wen-Mei W. Hwu. Profile-guided automatic inline expansion for C programs. Software--Practice and Experience 22 (5): 349-369, May 1992.
[11]
Robert F. Cmelik and David Keppel. Shade: A Fast Instruction-Set Simulator for Execution Profiling. Technical Report SMLI TR-93-12, Sun Microsystems Laboratories, 1993. Also published as Technical Report CSE- TR-93-06-06, University of Washington, 1993.
[12]
K.D. Cooper, M. W. Hall, and L. Torczon. An experiment with inline substitution. Software--Practice and Experience 21 (6): 581-601, June 1991.
[13]
Jack W. Davidson and Anne M. Holler. A study of a C function inliner. Software--Practice and Experience 18(8): 775-90, August 1988.
[14]
L. Peter Deutsch and Alan Schiffman. Efficient }Implementation of the Smantalk-80 System. Proceedings of the 11th Symposium on the Principles of Programming Languages, Salt Lake City, UT, 1984.
[15]
Amer Diwan, David Tarditi, and Eliot Moss. Memory Subsystem Performance of Programs with Intensive Heap Allocation. In 21st Annual ACM Symposium on Principles of Programming Languages, p. 1-14, January 1994.
[16]
Karel Driesen. Selector Table Indexing and Sparse Arrays. OOPSLA '93 Conference Proceedings, p. 259- 270, Washington, D.C., 1993. Published as SiGPLAN Notices 28(10), September 1993.
[17]
Eric J. Van Dyke. A dynamic incremental compiler for an interpretative language. HP Journal, p. 17-24, July 1977.
[18]
Charles D. Garret, Jeffrey Dean, David Grove, and Craig Chambers. Measurement and Application of Dynamic Receiver Class Distributions. Technical Report CSE-TR-94-03-05, University of Washington, February 1994.
[19]
S. L. Graham, P. B. Kessler, and M. K. McKusick. An Execution Profiler for Modular Programs. Softwaret Practice and Experience 13:671-685, 1983.
[20]
Leo J. Guibas and Douglas K. Wyatt. Compilation and Delayed Evaluation in APL. In Fifth Annual A CM Symposium on Principles of Programming Languages, p. 1-8, 1978.
[21]
Mary Wolcott Hall. Managing Interprocedural Optimization. Technical Report COMP TR91-157 (Ph.D. Thesis), Computer Science Department, Rice University, April 1991.
[22]
Mark D. Hill. Aspects of Cache Memory and Instruction Buffer Performance. Technical Report UCB/CSD 87/ 381, Computer Science Division, University of California, Berkeley, November 1987.
[23]
Urs H6Izle, Craig Chambers, and David Ungar. Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches. In ECOOP'91 Conference Proceedings, Geneva, 1991. Published as Springer Verlag Lecture Notes in Computer Science 512, Springer Verlag, Berlin, 1991.
[24]
Urs H61zle, Craig Chambers, and David Ungar. Debugging Optimized Code With Dynamic Deoptimization. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, p. 21-38, San Francisco, 1992. Published as SIGPLAN Notices 27(6), June 1992.
[25]
Urs HOlzle. Adaptive Optimization for SELF: Reconciling High Performance with Exploratory Programming. Ph.D. Thesis, Stanford University, Computer Science Department, 1994. (In preparation.)
[26]
W.W. Hwu and P. P. Chang. Inline function expansion for compiling C programs. In Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation, p. 246-57, Portland, OR, June 1989. Published as SIGPLAN Notices 24(7), July 1989.
[27]
Gordon Irlam. SPA--SPARC analyzer tool set. Available via ftp from cs.adelaide.edu.au, 1991.
[28]
Ronald L. Johnston. The Dynamic Incremental Compiler of APL\3000. In Proceedings of the APL '79 Conference. Published as APL Quote Quad 9(4), p. 82- 87, 1979.
[29]
Philip Koopman, Peter Lee, and Daniel Siewiorek. Cache behavior of combinator graph reduction. ACM Transactions on Programming Languages and Systems 14 (2):265-297, April 1992.
[30]
Mark Linton, John Vlissides, and Paul Calder. Composing User Interfaces with Interviews. IEEE Computer 22(2):8-22, February 1989.
[31]
J.G. Mitchell, Design and Construction of Flexible and Efficient Interactive Programming Systems. Ph.D. Thesis, Carnegie-Mellon University, 1970.
[32]
Hemant D. Pande and Barbara G. Ryder. Static Type Determination for C++. Technical Report LCSR-TR- 197a, Rutgers University, 1994.
[33]
Mark Reinhold. Cache Performance of Garbage- Collected Programming Languages. Technical Report MIT/LCS/TR-581 (Ph.D. Thesis), Massachusetts Institute of Technology, September 1993.
[34]
Michael Sannella, John Maloney, Bjom Freeman- Benson, and Alan Boming. Multi-way versus One-way Constraints in User Interfaces: Experience with the DeltaBlue Algorithm. Software~Practice and Experience 23 (5): 529-566, May 1993.
[35]
Amitabh Srivastava and David Wall. A Practical System for lntermodule Code Optimization at Link- Time. DEC WRL Research Report 92/6, December 1992.
[36]
David Ungar and Randall B. Smith. SELF: The Power of Simplicity. In OOPSLA '87 Conference Proceedings, p. 227-241, Orlando, FL, October 1987. Published as SIGPLAN Notices 22(12), December 1987. Also published in Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June 1991.
[37]
David Wall. Predicting Program Behavior Using Real or Estimated Profiles. in Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, p. 59-70, Toronto, Canada, June 1991. Published as SIGPLAN Notices 26(6), June 1991.

Cited By

View all

Recommendations

Reviews

John Abel Moyne

Object-oriented programs are more difficult to optimize than programs written in standard languages such as C or FORTRAN, because they normally contain a larger number of smaller procedures, and optimization must be done by calls to these procedures in the course of running the program. In other words, the compiler must continuously interact with the running program to dynamically optimize the execution. The authors have developed a procedure, called type feedback, for this runtime communication with the compiler. The procedure appears to be in the experimental stage, but the authors provide details of the implementation and the resulting speed gains for the SELF system and are optimistic that similar results can be obtained for C++ and other languages. They conclude, We have implemented a compilation system for SELF that dynamically recompiles often-used code and uses type feedback to generate better code. The system uses simple heuristics to decide which methods to recompile, how much to rely on type feedback, and how much to optimize.…We believe that type feedback is an attractive optimization for situations where the exact (implementation-level) type of the arguments to a relatively costly operation is unknown at compile time, and where knowing the type would allow the compiler to generate more efficient code.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '94: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
August 1994
360 pages
ISBN:089791662X
DOI:10.1145/178243
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 1994

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

PLDI94
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)204
  • Downloads (Last 6 weeks)36
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media