Integrated: 8286451: C2: assert(nb == 1) failed: only when the head is not shared

Roland Westrelin roland at openjdk.java.net
Wed Jun 8 06:45:22 UTC 2022


On Mon, 30 May 2022 13:50:08 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.

This pull request has now been integrated.

Changeset: bf0e625f
Author:    Roland Westrelin <roland at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/bf0e625fe0e83c00006f13367a67e9f6175d21e4
Stats:     82 lines in 2 files changed: 65 ins; 14 del; 3 mod

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

Reviewed-by: thartmann, chagedorn

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

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


More information about the hotspot-compiler-dev mailing list