[jdk17] Integrated: 8268672: C2: assert(!loop->is_member(u_loop)) failed: can be in outer loop or out of both loops only

Roland Westrelin roland at openjdk.java.net
Mon Jun 21 14:20:51 UTC 2021


On Thu, 17 Jun 2021 13:53:12 GMT, Roland Westrelin <roland at openjdk.org> wrote:

> This is caused by the fix for 8263303 in which I changed the code of
> loop cloning of a strip mined loop so nodes that are pinned in the
> outer loop but not referenced by the loop's safepoint are moved out of
> the loop before cloning:
> 
> https://github.com/openjdk/jdk/commit/d4377afb999f4f03d384ded97771c83ea1c1f513#diff-7b82624b78127158abbce6835eeba196bd062aee59512ec2d4e4c8c7d681573bR1980
> 
> The assert failure here is caused by a node that has its control input
> set to the inner loop but is assigned control by PhaseIdealLoop out of
> the inner loop. The assert fires because the change from 8263303
> affects the condition that the assert checks. I still think, in
> principle, the fix from 8263303 is the good one so I propose to simply
> reorganize the change from 8263303 so the assert doesn't wrongly fire.

This pull request has now been integrated.

Changeset: d3ad8cd3
Author:    Roland Westrelin <roland at openjdk.org>
URL:       https://git.openjdk.java.net/jdk17/commit/d3ad8cd344681fe8442f821f97f05996bb972abe
Stats:     64 lines in 2 files changed: 62 ins; 0 del; 2 mod

8268672: C2: assert(!loop->is_member(u_loop)) failed: can be in outer loop or out of both loops only

Reviewed-by: kvn, neliasso

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

PR: https://git.openjdk.java.net/jdk17/pull/88


More information about the hotspot-compiler-dev mailing list