[prev] [index] [next]

Efficiency Tricks (cont)

Unroll loops ... less comparison and branching.

Modern compilers can unroll loops automatically:

for (i = 0; i < N; i++)
    a[i] = b[i] + c[i];
becomes
for (i = 0; i < N; i += 4) {
    a[i+0] = b[i+0] + c[i+0];
    a[i+1] = b[i+1] + c[i+1];
    a[i+2] = b[i+2] + c[i+2];
    a[i+3] = b[i+3] + c[i+3];
}