RFR: 8356989: Unexpected null in C2 compiled code
Vladimir Kozlov
kvn at openjdk.org
Fri May 23 04:40: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.
May be more accurate would be to check escape state:
if (arg_ptn != src_ptn || es == PointsToNode::NoEscape) {
-------------
Changes requested by kvn (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/25389#pullrequestreview-2863138100
More information about the hotspot-compiler-dev
mailing list