aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-transform.c
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@redhat.com>2005-04-15 16:18:25 +0000
committerJeff Law <law@gcc.gnu.org>2005-04-15 10:18:25 -0600
commitc764b8b1be5ae72fd733814be834fe4273386b28 (patch)
tree80dbf05a44de9056ffa338d5fc2299cec26a0127 /gcc/tree-vect-transform.c
parentf559447165fa63dde8ece816a834b068ba72e2e6 (diff)
downloadgcc-c764b8b1be5ae72fd733814be834fe4273386b28.zip
gcc-c764b8b1be5ae72fd733814be834fe4273386b28.tar.gz
gcc-c764b8b1be5ae72fd733814be834fe4273386b28.tar.bz2
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
Diffstat (limited to 'gcc/tree-vect-transform.c')
-rw-r--r--gcc/tree-vect-transform.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
index 52f5de3..e325ef8 100644
--- a/gcc/tree-vect-transform.c
+++ b/gcc/tree-vect-transform.c
@@ -856,8 +856,8 @@ vectorizable_store (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
enum machine_mode vec_mode;
tree dummy;
enum dr_alignment_support alignment_support_cheme;
- v_may_def_optype v_may_defs;
- int nv_may_defs, i;
+ ssa_op_iter iter;
+ tree def;
/* Is vectorizable store? */
@@ -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);
vect_finish_stmt_generation (stmt, *vec_stmt, bsi);
- /* Copy the V_MAY_DEFS representing the aliasing of the original array
- element's definition to the vector's definition then update the
- 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);
+ /* Mark all non-SSA variables in the statement for rewriting. */
+ mark_new_vars_to_rename (*vec_stmt);
- for (i = 0; i < nv_may_defs; i++)
- {
- tree ssa_name = V_MAY_DEF_RESULT (v_may_defs, i);
- SSA_NAME_DEF_STMT (ssa_name) = *vec_stmt;
- }
-
+ /* The new vectorized statement will have better aliasing
+ information, so some of the virtual definitions of the old
+ statement will likely disappear from the IL. Mark them to have
+ 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;
}