[Bug tree-optimization/33246] Missed opportunities for vectorization due to data ref analysis

dorit at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Aug 31 13:57:00 GMT 2007



------- Comment #3 from dorit at gcc dot gnu dot org  2007-08-31 13:57 -------
...
> This is due to data ref analysis problems:
> ./fatigue.f90:14: note: not vectorized: data ref analysis failed
> (*stress_tensor.0_16)[D.1508_168] = D.1513_173
> ./fatigue.f90:14: note: bad data references.
> and
> ./fatigue.f90:14: note: not vectorized: data ref analysis failed D.1489_133 =
> (*strain_tensor.0_41)[D.1488_132]
> ./fatigue.f90:14: note: bad data references.

The data-ref analyzer reports:
   failed: evolution of offset is not affine.

As a result, the DR fields that represent the access relative to the inner-most
loop are almost all empty:

        base_address:
        offset from base address:
        constant offset from base address:
        step:
        aligned to:
        base_object: (*(real8[0:D.1433] *) D.1437_15)[0]
        symbol tag: SMT.79

However note that the DR fields relative to the outer-loop are computable:

        outer base_address: &A.23
        outer offset from base address: 0
        outer constant offset from base address: 0
        outer step: 24
        outer aligned to: 128

If the data-ref analyzer can return the expression for the evolution in the
inner-loop, instead of failing, we would at least have a chance to do
outer-loop vectorization. 

This is a duplicate of PR33113.


-- 


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



More information about the Gcc-bugs mailing list