RFR: 8365229: ARM32: c2i_no_clinit_check_entry assert failed after JDK-8364269 [v3]

Andrew Dinn adinn at openjdk.org
Wed Aug 13 15:44:11 UTC 2025


On Wed, 13 Aug 2025 14:50:04 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> Correction - we just need to avoid creating the blob and checking the offsets when SharedRuntime::generate_i2c2i_adapters returns an empty code buffer. The nullptr checks are already in place in relocate.
>> 
>> Aleksey, are you ok to do that?
>
> So you want to `return false` or `return true` from `AdapterHandlerLibrary::generate_adapter_code` when, say, `buffer.insts()->size() == 0` right after `SharedRuntime::generate_i2c2i_adapters`? This does not seem to work, since `SharedRuntime` really wants to see some initial adapters generated, even in Zero case: https://github.com/openjdk/jdk/blob/001aaa1e49f2692061cad44d68c9e81a27ea3b98/src/hotspot/share/runtime/sharedRuntime.cpp#L2605-L2609
> 
> I honestly do not want to break some _other_ assumption that VM has by not generating some of the adapters for Zero, even if fake ones.
> 
> I am running out of time to spend on this, maybe you can play around with Zero yourself? `--with-jvm-variants=zero` would give you a build on x86_64 or AArch64 easily.

Yeah, sure I'll take this over. It's perverse that we are creating blobs on Zero that we don't need just to satisfy some asserts. I don't believe there can be any real consequences of not generating them because they contain nothing.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26746#discussion_r2273864587


More information about the hotspot-compiler-dev mailing list