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]

[autovect][patch]Eliminate the need for variable renaming in the vectorizer


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.



123456789012356789012345678901234567890123456789012345678901234567890

Attachment: 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]