RFR: 8370251: C2: Inlining checks for method handle intrinsics are too strict

Vladimir Kozlov kvn at openjdk.org
Mon Oct 20 21:35:01 UTC 2025


On Mon, 20 Oct 2025 21:00:40 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

> C2 performs access checks during inlining attempts through method handle
> intrinsic calls. But there are no such checks happening at runtime when
> executing the calls. (Access checks are performed when corresponding method
> handle is resolved.) So, inlining may fail due to access checks failure while
> the call always succeeds at runtime.
> 
> The fix is to skip access checks when inlining through method handle intrinsics.
> 
> Testing: hs-tier1 - hs-tier4

src/hotspot/share/opto/doCall.cpp line 245:

> 243:           receiver_method = callee->resolve_invoke(jvms->method()->holder(),
> 244:                                                    speculative_receiver_type,
> 245:                                                    check_access);

Can you explain why only here you pass `check_access` and expect it is `true` in all other places?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27908#discussion_r2446174649


More information about the hotspot-compiler-dev mailing list