Commit c764b8b1 by Diego Novillo Committed by Jeff Law

tree-vect-transform.c (vectorizable_store): Mark necessary objects in the…

tree-vect-transform.c (vectorizable_store): Mark necessary objects in the vectorized store needing renaming.


	* tree-vect-transform.c (vectorizable_store): Mark necessary
	objects in the vectorized store needing renaming.  Update the
	SSA graph for V_MAY_DEF operands in the original store.

From-SVN: r98189
parent f5594471
2005-04-15 Diego Novillo <dnovillo@redhat.com>
* tree-vect-transform.c (vectorizable_store): Mark necessary
objects in the vectorized store needing renaming. Update the
SSA graph for V_MAY_DEF operands in the original store.
2005-04-14 Daniel Berlin <dberlin@dberlin.org> 2005-04-14 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-pre.c (compute_avail): It's okay to have * tree-ssa-pre.c (compute_avail): It's okay to have
......
...@@ -856,8 +856,8 @@ vectorizable_store (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt) ...@@ -856,8 +856,8 @@ vectorizable_store (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
enum machine_mode vec_mode; enum machine_mode vec_mode;
tree dummy; tree dummy;
enum dr_alignment_support alignment_support_cheme; enum dr_alignment_support alignment_support_cheme;
v_may_def_optype v_may_defs; ssa_op_iter iter;
int nv_may_defs, i; tree def;
/* Is vectorizable store? */ /* Is vectorizable store? */
...@@ -915,20 +915,16 @@ vectorizable_store (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt) ...@@ -915,20 +915,16 @@ vectorizable_store (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
*vec_stmt = build2 (MODIFY_EXPR, vectype, data_ref, vec_oprnd1); *vec_stmt = build2 (MODIFY_EXPR, vectype, data_ref, vec_oprnd1);
vect_finish_stmt_generation (stmt, *vec_stmt, bsi); vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
/* Copy the V_MAY_DEFS representing the aliasing of the original array /* Mark all non-SSA variables in the statement for rewriting. */
element's definition to the vector's definition then update the mark_new_vars_to_rename (*vec_stmt);
defining statement. The original is being deleted so the same
SSA_NAMEs can be used. */
copy_virtual_operands (*vec_stmt, stmt);
v_may_defs = STMT_V_MAY_DEF_OPS (*vec_stmt);
nv_may_defs = NUM_V_MAY_DEFS (v_may_defs);
for (i = 0; i < nv_may_defs; i++) /* The new vectorized statement will have better aliasing
{ information, so some of the virtual definitions of the old
tree ssa_name = V_MAY_DEF_RESULT (v_may_defs, i); statement will likely disappear from the IL. Mark them to have
SSA_NAME_DEF_STMT (ssa_name) = *vec_stmt; their SSA form updated. */
} FOR_EACH_SSA_TREE_OPERAND (def, stmt, iter, SSA_OP_VMAYDEF)
mark_sym_for_renaming (SSA_NAME_VAR (def));
return true; return true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment