RFR: 8348572: C2 compilation asserts due to unexpected irreducible loop [v2]
Emanuel Peter
epeter at openjdk.org
Wed Feb 5 12:18:09 UTC 2025
On Wed, 5 Feb 2025 06:21:56 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Emanuel Peter has updated the pull request incrementally with one additional commit since the last revision:
>>
>> update for Vladimir
>
> src/hotspot/share/opto/loopnode.cpp line 5648:
>
>> 5646: if (!head->can_be_irreducible_entry()) {
>> 5647: assert(!VerifyNoNewIrreducibleLoops, "A new irreducible loop was created after parsing.");
>> 5648: C->record_method_not_compilable("A new irreducible loop was created after parsing.");
>
> If you haven't done that yet, I would suggest to hardcode these bailouts to "always bail" out and run testing to check if the bailout always works. You'll of course get all kinds of test failures but the VM should not crash/assert (you can filter for these in the test results and ignore anything else).
As discussed offline:
There is another bailout below, for the case of irreducible loops that are also infinite. And that one also triggers regularly, and as far as I remember even with the fuzzer. So I'd say he bailout path is sufficiently covered.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23363#discussion_r1942769472
More information about the hotspot-compiler-dev
mailing list