[11] RFR(M): 8203915: Induction variable of over-unrolled loop conflicts with range checks
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Jun 8 17:14:36 UTC 2018
Thank you, Tobias, for looking on it.
Then we have to do what you are suggesting. Reviewed.
It is a little frustrating that predicates code become more and more complex and bugs prone :(
Thanks,
Vladimir
On 6/8/18 12:53 AM, Tobias Hartmann wrote:
> Hi Vladimir,
>
> thanks for looking at this!
>
> On 07.06.2018 19:18, Vladimir Kozlov wrote:
>> Can you look if PhaseIdealLoop::do_range_check() is executed for main loop in this case? If array
>> length is known statically that code should produce check which should eliminate control flow for
>> main loop and collapse it.
>
> PhaseIdealLoop::do_range_check() is not executed because after predication, the main loop does not
> contain any range checks (the predicates are before the pre-loop).
>
> The tests work fine without loop predication (-XX:-UseLoopPredicate) because in this case
> do_range_check() is executed and the corresponding check eliminates control flow as expected.
>
> Thanks,
> Tobias
>
More information about the hotspot-compiler-dev
mailing list