This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [lno] [patch] vectorizer update - loop bound


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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]