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

Christian Hagedorn chagedorn at openjdk.org
Mon Jun 3 06:44:10 UTC 2024


On Fri, 31 May 2024 18:03:42 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

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

Thanks @vnkozlov, @abdelhak-zaaim, and @TobiHartmann for your reviews!

> Looks good to me too. I assume you verified that the test does not trigger JDK-8332920 with some VM flag combination in the CI?

Yes, I removed the checking code with the `RuntimeException` from the test. Then the test succeeds (the tests of JDK-8332920 only result in a wrong execution). Testing in the CI confirmed that there is no failure of this test.

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

PR Comment: https://git.openjdk.org/jdk/pull/19504#issuecomment-2144392850


More information about the hotspot-compiler-dev mailing list