8.2.2 Induction Variable Recognition

Induction variables are variables (INTEGER or REAL) that are incremented or decremented the same amount for each DO loop trip. The /roundoff=3 qualifier is required for REAL induction variable transformation.

The following loop has two induction variables, J and K . Transforming them into functions of the loop index removes dependencies between iterations and can simplify other optimizations, as shown in the following example:

DO 10 I = 1,200
A(J) = B(K)
J = J + 1
K = K - 2
C(J) = D(I)
10    CONTINUE

Becomes:

II2 = K
II1 = J
DO 2 I=1,200
A(II1+I-1) = B(II2+I*(-2)+2)
C(II1+I) = D(I)
2  CONTINUE
J = II1 + 200
K = II2 - 400


Previous Page | Next Page | Contents | Index |
Command-Line Qualifiers