ACM Home Page
Please provide us with feedback. Feedback
HotpathVM: an effective JIT compiler for resource-constrained devices
Full text PdfPdf (221 KB)
Source ACM/Usenix International Conference On Virtual Execution Environments archive
Proceedings of the 2nd international conference on Virtual execution environments table of contents
Ottawa, Ontario, Canada
SESSION: Code management table of contents
Pages: 144 - 153  
Year of Publication: 2006
ISBN:1-59593-332-6
Authors
Andreas Gal  University of California, Irvine, Irvine, CA
Christian W. Probst  Technical University of Denmark, Lyngby, Denmark
Michael Franz  University of California, Irvine, Irvine, CA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGOPS: ACM Special Interest Group on Operating Systems
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 140,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1134760.1134780
What is a DOI?

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

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked 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.
 
2
A. Appel. Concise Specification of Locally Optimal Code Generators. Technical Report CS-TR-080-87, Princeton University, 1987.
 
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.
 
4
J. R. Bell. Threaded code. Communications of the ACM, 16(6):370--372, 1973.
 
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.
 
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.
 
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.
 
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.
 
9
J. A. Fisher. Trace Scheduling: A Technique for Global Microcode Compaction. IEEE Transactions on Computers, C-30(7):478--490, 1981.
 
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.
 
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.
 
12
Free Software Foundation. GNU c compiler, Dec. 2005. http://gcc.gnu.org.
 
13
A. Gal. KVM [24] compiled for PowerPC/Linux with GNU C Compiler 3.2, April 2005.
 
14
A. Gal. Measured on a Sharp Zaurus PDA, 206 MHz SA-1110, 64MB RAM, using a modified subset of SpecJVM98, July 2005.
 
15
CLDC HotSpot Implementation Virtual Machine, available at http://java.sun.com/j2me/docs/pdf/CLDC-HI_whitepaper-February_2005.pdf, Feb. 2005.
 
16
Insignia Solutions. Jeode Platform: Java for Resource-constrained Devices, White Paper, 2002.
 
17
R. Lougher. JamVM Virtual Machine. http://jamvm.sf.net/, Nov. 2005.
 
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.
 
19
R. Pozo and B. Miller. SciMark2 http://math.nist.gov/scimark2, Mar. 2004.
 
20
K. Schmid. Jbed Micro Edition CLDC and Jbed Profile for MID. Technical report, Esmertec AG, Dubendorf, Switzerland, 2002.
 
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.
 
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.
 
23
SUN J2ME's Homepage. http://java.sun.com/j2me.
 
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.

CITED BY  8

Collaborative Colleagues:
Andreas Gal: colleagues
Christian W. Probst: colleagues
Michael Franz: colleagues