Study-Aids.co.uk benefits ,
Close window


The Jikes RVM Copy Eliminating Baseline Compiler Framework


Ref: ict0027

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



How To Order

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
Please select: 

Back to Top