Integrated: 8340532: C2: assert(is_OuterStripMinedLoop()) failed: invalid node class: IfTrue
Roland Westrelin
roland at openjdk.org
Fri Nov 8 07:57:18 UTC 2024
On Thu, 7 Nov 2024 14:42:41 GMT, Roland Westrelin <roland at openjdk.org> wrote:
> A `CountedLoopEnd` (that marks the end of a still existing
> `CountedLoop`) is optimized out because a dominating identical
> `CountedLoopEnd` (that no longer marks the end of an existing
> `CountedLoop` but was left behind by previous loop opts) is
> found. That causes the path out of `CountedLoopEnd` to become dead
> including the `OuterStripMinedLoopEnd`. The `OuterStripMinedLoop`
> looses its backedge as a consequence. The `CountedLoop` is still
> marked as strip mined but the outer loop doesn't exist anymore.
>
> The fix I propose for this corner case is to simply detect when that
> happens (during igvn AFAICT) and clear the strip mined flag from the
> `CountedLoop`.
This pull request has now been integrated.
Changeset: a10b1ccd
Author: Roland Westrelin <roland at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/a10b1ccd377335354db7505e9944496729e539ce
Stats: 75 lines in 3 files changed: 74 ins; 1 del; 0 mod
8340532: C2: assert(is_OuterStripMinedLoop()) failed: invalid node class: IfTrue
Reviewed-by: chagedorn, kvn
-------------
PR: https://git.openjdk.org/jdk/pull/21956
More information about the hotspot-compiler-dev
mailing list