From c764b8b1be5ae72fd733814be834fe4273386b28 Mon Sep 17 00:00:00 2001 From: Diego Novillo Date: Fri, 15 Apr 2005 16:18:25 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/tree-vect-transform.c | 26 +++++++++++--------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3a9a6eb9751..e884a571f8e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-04-15 Diego Novillo + + * 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 * tree-ssa-pre.c (compute_avail): It's okay to have diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index 52f5de33382..e325ef80e42 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; } -- 2.30.2