RFR: 8356989: Unexpected null in C2 compiled code

Roland Westrelin roland at openjdk.org
Mon May 26 07:21:19 UTC 2025


On Fri, 23 May 2025 04:49:18 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> In the test case, a non escaping array is initialized by an
>> `arraycopy` that uses this array as source and destination. Following
>> the `arraycopy`, one of the element of the array is tested for
>> `null`. That null check is constant folded to always `null` by escape
>> analysis. As I understand, the `Allocate` for the array should be
>> marked by EA as destination of an array copy. That state should then
>> be propagated by EA to uses and all destinations of an array copy
>> should be marked as unknown value. But EA has logic that explicitly
>> skips the case where an `ArrayCopy` has same source and
>> destination. Removing that logic fixes the failure.
>
> On other hand we may not propagate global-escape state which may affect locking optimizations.
> Okay your fix is good.

@vnkozlov thanks for the comments and review
@TobiHartmann @chhagedorn thanks for the reviews

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

PR Comment: https://git.openjdk.org/jdk/pull/25389#issuecomment-2908784418


More information about the hotspot-compiler-dev mailing list