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

Roland Westrelin roland at openjdk.org
Thu Nov 7 16:18:09 UTC 2024


> 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>

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/21956/files
  - new: https://git.openjdk.org/jdk/pull/21956/files/5e9ca1bf..a4649dd9

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=21956&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21956&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/21956.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21956/head:pull/21956

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


More information about the hotspot-compiler-dev mailing list