Integrated: 8346184: C2: assert(has_node(i)) failed during split thru phi

Roland Westrelin roland at openjdk.org
Fri Jan 10 16:50:56 UTC 2025


On Wed, 18 Dec 2024 16:57:45 GMT, Roland Westrelin <roland at openjdk.org> wrote:

> The assert fires during split thru phi because a call to `Identity`
> returns a new node (a constant null pointer). That happens because a
> `Load`, once pushed thru phi, can be constant folded because it loads
> from a newly allocated array. `Identity` shouldn't return new
> nodes. When split thru phi runs, in this case, `Value` should be the
> one returning constant null, not `Identity`. There is logic for that
> in `LoadNode::Value` but it's after some other checks that cause
> `Value` to return too early.
> 
> To fix this, I propose reordering checks in `LoadNode::Value`.

This pull request has now been integrated.

Changeset: 9cf7d42b
Author:    Roland Westrelin <roland at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/9cf7d42b65cfecfe27d0267f971acb743c02b675
Stats:     93 lines in 2 files changed: 79 ins; 14 del; 0 mod

8346184: C2: assert(has_node(i)) failed during split thru phi

Reviewed-by: thartmann, chagedorn

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

PR: https://git.openjdk.org/jdk/pull/22818


More information about the hotspot-compiler-dev mailing list