Skip to main content

Inline Caching Meets Quickening

  • Conference paper
ECOOP 2010 – Object-Oriented Programming (ECOOP 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6183))

Included in the following conference series:

Abstract

Inline caches effectively eliminate the overhead implied by dynamic typing. Yet, inline caching is mostly used in code generated by just-in-time compilers. We present efficient implementation techniques for using inline caches without dynamic translation, thus enabling future interpreter implementers to use this important optimization technique—we report speedups of up to a factor of 1.71—without the additional implementation and maintenance costs incurred by using a just-in-time compiler.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bell, J.R.: Threaded code. Communications of the ACM 16(6), 370–372 (1973)

    Article  Google Scholar 

  2. Brunthaler, S.: Virtual-machine abstraction and optimization techniques. In: Proceedings of the 4th International Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE 2009). Electronic Notes in Theoretical Computer Science, vol. 253(5), pp. 3–14. Elsevier, Amsterdam (December 2009)

    Google Scholar 

  3. Brunthaler, S.: Efficient inline caching without dynamic translation. In: Proceedings of the 2010 ACM Symposium on Applied Computing (SAC 2010). ACM, New York (March 2010) (to appear)

    Google Scholar 

  4. Casey, K., Ertl, M.A., Gregg, D.: Optimizations for a java interpreter using instruction set enhancement. Tech. Rep. 61, Department of Computer Science, University of Dublin. Trinity College (September 2005), https://www.cs.tcd.ie/publications/tech-reports/reports.05/TCD-CS-2005-61.pdf

  5. Conroy, T.J., Pelegri-Llopart, E.: An Assessment of Method-Lookup Caches for Smalltalk-80 Implementations. In: Krasner [16], ch. 13, pp. 239–247 (1982)

    Google Scholar 

  6. Deutsch, L.P., Schiffman, A.M.: Efficient implementation of the Smalltalk-80 system. In: Proceedings of the SIGPLAN 1984 Symposium on Principles of Programming Languages (POPL 1984), pp. 297–302. ACM, New York (1984)

    Chapter  Google Scholar 

  7. Ertl, M.A.: Threaded code variations and optimizations. In: EuroForth, TU Wien, Vienna, Austria, pp. 49–55 (2001)

    Google Scholar 

  8. Ertl, M.A., Gregg, D.: The structure and performance of efficient interpreters. Journal of Instruction-Level Parallelism 5, 1–25 (2003)

    Google Scholar 

  9. Fulgham, B.: The computer language benchmarks game, http://shootout.alioth.debian.org/

  10. Haupt, M., Hirschfeld, R., Denker, M.: Type feedback for bytecode interpreters, Position Paper (ICOOOLPS 2007) (2008), http://scg.unibe.ch/archive/papers/Haup07aPIC.pdf

  11. Hölzle, U.: Adaptive Optimization for SELF: Reconciling High Performance with Exploratory Programming. Ph.D. thesis, Stanford University, Stanford, CA, USA (1994)

    Google Scholar 

  12. Hölzle, U., Chambers, C., Ungar, D.: Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In: Proceedings of the European Conference on Object-Oriented Programming (ECOOP 1992), pp. 21–38. Springer, London (1991)

    Chapter  Google Scholar 

  13. Hölzle, U., Ungar, D.: Optimizing dynamically-dispatched calls with run-time type feedback. In: Proceedings of the SIGPLAN 1994 Conference on Programming Language Design and Implementation (PLDI 1994), pp. 326–336 (1994)

    Google Scholar 

  14. Intel: Intel turbo boost technology in Intel core microarchitecture (nehalem) based processors (November 2008), http://download.intel.com/design/processor/applnots/320354.pdf?iid=tech_tb+paper

  15. Kiczales, G., Rodriguez, L.: Efficient method dispatch in PCL. In: Proceedings of the 1990 ACM Conference on LISP and Functional Programming (LFP 1990), pp. 99–105. ACM, New York (1990)

    Chapter  Google Scholar 

  16. Krasner, G. (ed.): Smalltalk-80: bits of history, words of advice. Addison-Wesley Longman Publishing Co. Inc., Boston (1983)

    MATH  Google Scholar 

  17. Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 1st edn. Addison-Wesley, Boston (1997)

    Google Scholar 

  18. Stallmann, R.M., Pesch, R.H., Shabs, S.: Debugging with GDB: The GNU source-level debugger. Free Software Foundation, 9th edn. (2009)

    Google Scholar 

  19. Vitale, B., Abdelrahman, T.S.: Catenation and specialization for Tcl virtual machine performance. In: Proceedings of the 2004 Workshop on Interpreters, virtual machines and emulators (IVME 2004), pp. 42–50. ACM, New York (2004)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brunthaler, S. (2010). Inline Caching Meets Quickening. In: D’Hondt, T. (eds) ECOOP 2010 – Object-Oriented Programming. ECOOP 2010. Lecture Notes in Computer Science, vol 6183. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14107-2_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-14107-2_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-14106-5

  • Online ISBN: 978-3-642-14107-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics