Jikes

From Sniper
Jump to navigation Jump to search

It is possible to run the Jikes RVM (Research Virtual Machine) and the DaCapo benchmarks suite on top of Sniper. The latest Benchmarks release contains all code necessary to do this.

WARNING This setup can be complicated to make it work correctly! Expect to have to experiment to find a right combination of host machine and OS that works for you. In general, AMD machines seem to cause issues. Running on a 32-bit OS, or in a 32-bit changeroot, is preferable over cross-compiling on a 64-bit OS.

Requirements:

  • Intel CPU
  • Ant 1.8
  • Java 1.6 (1.7 does not work!)

Steps:

  • Compile Sniper in 32-bit mode: by default on a 32-bit host OS, or to cross-compile use make SNIPER_TARGET_ARCH=ia32
  • Obtain the benchmarks, and follow these steps to compile Jikes
    • export SNIPER_ROOT=/path/to/sniper
    • cd benchmarks
    • export BENCHMARKS_ROOT=$(pwd)
    • make -C tools/hooks
    • make -C jikes
  • The last command will download the DaCapo benchmarks, compile the probes.jar framework which allows for ROI selection and replay compilation, and download a compiled version of Jikes that has been patched to support Sniper's magic instructions for ROI begin/end
    • To compile Jikes from source instead, allowing you to modify the flow and potentially make other changes to its source, you can start from the jikesrvm target in benchmarks/jikes/Makefile
  • You should now be able to run DaCapo+Jikes applications on Sniper using
$BENCHMARKS_ROOT/run-sniper -c gainestown -c jikes -n 4 -p jikes-APP
    • You can change the target architecture configuration (replace -c gainestown with e.g. -c silvermont), but you should keep -c jikes in place.
    • The applications that work are: antlr avrora bloat fop jython luindex lusearch lusearch.fix pmd sunflow xalan. Other DaCapo applications have known incompatibilities with either Jikes, Sniper, or both.