The Jikes RVM Copy Eliminating Baseline
Compiler Framework (2008)
This
project presents the design and implementation of a baseline
compilation framework for the open source Java research virtual machine
the Jikes RVM. This framework, written entirely in Java, constitutes a
redesign of the existing baseline compiler and presents abstractions
over common 32- and 64-bit operations, paving the way for the
implementation of support for 64-bit architectures. With support for
64-bit architectures in place a plethora of new research opportunities
can be explored. In addition the developed framework also provides
support for copy elimination, a machine code optimisation technique
used to avoid the generation of unnecessary copy instructions. The
developed framework exhibits an improvement over the existing baseline
compiler from both a design and performance perspective. In terms of
design the abstractions implemented increase the portability of the
framework and improve its maintainability. In terms of performance the
results gathered show that the number of instructions produced by the
framework has reduced by 24.95%, the number of memory operations
produced has reduced by 13.47% and that, despite the inclusion of code
to apply optimisations, code generation performance has improved by
59.27%.
- 15,000 words - 58
pages in length
- Expertly written
throughout
- Excellent analysis
- Good use of models
& theory
- Ideal for computer
science & IT students
1
Introduction
Motivation
The Java Virtual
Machine
Compilation
Techniques
64-bit Java
Virtual Machines
The Jikes RVM
Compiler Subsystem
Aims and
Objectives
Portability
Abstraction of
Common 32- and 64-bit Operations
x86 Support
Machine Code
Optimisations
Competitive
Performance
Report Outline
2
Related Work
CACAO
Copy Elimination
Joeq
The Visitor
Pattern
Previous 64-bit
Projects
A Space-Aware
AMD64 Port of Jikes RVM
The Jikes RVM
64-bit PowerPC
3
Design
Compilation
Process
Bytecode Visitor
Basic Block
Discovery
Garbage
Collection Map Generation
Stack Height
Calculation
Code Generation
Abstractions
Optimisations
Register Use
Code Generation
Class Model
The Compilation
Framework
VM B2Compiler
VM B2Constants
VM
ArchSpecificCopies
VM StackFrameUtils
4
Results
x86 Support
VM X86Compiler
VM X86B2Constants
VM X86RegisterPool
VM
X86StackFrameUtils and VM X86Copies
Existing Baseline
Comparison
Instructions
Memory Operations
Performance
Algorithm
Complexity
Results Critique
5
Testing
Approach
Basic Block
Testing
Stack Height
Testing
Machine Code
Testing
6
Conclusions
Evaluation of
Achievements
Further Work
Reference Maps
Architecture
Support
Constant Folding
Dynamic Register
Pool
Bibliography
Appendix A:
Benchmark One Performance Data
Appendix B:
Bytecode Test Output
1. Select reference number ict0027
from the dropdown list
2. Click the PayPal button
3. Click the "Click Here" button on the PayPal page to submit your
credit/debit card payment
4. We will email your chosen dissertation in PDF format within 24 hours
|