http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47341

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|unnecessary versioning in   |unnecessary versioning in
                   |the vectorizer.             |the vectorizer, not
                   |                            |implemented affine-affine
                   |                            |test

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-19 
11:21:01 UTC ---
can't determine dependence between *c_9(D)[D.1882_8] and *c_9(D)[D.1933_40]

  pretmp.22_166 = (integer(kind=8)) j_2;
  D.1880_6 = (integer(kind=8)) i_1;

  pretmp.22_167 = pretmp.22_166 * 16;  j * 16
  D.1881_7 = D.1880_6 + pretmp.22_167;
  D.1882_8 = D.1881_7 + -17;

  pretmp.30_181 = pretmp.22_166 + 1;
  pretmp.30_182 = pretmp.30_181 * 16;  (j + 1) * 16
  D.1932_39 = D.1880_6 + pretmp.30_182;
  D.1933_40 = D.1932_39 + -17;

(compute_affine_dependence
  stmt_a: D.1883_10 = *c_9(D)[D.1882_8];
  stmt_b: D.1934_41 = *c_9(D)[D.1933_40];
(subscript_dependence_tester
(analyze_overlapping_iterations
  (chrec_a = {{0, +, 32}_1, +, 1}_2)
  (chrec_b = {{16, +, 32}_1, +, 1}_2)
(analyze_miv_subscript
(analyze_subscript_affine_affine
affine-affine test failed: unimplemented.
) -> dependence analysis failed

so we seem to be one step further ;)  In fact we now hit the issue that
the fortran frontend presents us with lowered array accesses.  We
see a one-dimensional access and do not consider the two indices to
be independent.  In the above case though we know the number of iterations
of loop 2 and thus could see that there is never any overlap.

Reply via email to