[jdk17] RFR: 8269746: C2: assert(!in->is_CFG()) failed: CFG Node with no controlling input?
Roland Westrelin
roland at openjdk.java.net
Thu Jul 8 07:27:50 UTC 2021
On Wed, 7 Jul 2021 15:27:09 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> The backedge and the exit test of an inner strip mined loop are
>> removed. A safepoint is right above the inner loop exit test when that
>> happens. The outer strip mined loop safepoint is then processed by
>> igvn which finds the other safepoint. This causes the outer loop
>> safepoint to be replaced by the safepoint that was in the inner
>> loop. Then the outer loop back edge is removed by igvn. This is done
>> by replacing the loop exit by the control of the outer loop
>> safepoint. Given the outer loop safepoint was replaced by a dominating
>> safepoint, that logic replaces the oiter loop exit with the dominating
>> safepoint control input. That must be harmless most of the time, but
>> in this particular case a Store was between the 2 safepoints. That
>> Store is still reachable in the graph but its control is not.
>>
>> Note: test case not included because the crash no longer reproduces (supposedly because order of node processing by igvn matters)
>
> Looks reasonable to me.
@TobiHartmann @chhagedorn thanks for the reviews
-------------
PR: https://git.openjdk.java.net/jdk17/pull/222
More information about the hotspot-compiler-dev
mailing list