RFR: SFX AddP cloning should check for dependent AddP explicitly

Roman Kennke rkennke at redhat.com
Mon Jul 15 12:48:13 UTC 2019


>>>>>> CTW tests fail with sh/jdk with the assert here:
>>>>>>  1545         assert(addr2->Opcode() == Op_AddP, "expected");
>>>>>>
>>>>>> I believe we should instead check for the shape of the graph explicitly here:
>>>>>>   http://cr.openjdk.java.net/~shade/shenandoah/sfx-hard-arr/webrev.01/
>>>>>
>>>>> This also apparently fixes a lot of x86_32 CTW tests.
>>>>
>>>> It looks ok to me.
>>>> I assume the failure case is rare enough that we can accept the register
>>>> mess-up there?
>>>
>>> Where is the register mess-up? I see there is a dangling CheckCastPP, but that node would be dead in
>>> that corner case.
>>
>> Doesn't it mean we can't match the whole shape and would end up not
>> cloning the thingy, which leads to the null-check becoming explicit or
>> something? Either way, I guess it must be rare.
> 
> Ah yes, that. True, we would miss some opportunities. We can look deeper into that, after we unbreak
> the tests.

Sure. Please do it!

Thanks,
Roman



More information about the shenandoah-dev mailing list