RFR: 8341976: C2: use_mem_state != load->find_exact_control(load->in(0)) assert failure [v5]
Roland Westrelin
roland at openjdk.org
Fri Mar 21 14:49:09 UTC 2025
On Thu, 20 Mar 2025 07:38:02 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:
>> Roland Westrelin has updated the pull request incrementally with one additional commit since the last revision:
>>
>> -XX:+TraceLoopOpts fix
>
> src/hotspot/share/opto/macroArrayCopy.cpp line 826:
>
>> 824: }
>> 825:
>> 826: if (is_partial_array_copy) {
>
> Why is this check no longer required?
` ArrayCopyNode::may_modify()` performs some pattern matching and needs to be in sync with the shape of the array copy once expanded. If that shape changes then ` ArrayCopyNode::may_modify()` needs to be adjusted. The code you points to was added when the shape of the expanded array copy was changed to avoid a complicated update to the pattern matching in ` ArrayCopyNode::may_modify()`. What I propose is to get rid of the pattern matching because it's fragile and to instead always use the trick from that change where the final `MemBarNode` is marked, so make it unconditional.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23465#discussion_r2007739875
More information about the hotspot-compiler-dev
mailing list