The -interleave
switch controls loop unrolling and
rescheduling by turning on interleaved unrolling. Interleaved
unrolling can help the compiler recognize quad-word loads and
stores, which are more efficient than ordinary loads and stores. It
does this by first unrolling the loop as in ordinary loop unrolling.
Second, the statements in the loop are interchanged where possible
to make references to the same array adjacent to each other.
The following example demonstrates interleaved unrolling:
REAL A(100),B(100) DO I = 1, 100 A(i) = 99. B(i) = 100. ENDDO PRINT *,a,b END
The output from KAP with interleaved unrolling turned on:
REAL A(100), B(100) DO I=1,97,4 A(I) = 99. A(I+1) = 99. A(I+2) = 99. A(I+3) = 99. B(I) = 100. B(I+1) = 100. B(I+2) = 100. B(I+3) = 100. ENDDO PRINT *, A, B END
The default value is -interleave
.
Copyright © Digital Equipment Corporation. 1997. All Rights Reserved.