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] |
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
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |