RFR: 8265480: add basic JVMCI support for JEP 309: Dynamic Class-File Constants [v4]
dnsimon at openjdk.java.net
Thu Apr 22 14:35:31 UTC 2021
On Thu, 22 Apr 2021 11:26:46 GMT, Doug Simon <dnsimon at openjdk.org> wrote:
>> This PR adds support to JVMCI for CONSTANT_Dynamic constant pool entries. It brings the JVMCI support on par with the support in CI for C1 and C2 with one difference: JVMCI will resolve unresolved condy entries where as CI bails out in this case (it expects condy entries to be resolved by the interpreter).
>> When using JVMCI for JIT compilation, unresolved entries should only be seen when running under -Xcomp.
>> When using JVMCI for AoT (e.g. Native Image), most entries will be unresolved since no other code apart from the AoT compiler is running.
> Doug Simon has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains two new commits since the last revision:
> - added comment explaining box conversion of primitives
> - added test for loading a List from a condy
test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/TestDynamicConstant.java line 28:
> 26: * @requires vm.jvmci
> 27: * @summary Test CONSTANT_Dynamic resolution by HotSpotConstantPool.
> 28: * @modules java.base/jdk.internal.org.objectweb.asm
Instead of ASM, I would have preferred to use `test.java.lang.invoke.lib.InstructionHelper` like `CondyBSMInvocation` [does](https://github.com/openjdk/jdk/blob/05a764f4ffb8030d6b768f2d362c388e5aabd92d/test/jdk/java/lang/invoke/condy/CondyBSMInvocation.java#L56). However, I could not figure out how to use a test library from the `test/jdk` suite in the `test/hotspot/jtreg` suite. Do you know if that's possible @PaulSandoz ?
More information about the hotspot-compiler-dev