10.1145/2069172.2069181acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

Runtime feedback in a meta-tracing JIT for efficient dynamic languages

Authors Info & Claims
Published:26 July 2011Publication History

ABSTRACT

Meta-tracing JIT compilers can be applied to a variety of different languages without explicitly encoding language semantics into the compiler. So far, they lacked a way to give the language implementor control over runtime feedback. This restricted their performance. In this paper we describe the mechanisms in PyPy's meta-tracing JIT that can be used to control runtime feedback in language-specific ways. These mechanisms are flexible enough to express classical VM techniques such as maps and runtime type feedback.

References

  1. D. Ancona, M. Ancona, A. Cuni, and N. D. Matsakis. RPython: a step towards reconciling dynamically and statically typed OO languages. In DLS, Montreal, Quebec, Canada, 2007. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: a transparent dynamic optimization system. ACM SIGPLAN Notices, 35(5):1--12, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Bebenita, F. Brandner, M. Fahndrich, F. Logozzo, W. Schulte, N. Tillmann, and H. Venter. SPUR: a trace-based JIT compiler for CIL. In OOPSLA, Reno/Tahoe, Nevada, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. F. Bolz, A. Cuni, M. Fijałkowski, M. Leuschel, S. Pedroni, and A. Rigo. Allocation removal by partial evaluation in a tracing JIT. In PEPM, PEPM '11, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. F. Bolz, A. Cuni, M. Fijałkowski, and A. Rigo. Tracing the metalevel: PyPy's tracing JIT compiler. In ICOOOLPS, pages 18--25, Genova, Italy, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. F. Bolz, M. Leuschel, and D. Schneider. Towards a jitting VM for prolog execution. In PPDP, Hagenberg, Austria, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. C. Chambers, D. Ungar, and E. Lee. An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes. In OOPSLA, volume 24, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. L. P. Deutsch and A. M. Schiffman. Efficient implementation of the smalltalk-80 system. In POPL, Salt Lake City, Utah, 1984. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Y. Futamura. Partial evaluation of computation process - an approach to a Compiler-Compiler. Higher-Order and Symbolic Computation, 12(4):381--391, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Gal, B. Eich, M. Shaver, D. Anderson, D. Mandelin, M. R. Haghighat, B. Kaplan, G. Hoare, B. Zbarsky, J. Orendorff, J. Ruderman, E. W. Smith, R. Reitmaier, M. Bebenita, M. Chang, and M. Franz. Trace-based just-in-time type specialization for dynamic languages. In PLDI, PLDI '09, New York, New York, 2009. ACM. ACM ID: 1542528. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Gal and M. Franz. Incremental dynamic code generation with trace trees. Technical Report ICS-TR-06-16, Donald Bren School of Information and Computer Science, University of California, Irvine, Nov. 2006.Google ScholarGoogle Scholar
  12. A. Gal, C. W. Probst, and M. Franz. HotpathVM: an effective JIT compiler for resource-constrained devices. In VEE, Ottawa, Ontario, Canada, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. Georges, D. Buytaert, and L. Eeckhout. Statistically rigorous java performance evaluation. SIGPLAN Notices, 42(10):57--76, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. B. Grant, M. Mock, M. Philipose, C. Chambers, and S. J. Eggers. DyC: an expressive annotation-directed dynamic compiler for c. Theoretical Computer Science, 248:147--199, Oct. 2000. ACM ID: 357493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. U. Hölzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In PLDI, pages 326--336, Orlando, Florida, United States, 1994. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. N. D. Jones, C. K. Gomard, and P. Sestoft. Partial evaluation and automatic program generation. Prentice-Hall, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Rigo. Representation-based just-in-time specialization and the psyco prototype for python. In PEPM, Verona, Italy, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Rigo and S. Pedroni. PyPy's approach to virtual machine construction. In DLS, Portland, Oregon, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. R. Rose. Bytecodes meet combinators: invokedynamic on the JVM. Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. G. T. Sullivan, D. L. Bruening, I. Baron, T. Garnett, and S. Amarasinghe. Dynamic native optimization of interpreters. In Workshop on Interpreters, virtual machines and emulators, San Diego, California, 2003. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Wolczko, O. Agesen, and D. Ungar. Towards a universal implementation substrate for Object-Oriented languages. In OOPSLA workshop on Simplicity, Performance, and Portability in Virtual Machine Design, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Yermolovich, C. Wimmer, and M. Franz. Optimization of dynamic languages using hierarchical layering of virtual machines. In DLS, pages 79--88, Orlando, Florida, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Runtime feedback in a meta-tracing JIT for efficient dynamic languages

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Other conferences
            ICOOOLPS '11: Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
            July 2011
            64 pages
            ISBN:9781450308946
            DOI:10.1145/2069172

            Copyright © 2011 ACM

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 26 July 2011

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            Overall Acceptance Rate 6 of 8 submissions, 75%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!