diff options
| author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-15 16:18:25 +0000 |
|---|---|---|
| committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-15 16:18:25 +0000 |
| commit | a6e94e944f94a5f7c4dfca9425fd2df67c76d8cc (patch) | |
| tree | 80dbf05a44de9056ffa338d5fc2299cec26a0127 | |
| parent | 455615ca2d1277a18ddada0d090d19f5ab829479 (diff) | |
| download | ppe42-gcc-a6e94e944f94a5f7c4dfca9425fd2df67c76d8cc.tar.gz ppe42-gcc-a6e94e944f94a5f7c4dfca9425fd2df67c76d8cc.zip | |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98189 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | 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 <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> * 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; } |

