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: [patch]Fix the aliasing on vector replacements to match the originalscalar array





> tested on ppc
>
> OK for mainline?

All these changes have already been approved, so I went ahead and committed
the patch.

thanks,

dorit


Keith Besaw <kbesaw@us.ibm.com> wrote on 26/05/2005 10:11:41:

> Diego Novillo <dnovillo@redhat.com> wrote on 05/25/2005 08:26:03 AM:
>
> > On Wed, May 25, 2005 at 02:14:22AM -0500, Keith Besaw wrote:
> > > /* NEXT_PASS (pass_may_alias) cannot be done again because the
> > >    vectorizer creates alias relations that are not supported by
> > >    pass_may_alias.  */
> > >
> > Yes.
> >
>
> Attached is a replacement patch addressing your comments including
> the above comment in init_tree_optimization_passes in tree_optimize.c.
>
> The following function and arguments description has been added for
> procedure new_type_alias (tree ptr, tree var):
>
> +/* Create a type tag for PTR.  Construct the may-alias list of this type

> tag
> +   so that it has the aliasing of VAR.  */
>
> In tree-vect-transform.c vectorizable_store has been changed to use
> the more compact:
>
>       FOR_EACH_SSA_TREE_OPERAND (def, stmt, iter, SSA_OP_VMAYDEF)
>
> The following comment has been added in vectorizable_store to describe
> why the call mark_sym_for_renaming is needed:
>
> +      /* If this virtual def has a use outside the loop and a loop peel
> is performed
> +         then the def may be renamed by the peel.  Mark it for renaming
> so the
> +         later use will also be renamed.  */
>
> tested on ppc
>
> OK for mainline?
>
> Keith
>
> Changelog:
>
>       2005-05-10  Keith Besaw  <kbesaw@us.ibm.com>
>
>       * tree-ssa-alias.c (new_type_alias): New procedure to
>         create a type memory tag for a pointer with a may-alias
>         set determined from a variable declaration.
>       * tree-flow.h: export declaration of new_type_alias
>       * tree-optimize.c (init_tree_optimization_passes): document
>       that pass_may_alias cannot be called after pass_vectorize.
>       * tree-vect-transform (vect_create_data_ref_ptr): Call
>       new_type_alias when an type memory tag isn't available
>       for a reference.
>       (vectorizable_store): Use copy_virtual_operands to update
>       virtual defs in place (so that loop_version can be called).
>       Call mark_for_renaming for the virtual defs in case peeling
>       is done and virtual uses outside the loop need to be updated.
>
> Patch:
>
> [attachment "vect.5-26m.diff" deleted by Dorit Naishlos/Haifa/IBM]


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