RFR: 8286451: C2: assert(nb == 1) failed: only when the head is not shared [v2]

Tobias Hartmann thartmann at openjdk.java.net
Wed Jun 8 05:16:39 UTC 2022


On Tue, 7 Jun 2022 15:08:43 GMT, Roland Westrelin <roland at openjdk.org> wrote:

>> nb counts the number of loops that share a single head. The assert
>> that fires is in code that handles the case of a self loop (a loop
>> composed of a single block). There can be a self loop and multiple
>> loops that share a head: the assert makes little sense and I propose
>> to simply remove it.
>> 
>> I think there's another issue with this code: in the case of a self
>> loop and multiple loops that share a head, the self loop can be any of
>> the loop for which the head is cloned not only the one that's passed
>> as argument to ciTypeFlow::clone_loop_head(). As a consequence, I
>> moved the logic for self loops in the loop that's applied to all loops
>> that share the loop head.
>
> Roland Westrelin has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
> 
>  - review
>  - Merge branch 'master' into JDK-8286451
>  - fix & test

All tests passed.

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

PR: https://git.openjdk.java.net/jdk/pull/8947


More information about the hotspot-compiler-dev mailing list