You can declare the counter of even the most deeply nested loop as a ‘register’ variable. For example:
for (int i = 0; i < 100; ++i){ for (register int j = 0; j < 1000; ++j) { // This loop will be executed 100000 times } }
The variable i will be accessed 100 times. However, j will be accessed 100,000 times. Hence, storing j in a machine register can give a significant performance boost, compared to storing i in a register. Storing both i and j in registers is even better. But the number of free registers available is very limited. It is perhaps best to declare the counter of the innermost loop as a register variable. Many compilers need this hint from the programmer, while others are clever enough to figure it out by themselves. Experiment with your compiler to decide whether this improves performance, because some compilers ignore the