RFR: 8340532: C2: assert(is_OuterStripMinedLoop()) failed: invalid node class: IfTrue [v2]

Christian Hagedorn chagedorn at openjdk.org
Fri Nov 8 06:21:31 UTC 2024


On Thu, 7 Nov 2024 16:18:09 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`.
>
> Roland Westrelin has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update test/hotspot/jtreg/compiler/loopstripmining/TestIdenticalDominatingCLE.java
>   
>   Co-authored-by: Christian Hagedorn <christian.hagedorn at oracle.com>

Marked as reviewed by chagedorn (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/21956#pullrequestreview-2422794662


More information about the hotspot-compiler-dev mailing list