Relates :
|
JDK-8264805 :
|
|
JDK-8264806 :
|
|
JDK-8265149 :
|
Summary ------- Remove the experimental Java-based ahead-of-time (AOT) and just-in-time (JIT) compiler. This compiler has seen little use since its introduction and the effort required to maintain it is significant. Retain the experimental Java-level JVM compiler interface (JVMCI) so that developers can continue to use externally-built versions of the compiler for JIT compilation. Motivation ---------- Ahead-of-time compilation (the `jaotc` tool) was incorporated into JDK 9 as an experimental feature via [JEP 295][jep-aot]. The `jaotc` tool uses the Graal compiler, which is itself written in Java, for AOT compilation. The Graal compiler was made available as an experimental JIT compiler in JDK 10 via [JEP 317][jep-graal]. We have seen little use of these experimental features since they were introduced, and the effort required to maintain and enhance them is significant. These features were [not included][jdk16] in the JDK 16 builds published by Oracle, and no one complained. Description ----------- Remove three JDK modules: - `jdk.aot` ��� the `jaotc` tool - `jdk.internal.vm.compiler` ��� the Graal compiler - `jdk.internal.vm.compiler.management` ��� Graal's `MBean` Preserve these two Graal-related source files so that the JVMCI module (`jdk.internal.vm.ci`, [JEP 243][jep-jvmci]) continues to build: - `src/jdk.internal.vm.compiler/share/classes/module-info.java` - `src/jdk.internal.vm.compiler.management/share/classes/module-info.java` Remove HotSpot code related to AOT compilation: - `src/hotspot/share/aot` ��� dumps and loads AOT code - Additional code guarded by `#if INCLUDE_AOT` Finally, remove tests as well as code in makefiles related to Graal and AOT compilation. Alternatives ------------ Developers who wish to use the Graal compiler for either AOT or JIT compilation can use [GraalVM][graalvm]. Risks and Assumptions --------------------- We assume that developers actively using these features have had sufficient notice of this removal. [jep-aot]: https://openjdk.java.net/jeps/295 [jep-graal]: https://openjdk.java.net/jeps/317 [jep-jvmci]: http://openjdk.java.net/jeps/243 [jdk16]: https://bugs.openjdk.java.net/browse/JDK-8255616 [graalvm]: https://www.graalvm.org
|