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 qualifiers 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 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.