J' Delete all assignments to I in the loop. If I is alive on one loop exit, place an assignment with its final value at this exit. Loop Unrolling Loop unrolling replaces the body of a loop by a certain number of copies. The number of copies is called the unrolling factor and the original loop the rolled loop . Of course, loop unrolling requires changes in the loop-control code.
Good candidates are array subscript that depend on induction variables.
Range expressions represent bounds-checking constraints. In practice, many optimizable range checks are range checks within loops. Move the range check from the loop body to the loop preheader.