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