Unroll LoopΒΆ
Syntax
#pragma LEGUP loop unroll factor(<int>)
Description
Specifies a loop to be unrolled.
Parameters
The factor indicates how many times to unroll the loop. If it is not specified, or specified as N (the total number of loop iterations), the loop will be fully unrolled. If it is specified as 2, the loop will be unrolled 2 times, where the number of loop iterations will be halved and the loop body will be replicated twice. If it is specified as 1, the loop will NOT be unrolled.
Parameter | Value | Optional | Default | Description |
---|---|---|---|---|
factor |
Integer | Yes | N (fully unroll) | Unroll count |
Position
Before the beginning of the loop.
Note
If there is a loop label, the pragma should be placed after the label.
Examples
Fully unroll a loop. .. code-block:: c
#pragma LEGUP loop unroll for (int i = 0; i < 10; i++) {
...}
Unroll the loop by 2 times only. .. code-block:: c
LOOP_LABEL: #pragma LEGUP loop unroll factor(2) while (i < 10) {
...}
Small loops may be unrolled even without the unroll pragma. Make sure the loop is not unrolled. .. code-block:: c
#pragma LEGUP loop unroll factor(1) for (int i = 0; i < 10; i++) {
...}