On Wed, 24 Jun 2026 11:16:56 GMT, Roland Westrelin <[email protected]> wrote:

>> The bug is caused by a mismatch in the way `LoadFlat` and `StoreFlat`
>> are handled in `ConnectionGraph::find_inst_mem()` and
>> `MemNode::optimize_simple_memory_chain()`. Once EA has run a first
>> time, found some value array allocations as non escaping, and removed
>> their `LoadFlat`/`StoreFlat`, igvn runs and is able to further
>> transform the memory subgraph which introduces inconsistencies that
>> are then caught the next time EA runs.
>> 
>> The fix tries to make sure `ConnectionGraph::find_inst_mem()` and
>> `MemNode::optimize_simple_memory_chain()` handle `LoadFlat` and
>> `StoreFlat` similarly.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Roland Westrelin has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   more

This looks reasonable to me. I submitted some testing and will report back once 
it finished.

src/hotspot/share/opto/escape.cpp line 4552:

> 4550: #define FIND_INST_MEM_RECURSION_DEPTH_LIMIT 1000
> 4551: 
> 4552: // Does LoadFlat/StoreFlat flat_access alias with memory acess with 
> type toop?

Suggestion:

// Does LoadFlat/StoreFlat flat_access alias with memory access with type toop?

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

Marked as reviewed by thartmann (Committer).

PR Review: 
https://git.openjdk.org/valhalla/pull/2489#pullrequestreview-4570575452
PR Review Comment: 
https://git.openjdk.org/valhalla/pull/2489#discussion_r3474104371

Reply via email to