[lno] [patch] vectorizer update - loop bound

Toon Moene toon@moene.indiv.nluug.nl
Sun Jan 18 23:08:00 GMT 2004


Dorit Naishlos wrote:

> The patch below implements a more general loop bound transformation scheme
> - still limited to known loop bound that divides by the vectorization
> factor, but no longer dependent on the loop IV eolution and the loop exit
> condition form.  This allows relaxing the restrictions that the vectorizer
> imposed on the loop exit condition, and use the precomputed
> loop->nb_iterations instead (from the monev analyzer). As a result, two of
> the loops in the test case tree-ssa-vect-none.c (#12 and #13) are now
> vectorizable, and are therefore moved to tree-ssa-vect-all.c.

Still ...

No vector, no cry:

$ cat vector.f95
DIMENSION A(1000000), B(1000000), C(1000000)
READ*, X, Y
A = LOG(X); B = LOG(Y); C = A + B
PRINT*, C(500000)
END

 From vector.f95.t34.vect:

<<vect_analyze_data_ref_accesses>>

step:
1
init:
1no vectype for stmt.
(*T.9_78)[S.10_18] = T.18_114loop_analyzer: bad data access.

This is the relevant loop:
<L6>:;
   if (S.10_18 > 1000000) goto L.3; else goto <L7>;

<L7>:;
   T.16_112 = (*T.1_64)[S.10_18];
   T.17_113 = (*T.4_69)[S.10_18];
   T.18_114 = T.16_112 + T.17_113;
   (*T.9_78)[S.10_18] = T.18_114;
   S.10_120 = S.10_18 + 1;
   goto <bb 7> (<L6>);

Hope someone can analyse this ...

-- 
Toon Moene - mailto:toon@moene.indiv.nluug.nl - phoneto: +31 346 214290
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Maintainer, GNU Fortran 77: http://gcc.gnu.org/onlinedocs/g77_news.html
GNU Fortran 95: http://gcc.gnu.org/fortran/ (under construction)



More information about the Gcc-patches mailing list