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] | |
The vectorizer currently requires a call to rewrite_into_ssa to rename the
virtual
references associated with array element references that are replaced by
vector references. This patch eliminates the need for the renaming.
Vector
loads in most cases use the same VUSE SSA_NAME as in the array element
load they replace. Vector stores use the same V_MAY_DEF as the array
element store they replace with an update to the defining statement.
Tested on ppc
No differences in make check or in SPEC.
OK for autovect branch?
Keith.
Changelog:
* tree-vectorizer.c (update_vuses_to_preheader): new, fixup VUSEs
for
loads added to loop preheader block.
(vect_create_data_ref_ptr): remove code which sets the bitmap
vars_to_rename
(vectorizable_store): call copy_virtual_operands to copy
V_MAY_DEFs
from array element store to vector store and then update the
statements
defining the virtual SSA_NAMES.
(vectorizable_load): call copy_virtual_operands to copy VUSEs from
array element load to vector load. Call update_vuses_to_preheader
for
loads inserted into loop preheader block.
(vect_do_peeling_for_alignment): add need_loop_closed_rewrite
parm.
(vect_transform_loop): add need_loop_closed_rewrite_parm.
(vectorize_loops): eliminate call to rewrite_into_ssa, only call
rewrite_into_loop_closed_ssa if tree_duplicate_loop_to_edge has
been
called in vect_do_peeling_for_alignment or vect_transform_loop.
*rs6000.c(altivect_init_builtins): add the "const" attribute to
__builtin_altivec_mask_for_store and
__builtin_altivec_mask_for_load.
123456789012356789012345678901234567890123456789012345678901234567890Attachment:
vect.11-29.diff
Description: Binary data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |