10.1145/1134760.1134780acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedings
Article

HotpathVM: an effective JIT compiler for resource-constrained devices

ABSTRACT

We present a just-in-time compiler for a Java VM that is small enough to fit on resource-constrained devices, yet is surprisingly effective. Our system dynamically identifies traces of frequently executed bytecode instructions (which may span several basic blocks across several methods) and compiles them via Static Single Assignment (SSA) construction. Our novel use of SSA form in this context allows to hoist instructions across trace side-exits without necessitating expensive compensation code in off-trace paths. The overall memory consumption (code and data) of our system is only 150 kBytes, yet benchmarks show a speedup that in some cases rivals heavy-weight just-in-time compilers.

References

  1. A. V. Aho, M. Ganapathi, and S. W. K. Tjiang. Code Generation Using Tree Matching and Dynamic Programming. ACM Transactions on Programming Languages and Systems, 11(4):491--516, Oct. 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Appel. Concise Specification of Locally Optimal Code Generators. Technical Report CS-TR-080-87, Princeton University, 1987.]]Google ScholarGoogle Scholar
  3. V. Bala, E. Duesterwald, and S. Banerjia. Transparent Dynamic Optimization: The Design and Implementation of Dynamo. Technical Report HPL-1999-78, Hewlett Packard Laboratories, June 1999.]]Google ScholarGoogle Scholar
  4. J. R. Bell. Threaded code. Communications of the ACM, 16(6):370--372, 1973.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. P. Chang, S. A. Mahlke, and W.-M. W. Hwu. Using Profile Information to Assist Classic Code Optimizations. Software---Practice and Experience, 21(12):1301--1321, December 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Transactions on Programming Languages and Systems, 13(4):451--490, October 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Debbabi, A. Mourad, and N. Tawbi. Armed E-Bunny: a selective dynamic compiler for embedded java virtual machine targeting ARM processors. In SAC '05: Proceedings of the 2005 ACM symposium on Applied computing, pages 874--878, New York, NY, USA, 2005. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. H. Emmelmann, F.-W. Schröer, and L. Landwehr. BEG: A Generator for Efficient Back Ends. In Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 227--237, 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. A. Fisher. Trace Scheduling: A Technique for Global Microcode Compaction. IEEE Transactions on Computers, C-30(7):478--490, 1981.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. W. Fraser, D. R. Hanson, and T. A. Proebsting. Engineering a Simple, Efficient Code-Generator Generator. ACM Letters on Programming Languages and Systems, 1(3):213--226, September 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. C. W. Fraser, R. R. Henry, and T. A. Proebsting. BURG: Fast Optimal Instruction Selection And Tree Parsing. ACM SIGPLAN Notices, 27(4):68--76, Apr. 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Free Software Foundation. GNU c compiler, Dec. 2005. http://gcc.gnu.org.]]Google ScholarGoogle Scholar
  13. A. Gal. KVM {24} compiled for PowerPC/Linux with GNU C Compiler 3.2, April 2005.]]Google ScholarGoogle Scholar
  14. A. Gal. Measured on a Sharp Zaurus PDA, 206 MHz SA-1110, 64MB RAM, using a modified subset of SpecJVM98, July 2005.]]Google ScholarGoogle Scholar
  15. CLDC HotSpot Implementation Virtual Machine, available at http://java.sun.com/j2me/docs/pdf/CLDC-HI_whitepaper-February_2005.pdf, Feb. 2005.]]Google ScholarGoogle Scholar
  16. Insignia Solutions. Jeode Platform: Java for Resource-constrained Devices, White Paper, 2002.]]Google ScholarGoogle Scholar
  17. R. Lougher. JamVM Virtual Machine. http://jamvm.sf.net/, Nov. 2005.]]Google ScholarGoogle Scholar
  18. J. A. Mathew, P. D. Coddington, and K. A. Hawick. Analysis and Development of Java Grande Benchmarks. In Proceedings of the ACM 1999 Java Grande Conference, San Francisco, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Pozo and B. Miller. SciMark2 http://math.nist.gov/scimark2, Mar. 2004.]]Google ScholarGoogle Scholar
  20. K. Schmid. Jbed Micro Edition CLDC and Jbed Profile for MID. Technical report, Esmertec AG, Dubendorf, Switzerland, 2002.]]Google ScholarGoogle Scholar
  21. N. Shaylor. A Just-in-Time Compiler for Memory-Constrained Low-Power Devices. In Proceedings of the 2nd Java and Virtual Machine Research and Technology Symposium, pages 119--126, Berkeley, CA, USA, 2002. USENIX Association.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. L. Stepanian, A. D. Brown, A. Kielstra, G. Koblents, and K. Stoodley. Inlining java native calls at runtime. In VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, pages 121--131, New York, NY, USA, 2005. ACM Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. SUN J2ME's Homepage. http://java.sun.com/j2me.]]Google ScholarGoogle Scholar
  24. Sun Microsystems. J2ME Building Blocks for Mobile Devices, White Paper on KVM and the Connected, Limited Device Configuration http://java.sun.com/products/cldc/wp/KVMwp.pdf, May 2000.]]Google ScholarGoogle Scholar

Index Terms

  1. HotpathVM: an effective JIT compiler for resource-constrained devices

      Comments

      Login options

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

      Sign in

      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!