[jdk18] RFR: 8275830: C2: Receiver downcast is missing when inlining through method handle linkers
Vladimir Kozlov
kvn at openjdk.java.net
Mon Jan 3 19:16:18 UTC 2022
On Mon, 3 Jan 2022 18:45:25 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
> JDK-8268405 introduced receiver downcasts when inlining through virtual calls
> when CHA reveals a unique target method under an abstract or default method.
> But it handled only cases when invocation is performed using
> `invokevirtual`/`invokeinterface` bytecodes and completely omitted `invokedynamic` and
> `MethodHandles` cases.
>
> The fix covers missing cases by checking whether invocation happens through
> corresponding method handle linkers (`MethodHandle.linkToVirtual`/`MethodHandle.linkToInterface`).
>
> Testing: hs-tier1 - hs-tier4
It is time to update Copyright year to 2022 in changed files.
test/hotspot/jtreg/compiler/cha/AbstractRootMethod.java line 64:
> 62:
> 63: // Implementation limitation: CHA is not performed by C1 during inlining through MH linkers.
> 64: if (!sun.hotspot.code.Compiler.isC1Enabled()) {
I think you also need to check that C2 is enabled (could be JVMCI).
-------------
Changes requested by kvn (Reviewer).
PR: https://git.openjdk.java.net/jdk18/pull/77
More information about the hotspot-compiler-dev
mailing list