RFR: 8356989: Unexpected null in C2 compiled code
Vladimir Kozlov
kvn at openjdk.org
Fri May 23 04:51:50 UTC 2025
On Thu, 22 May 2025 09:22:08 GMT, Roland Westrelin <roland 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.
Marked as reviewed by kvn (Reviewer).
On other hand we may not propagate global-escape state which may affect locking optimizations.
Okay your fix is good.
-------------
PR Review: https://git.openjdk.org/jdk/pull/25389#pullrequestreview-2863156117
PR Comment: https://git.openjdk.org/jdk/pull/25389#issuecomment-2903254599
More information about the hotspot-compiler-dev
mailing list