RFR: 8333366: C2: CmpU3Nodes are not pushed back to worklist in PhaseCCP leading to non-fixpoint assertion failure

Christian Hagedorn chagedorn at openjdk.org
Fri May 31 17:39:27 UTC 2024


The current code to push uses back to the worklist during CCP handles `CmpU` nodes but misses `CmpU3` nodes. This leads to an assertion failure that we have not reached a fixpoint.

The fix is straight forward to add a case for `CmpU3` at the case where we already handle `CmpU` nodes such that they can be added back to the worklist like `CmpU` nodes during CCP.

This was found during the analysis of [JDK-8332920](https://bugs.openjdk.org/browse/JDK-8332920) by trying to simplify the regression test (thanks to @TobiHartmann!). To properly add regression tests for JDK-8332920 and avoid hitting this bug here with some flag combination, we should fix this first. I will soon propose a PR for JDK-8332920 as well. 

Thanks,
Christian

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

Commit messages:
 - 8333366: C2: CmpU3Nodes are not pushed back to worklist in PhaseCCP leading to non-fixpoint assertion failure

Changes: https://git.openjdk.org/jdk/pull/19504/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19504&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8333366
  Stats: 53 lines in 2 files changed: 51 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/19504.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19504/head:pull/19504

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


More information about the hotspot-compiler-dev mailing list