------- Comment #1 from spop at gcc dot gnu dot org  2009-08-19 16:02 -------
> since both a and b have alias set 0,
> a[0][i0] and b[0][i1] are considered independent for i0 != i1.

You mean mem[0][i0] and mem[0][i1], and in your example

 for (i = 0; i < n; i++)
    mem[0][i] = mem[0][i];

that would be a read and a write in the same location: that means
that there is no dependence carried by the loop, and thus the loop
is considered parallel.  Yes this is a bug in the data dependence
analysis.  

I wonder why the alias analysis improvements by Li do not assign
different alias sets for "a" and "b" in this case.  I will have to try
to reproduce this bug first.

Sebastian


-- 

spop at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |spop at gcc dot gnu dot org
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-08-19 16:02:20
               date|                            |


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

Reply via email to