RFR: 8298099: [JVMCI] decouple libgraal from JVMCI module at runtime [v2]
Doug Simon
dnsimon at openjdk.org
Mon Dec 5 13:49:28 UTC 2022
> Libgraal is compiled ahead of time and should not need any JVMCI Java code to be dynamically loaded at runtime. Prior to this PR, this is not the case due to:
>
> * Code to copy system properties from the HotSpot heap into the libgraal heap. This is in `jdk.vm.ci.services.Services.initializeSavedProperties(byte[])` and `jdk.vm.ci.services.Services.serializeSavedProperties()`. This code should be moved to `java.base/jdk.internal.vm.VMSupport`.
> * Code to translate exceptions from the HotSpot heap into the libgraal heap and vice versa. This code should be moved from `jdk.internal.vm.ci//jdk.vm.ci.hotspot.TranslatedException` to `java.base/jdk.internal.vm.VMSupport`.
>
> This PR makes the above changes. As a result, it's possible to build a JDK image that includes (and uses) libgraal but does not include `jdk.internal.vm.ci` or `jdk.internal.vm.compiler`. This both reduces footprint and better isolates the JAVMCI and the Graal compiler as accessing these components from Java code is now impossible.
Doug Simon has updated the pull request incrementally with one additional commit since the last revision:
generalized ClassLoader::has_jvmci_module to is_module_resolvable
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/11513/files
- new: https://git.openjdk.org/jdk/pull/11513/files/b91f31fe..3e89d402
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=11513&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=11513&range=00-01
Stats: 9 lines in 3 files changed: 3 ins; 0 del; 6 mod
Patch: https://git.openjdk.org/jdk/pull/11513.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/11513/head:pull/11513
PR: https://git.openjdk.org/jdk/pull/11513
More information about the core-libs-dev
mailing list