Optimizing dynamically-dispatched calls with run-time type feedback
Authors:
Open Access
- 1 June 1994
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 29 (6) , 326-336
Abstract
Abstrach Object-oriented programs are difficult to optimize because they execute many dynamically-dispatched calls. These calls cannot easily be eliminated because the compiler does not know which callee will be invoked at runtime. We have developed a simple technique that feeds back type information from the runtime system to the compiler. With this type feedback, the compiler can inline any dynamically-dispatched call. Our compiler drastically reduces the calI frequency of a suite of large SELF applications (by a factor of 3.6) and improves performance by a factor of 1.7. We believe that type feedback could significantly reduce call frequencies and improve performance for most other objectoriented languages (statically-typed or not) as well as for languages with type-dependent operations such as generic arithmetic.Keywords
This publication has 20 references indexed in Scilit:
- Memory subsystem performance of programs using copying garbage collection1994
- Reducing indirect function call overhead in C++ programs1994
- Animation: from cartoons to the user interface1993
- Selector table indexing & sparse arraysACM SIGPLAN Notices, 1993
- Profile‐guided automatic inline expansion for C programsSoftware: Practice and Experience, 1992
- An experiment with inline substitutionSoftware: Practice and Experience, 1991
- Iterative type analysis and extended message splitting; optimizing dynamically-typed object-oriented programsACM SIGPLAN Notices, 1990
- An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypesACM SIGPLAN Notices, 1989
- A study of a C function inlinerSoftware: Practice and Experience, 1988
- Efficient implementation of the smalltalk-80 system1984