[jdk17] RFR: 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:12:27 UTC 2021
On Thu, 17 Jun 2021 16:21:59 GMT, Vladimir Kozlov <kvn 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.
>
> Looks good.
@vnkozlov @neliasso thanks for the reviews
-------------
PR: https://git.openjdk.java.net/jdk17/pull/88
More information about the hotspot-compiler-dev
mailing list