RFR: 8335977: Deoptimization fails with assert "object should be reallocated already" [v2]

Tobias Hartmann thartmann at openjdk.org
Wed Oct 30 10:13:06 UTC 2024


On Tue, 29 Oct 2024 22:50:30 GMT, Cesar Soares Lucas <cslucas at openjdk.org> wrote:

>> Please, review this patch to fix an issue that may occur when serializing debug information related to reduce allocation merges. The problem happens when there are more than one JVMS in a `uncommon_trap` and a _younger_ JVMS doesn't have the RAM inputs as a local/expression/monitor but an older JVMS does. In that situation the loop at line 1173 of output.cpp will set the `is_root` property of the ObjectValue to `false` when processing the younger JVMS even though it may have been set to `true` when visiting the older JVMS.
>> 
>> Tested on: 
>>  - Win, Mac & Linux tier1-4 on x64 & Aarch64.
>>  - CTW with some thousands of jars.
>
> Cesar Soares Lucas has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Address PR feedback: typo on test & refactor in output.cpp.

Looks good to me too.

src/hotspot/share/opto/output.cpp line 1182:

> 1180:             bool is_root = locarray->contains(ov) ||
> 1181:                           exparray->contains(ov) ||
> 1182:                           contains_as_owner(monarray, ov) ||

Indentation is slightly off here.

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

Marked as reviewed by thartmann (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/21624#pullrequestreview-2404275120
PR Review Comment: https://git.openjdk.org/jdk/pull/21624#discussion_r1822282197


More information about the hotspot-compiler-dev mailing list