On Thu, 11 Dec 2025 12:55:41 GMT, Paul Hübner <[email protected]> wrote:
>> src/hotspot/share/gc/parallel/psParallelCompact.cpp line 1481:
>>
>>> 1479: const bool full_header_in_current_region = cur_addr +
>>> oopDesc::header_size() <= end;
>>> 1480:
>>> 1481: if (EnableValhalla && !full_header_in_current_region) {
>>
>> We could make this criteria even more specific by checking something like
>> the following, but I'm not sure it's worth it since not copying the full
>> header in the same region is pretty rare.
>>
>>
>> static bool requires_valhalla_preservation(markWord mark) {
>> return EnableValhalla && (mark.is_larval_state() ||
>> mark.is_null_free_array() || mark.is_flat_array() || mark.is_inline_type());
>> }
>
> If I understand it correctly, the version you have right now is less
> conservative than `requires_valhalla_preservation` which may include false
> positives. I think I'm inclined to checking region containment, it also makes
> maintainability easier down the line (if we end up changing the markWord
> bits).
Yes, the version I have is less conservative than it could be, and I agree that
this makes the code easier to maintain.
-------------
PR Review Comment:
https://git.openjdk.org/valhalla/pull/1785#discussion_r2613389856