The C*$* unroll
directive tells KAP how to unroll, that
is, replicate the text of, innermost loops. Outer loop unrolling is
part of memory management.
The loops are unrolled according to a formula that counts the number
of array references and arithmetic operations in the loop. KAP
unrolls the loop until that value equals the <weight>
parameter or the number of unrolled iterations reaches the
<#it>
parameter. The -unroll
and
-unroll2
command switches act like a global C*$*
unroll
directive.
-scalaropt
level must be set at 2 or higher for this directive to be enabled.
The <#it>
parameter is the maximum number of iterations
to unroll. The =0
parameter uses default values
to unroll. The =1
parameter means no unrolling.
<weight>
is the maximum weight, meaning estimate of
work, in an unrolled loop. <weight>
is estimated by
counting operands and operators in a loop.
A scalar loop is unrolled until one of the limits is reached. See Chapter 4 and Chapter 8 for detailed examples.
The C*$* unroll
directive is valid only for the loop
before which it appears.