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] |
When an indirect vector reference replaced an array element reference that had no associated type tag then an existing type tag was being used and the array was added. For example, an automatic array may have no aliases and therefore no type tag that could be used for the indirect vector replacement. Using an existing type tag with the automatic array added results in aliases that didn't originally exist. It also results in errors out of verify_ssa because the vectorizer was attempting to update the ssa form without considering the new aliases. This patch adds a new routine new_type_alias that can be used to create a new type tag for an unaliased declaration and uses the type tag in pointer to vector declarations used in indirect vector references that replace array element references. 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-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-9m.diff
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |