...
Main loop unrolling (with maximum 16 unrolls)
Range Check Elimination
For array accesses range check is generated in compiled code:
...
If (index * SCALE + Offset < Range) {
Loop Predication
The general idea is to insert a predicate on the entry path to a loop, and raise a uncommon trap if the check of the condition fails. The condition checks are promoted from inside the loop body, and thus the checks inside the loop could be eliminated. Currently, loop predication optimization has been applied to remove array range check and loop invariant checks (such as null checks).
...
3. Loop predication can be applied to loops with calls