RFR: 8290432: C2 compilation fails with assert(node->_last_del == _last) failed: must have deleted the edge just produced [v2]

Vladimir Kozlov kvn at openjdk.org
Fri Aug 5 22:28:10 UTC 2022


On Fri, 5 Aug 2022 22:13:50 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> Yi Yang has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   format
>
> src/hotspot/share/opto/loopnode.cpp line 3689:
> 
>> 3687:       // The form of Phi->CastXX->AddX appears when using Preconditions.checkIndex, and it would
>> 3688:       // be recognized as additional IV when 1) Phi != phi2, 2) CastXX is controlled by RangeCheck
>> 3689:       // (to reflect changes in LibraryCallKit::inline_preconditions_checkIndex)
> 
> Thank you for updating comment. But it still do not say which issue you are trying to avoid. Yes, this pattern can be generated by inline_preconditions_checkIndex.
> Currently your check skip search for parallel IV if CastII is NOT controlled by RangeCheck!
> But the comment in the BODY of check talks about using parallel IV.
> It is contradicting.
> Aslo `1) Phi != phi2` says nothing to me - your check does not have such condition.

Why not just say that we should skip `AddI->CastII->Phi` case if CastII is not controlled by local RangeCheck.

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

PR: https://git.openjdk.org/jdk/pull/9695


More information about the hotspot-compiler-dev mailing list