Ravi kiran Gorrepati
Computer Science Department
University of New Mexico
Albuquerque, New Mexico

email: ravi at cs dot unm dot edu
Office: FEC 345D
Phone: 277-3351


I have graduated with a Masters degree from UNM. Here is a copy of my thesis report.


I am a Masters student at UNM in Computer Science. I work with Prof. Darko Stefanovic, on porting Jikes RVM to IA64 Architecture.

This work allows for exploring advanced compilation techniques on Itanium, aside from allowing research on garbage collection algorithms on this relatively new architecture.

For the uninitiated..

What is Jikes RVM?
Jikes RVM is a open source virtual machine for JavaTM, written in Java. It does not need another VM to run on, but runs on code generated by itself.
Isn't that recursive? How does it work?
Consider this,
1. A virtual machine runs the Java bytecode. It does this by converting bytecode to machine code, and running the machine code in a closed environment.
2. Now, you write a VM in Java. This VM is supposed to generate machine code(here, IA64), from bytecode.
3. Since your VM is written in Java, it runs only on a JVM. So you run this on a JVM.
4. Say that your code works properly, and generates correct IA64 instructions for it's input bytecodes. Now, you have a code generator for IA64. That is, output of your code generator runs on IA64.
5. Give as input to your code generator, the .class files of the VM (the bytecode of your VM).
6. What you get as output is IA64 code, which can generate IA64 code from bytecodes.
7. Now you write a C wrapper around this, which boots the VM and facilitates in running the input bytecode in a closed enviroment.

Note that this is a simplistic view of the actual process, and does not represent the complete picture.
Isn't Itanium a large slow processor, reminding us of some sunk ship?
This article should put Itanium in good light. And, dont forget about the spec scores