Replaced jvmci suite dependency with dependency on a JVMCI JDK

Doug Simon doug.simon at
Thu Jun 16 19:12:41 UTC 2016

The time has arrived to treat JVMCI as a frozen API. This will be the case anyway once JDK 9 is released. As such, we have removed[1] the dependency from graal-core to the jvmci suite and instead graal-core now requires JAVA_HOME to be a JVMCI enabled JDK. For JDK 9, an EA build[2] should be available within the next month that contains the remaining JVMCI API changes. For JDK 8, we will provide binaries on OTN[3]. Until the OTN binaries are available, you can build your own as follows:

hg clone
cd graal-jvmci-8
mx --java-home /path/to/jdk8u92 build
export JAVA_HOME=$(mx --java-home /path/to/jdk8u92 jdkhome)

For both JDK 8 and JDK 9, a JVMCI binary enables JVMCI for hosted use as well as replacing C2 as the top-tier compiler. The -server option enables the former usage and adding -XX:+UseJVMCICompiler (additionally) enables the latter. To disable JVMCI altogether, you can specify -XX:-EnableJVMCI. From an mx perspective, the --vm and --vmbuild options have disappeared along with the jvmci suite. Note that these options changes are only related to JVMCI itself - the graal-core suite will add additional options to configure Graal as the JVMCI compiler. Of most interest is the -Djvmci.class.path.append system property which is used by the graal-core JDK (i.e., selected by `--jdk jvmci` or by having graal-core as the primary suite) to communicate the Graal jars to the VM. This allows Graal to run on the JVMCI JDK without modifying the JDK directory.



More information about the graal-dev mailing list