Recent Changes - Search:

PmWiki

pmwiki.org

edit SideBar

UpgradingJikes

This page is intended to describe the current work in progress upgrading existing jikes into the lastest IBM version.

Steps

1. Use cvs to merge changes into existing version:

The current working JaVM version is based upon IBM's with tag JAVM_BASE_0. The most up to date IBM version is tagged IBM_HEAD_22_07_06__21_50 . That version is now tagged JAVM_BASE_1.

The command to merge: cvs update -dP -j JAVM_BASE_0 -j JAVM_BASE_1

That was done on the latest JAVM

2. Resolving conflicts:

Finished, but can't confirm correctness! (especially with jconfigure and rvmrun scripts)

3. Building the system:

Finished

log:

  • Not done yet, should expect a lot of compilation errors due to possible changes in method declarations
  • Had a problem with that bootimage now seems to be partitioned into two. I've found from andrew the memory map used in JaVM. The new version seems also to change some of the memory management file names, for instance VM_Interface.java is now MM_Interface.java
  • The jconfigure script doesn't crash
  • Changes in host and target configuration files: BOOTIMAGE_LOAD_ADDRESS is not replaced by BOOTIMAGE_CODE_ADDRESS and BOOTIMAGE_DATA_ADDRESS
  • Fixed jconfigure (didn't know about cat <<- EOF and EOF mechanism)
  • Added Make.operatorList into /rvm/src/vm/arch/jamaica/compilers/optimizing/ir/instruction/ (copied from Intel's)
  • There is now PREPARE_INT and PREPARE_ADDR instead of PREPARE operator: had to modify OPT_ConvertALUOperations.java and JAM.rules as in intel
  • There is now ATTEMPT_INT and ATTEMPT_ADDR instead of ATTEMPT operator: same as above
  • There is now BOOLEAN_CMP_INT and BOOLEAN_CMP_ADDR instead of BOOLEAN_CMP: same as above
  • VM_Address and some related classes are now named without the VM_ and files using them need import org.vmmagic.unboxed.*;
  • address offsets are now represented by Offset class, I didn't yet change Andrew's event system to handle that
  • DeterministicThreadSwitching is not in the new system, I'm not sure if it's something particular to Jamaica, I'll keep that for the moment
  • Needed remove classpath dir and use jbuild to download a new one
  • the Tempelate generator is very fragile; it's behaviour is not defined if the input dat files structure differs (even if parts of it are guarded by if statements)
  • FLOAT_IFCMPG and FLOAT_IFCMPL are not merged into FLOAT_IFCMP (as well as DOUBLE). Since we already have fcmpg and fcmpl instrucution, I changed OPT_ConvertALUOperations to split the instructions again!

4- Booting and Running

For the moment the system crashes while attempting to load javalang library. Chris is fixing that. But it has loaded both code and data images and started to load few classes. Last bug fixed was due to a missing magic method in VM_Compiler, that is added and also full check is done for other missing methods (and added).

Notes

  • The magic methods are not yet changed in the Opt Compiler, that needs doing.
  • The system is currently tested with BaseBaseNoGC configuration. A next step would be to test garbage collection

Memory Map

 
 -----------------   <---  0x0000000 
| Spill region? + |
| BootImageRunner |
|                 |
|-----------------|  <---  0x1000000 (16M)
|                 |
|   Code Image    |
|                 |
|-----------------|
|                 |
~                 ~
|                 |
|-----------------|  <---  0x4000000 (64M)
|                 |
|   Data Image    |
|                 |
|                 |
|-----------------|   
|                 |
~                 ~

Porting BaseOptNoGC configuration

Uptill now the Opt compiler isn't ported. I thought to follow the same step as we did in porting the old system; that is use BaseOptNoGC configuration: baselinecompiled bootimage,a runtime opt compiler, and no garbage collection

Edit - History - Print - Recent Changes - Search
Page last modified on October 21, 2006, at 10:07 PM