The direction vector is defined as a sequence of direction vector elements (one element for each DO loop enclosing both statements involved in the dependence arc). The following symbols are direction vector elements: <, =, >, <, >, /, or *.
If line 12 in iteration I"
depends on line 11 in
iteration I'
, the element of the direction vector
for loop I
is as follows:
direction vector element when < I' must be < I" = I' must be = I" > I' must be > I" <= I' must be < or = I" >= I' must be > or = I" / I' must not = I" * no relation between I' and I" can be proven
Consider the following loop:
DO Loops Line +--------- 10 DO 10 I = 1,N-1 | 11 A(I) = B(I) + C(I) | 12 C(I) = A(I-1) - 1 |_________ 13 10 CONTINUE
The dependence from A(I)
to A(I-1)
has a
direction vector of <, since the dependence flows from iteration
I'
to iteration I'+1
and I'
< I'+1
. The data independence from C(I)
to C(I)
has a direction vector of = because the
dependence stays in the same iteration of the loop (from iteration
I'
to iteration I'
).