On Mon, 15 Dec 2025 20:55:28 GMT, Frederic Parain <[email protected]> wrote:
>> CDS heap dumping was manually disabled in lworld due to the method in which
>> the migrated value classes were added to the JDK. Migrated value classes
>> were added through module patching which is incompatible with CDS heap
>> dumping, but now since they are added through jimage, we can re-enable CDS
>> heap dumping and related features that rely on it.
>>
>> AOT adds some complexity to this as it loads and links classes in VM
>> startup, so alternate code paths need to be considered. Signature calling
>> conventions are stored in adapters which are archived in the AOT code cache,
>> but they aren't usable at runtime, so they need to be regenerated even if we
>> don't regenerate the adapters.
>
> src/hotspot/share/cds/aotMetaspace.cpp line 586:
>
>> 584: case ztos: new_code = Bytecodes::_fast_bgetfield; break;
>> 585: case atos: {
>> 586: if (rfe->is_flat() || rfe->is_null_free_inline_type()) {
>
> null-free getfields are not rewritten to fast_vgetfield, but to
> fast_agetfield, because there's no additional check on read.
Precision: null-free non-flat getfields are not rewritten to fast_vgetfield,
but to fast_agetfield, because there's no additional check on read.
-------------
PR Review Comment:
https://git.openjdk.org/valhalla/pull/1757#discussion_r2620838470