| The case for virtual register machines |
| Full text |
Pdf
(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 |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 25, Downloads (12 Months): 119, Citation Count: 7
|
|
|
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
|
|
CITED BY 7
|
|
|
|
|
|
|
|
Yunhe Shi , David Gregg , Andrew Beatty , M. Anton Ertl, Virtual machine showdown: stack versus registers, Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, June 11-12, 2005, Chicago, IL, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|