RFR: JDK-8316756: C2 EA fails with "missing memory path" when encountering unsafe_arraycopy stub call [v3]

Vladimir Kozlov kvn at openjdk.org
Tue Jan 16 18:09:20 UTC 2024


On Tue, 16 Jan 2024 17:50:10 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:

>> If it is not Narrow memory you will get `MergeMem` node as Call's memory input which we put on`mergemem_worklist` and not processing it or its users in this part of code. We have `assert(mergemem_worklist.contains(m->as_MergeMem())` instead here.
>> 
>> You can add `assert(!n->in(TypeFunc::Memory)->as_MergeMem(), "only narrow memory expected here");` if you want.
>
> Right, we could add this assert as well for expecting a narrow memory input in general. What are your thoughts about explicitly asserting for an unsafe arraycopy when visiting this call?

No. There is another case (DTrace runtime call) with narrow memory: [parseHelper.cpp#L54](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/parseHelper.cpp#L54)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17347#discussion_r1453792760


More information about the hotspot-compiler-dev mailing list