This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Semi-Latent Bug in tree vectorizer
- From: Jeffrey A Law <law at redhat dot com>
- To: Andrew MacLeod <amacleod at redhat dot com>
- Cc: dorit at il dot ibm dot com, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Fri, 08 Apr 2005 11:44:34 -0600
- Subject: Re: Semi-Latent Bug in tree vectorizer
- Organization: Red Hat, Inc
- References: <1112979122.5728.22.camel@localhost.localdomain> <1112981242.3733.192.camel@pain>
- Reply-to: law at redhat dot com
On Fri, 2005-04-08 at 13:27 -0400, Andrew MacLeod wrote:
>
>
> What are these uses?
The later uses are scalar reads from the same memory location.
> If they are references to things that aliased
> *D.1470_8, we should eliminate the VUSE/MAYDEF, shouldnt we? I presume
> they arent relevant any more if vec_px.17 isnt in the same alias set.
I would expect them to be relevant -- we're hitting the precise same
memory location -- just in vector form rather than in scalar form.
For the alias not to be relevant would indicate that vectorization
actually improved alias analysis.
> And if they are relevant, then we need to find out what the new variable
> is, and change all the uses to the new one
I'm not sure I follow. What needs to happen is that we either need to
ensure that the vector memory dereference has the same alias sets as
the scalar dereference, rewrite all the downstream users to some
aggregate alias set, or carry the V_MAY_DEF operands forward, even if
it's not obvious to the operand code that the statement uses/sets a
particular V_MAY_DEF anymore.
jeff