Loop Unrolling
Loop overhead can be reduced by reducing the number of iterations and replicating the body of the loop.
Example:
In the code fragment below, the body of the loop can be replicated once and the number of iterations can be reduced from 100 to 50.
for (i = 0; i < 100; i++) g ();
Below is the code fragment after loop unrolling.
for (i = 0; i < 100; i += 2) { g (); g (); }