[11] RFR(M): 8203915: Induction variable of over-unrolled loop conflicts with range checks
Tobias Hartmann
tobias.hartmann at oracle.com
Fri Jun 8 07:53:54 UTC 2018
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