ACM Home Page
Please provide us with feedback. Feedback
The case for virtual register machines
Full text PdfPdf (239 KB)
Source Interpreters, Virtual Machines And Emulators archive
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators table of contents
San Diego, California
Pages: 41 - 49  
Year of Publication: 2003
ISBN:1-58113-655-2
Authors
Brian Davis  Trinity College, Dublin, Ireland
Andrew Beatty  Trinity College, Dublin, Ireland
Kevin Casey  Trinity College, Dublin, Ireland
David Gregg  Trinity College, Dublin, Ireland
John Waldron  Trinity College, Dublin, Ireland
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 25,   Downloads (12 Months): 119,   Citation Count: 7
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/858570.858575
What is a DOI?

ABSTRACT

Virtual machines (VMs) are a popular target for language implementers. Conventional wisdom tells us that virtual stack architectures can be implemented with an interpreter more efficiently, since the location of operands is implicit in the stack pointer. In contrast, the operands of register machine instructions must be specified explicitly. In this paper, we present a working system for translating stack-based Java virtual machine (JVM) code to a simple register code. We describe the translation process, the complicated parts of the JVM which make translation more difficult, and the optimisations needed to eliminate copy instructions. Experimental results show that a register format reduces the number of executed instructions by 34.88%, while increasing the number of bytecode loads by an average of 44.81%. Overall, this corresponds to an increase of 2.32 loads for each dispatch removed. We believe that the high cost of dispatches makes register machines attractive even at the cost of increased loads.


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
M. Bull, L. Smith, M. Westhead, D. Henty, and R. Davey. Benchmarking Java Grande applications. In Second International Conference and Exhibition on the Practical Application of Java, Manchester, UK, April 2000.
2
 
3
 
4
 
5
 
6
E. Gagnon and L. Hendren. SableVM: A research framework for the efficient execution of Java bytecode. In First USENIX Java Virtual Machine Research and Technology Symposium, Monterey, California, April 2001.
 
7
E. Gagnon and L. Hendren. Effective inline-threaded interpretation of java bytecode using preparation sequences. In Proceedings of the 12th International Conference on Compiler Construction, LNCS 2622, pages 170--184, April 2003.
 
8
D. Gregg, A. Ertl, and A. Krall. A fast java interpreter. In Proceedings of the Workshop on Java optimisaton strategies for embedded systems (JOSES), Genoa, April 2001.
 
9
10
11
12
 
13
 
14
SPEC. SPEC releases SPEC JVM98, first industry-standard benchmark for measuring Java virtual machine performance. Press Release, August 19 1998. http://www.specbench.org/osg/jvm98/press.html.
 
15
D. Sugalski. http://www.parrotcode.org/.
 
16


Collaborative Colleagues:
Brian Davis: colleagues
Andrew Beatty: colleagues
Kevin Casey: colleagues
David Gregg: colleagues
John Waldron: colleagues