Science Fair Project Encyclopedia
Loop unwinding
In computer programming terminology, loop unwinding, also known as loop unrolling , is a technique for optimizing parts of computer programs. The idea is to save time by reducing the number of overhead instructions that the computer has to execute in a loop. To achieve this, the instructions that are called in multiple iterations of the loop are combined into a single iteration. This will speed up the program if the overhead instructions of the loop impair performance significantly.
Loop unwinding can also be used to make programs more suitable for parallel processing.
A simple example
A procedure in a computer program needs to delete 100 items from a collection. This is accomplished by means of a for-loop which calls the function delete(item_number):
for (int x=0;x<100;x++)
{ delete(x);
}
If this part of the program is to be optimized, and the overhead of the loop requires significant resources, loop unwinding can be used to speed it up. This will result in an optimized code fragment like:
for (int x=0;x<100;x+=5)
{ delete(x);
delete(x+1);
delete(x+2);
delete(x+3);
delete(x+4);
}
As a result of this modification, the new program has to make only 20 loops, instead of 100.
See also
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details


