Tracking issue: integration of Jikes RVM with JNode

Project:JNode Core
Component:Code
Category:task
Priority:normal
Assigned:Stephen Crawley
Status:active
Description

This issue tracks progress of the porting of the Jikes RVM native compiler to JNode. The long term goal is to provide a better alternative to JNode's existing L1A compiler. The work is currently happening in the jikesRVM branch.

Most of the porting work was done by Ansari, with help from Peter Barth. I am trying to complete the integration ... and making slow progress because I'm still figuring out how to stuff works.

Current Status:

  • The jikesRVM branch has been synchronized with the trunk so that the only differences between them should be related to the integration.
  • The JNode build runs to completion in the jikesRVM branch, but the resulting JNode boot image dies quickly with a Panic caused by a kernel page fault.

Known and Suspected Issues / Work Items:

  • The JNode image built using the Jikes compiler crashes soon after boot.
  • I suspect there is problem with exception handling. (Ansari noted this when he left the project to do other things.)
  • We need a way to switch between using L1A and the Jikes native compiler while JNode is running.
  • We need a way to switch between using L1A and the Jikes native compiler to build JNode.
  • The Jikes compiler is supposed to be able to use another compiler as a "fallback", but I noticed that this does not work.
  • We need a decent compiler test suite.

If we can address the compiler switching issues (and any stability issues when L1A is used in the branch), it should be possible to merge the Jikes work into the JNode trunk, and stop using the jikesRVM branch. That would make life easier for folks doing compiler development, and make it easier for other people to help out with testing.