Hi!

If the second argument of gimple_build_assign_with_ops is an SSA_NAME,
gimple_build_assign_with_ops_stat calls gimple_assign_set_lhs
which does
  if (lhs && TREE_CODE (lhs) == SSA_NAME)
    SSA_NAME_DEF_STMT (lhs) = gs;
so the SSA_NAME_DEF_STMT assignments in tree-vect-patterns.c aren't needed.
Cleaned up thusly, bootstrapped/regtested on x86_64-linux and i686-linux,
ok for trunk?

2011-10-06  Jakub Jelinek  <ja...@redhat.com>

        * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
        don't set SSA_NAME_DEF_STMT that has been already set by
        gimple_build_assign_with_ops.
        (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
        vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
        Likewise.

--- gcc/tree-vect-patterns.c.jj 2011-10-06 12:37:34.000000000 +0200
+++ gcc/tree-vect-patterns.c    2011-10-06 13:19:44.000000000 +0200
@@ -400,7 +400,6 @@ vect_handle_widen_mult_by_const (gimple 
       new_oprnd = make_ssa_name (tmp, NULL);
       new_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd, *oprnd,
                                               NULL_TREE);
-      SSA_NAME_DEF_STMT (new_oprnd) = new_stmt;
       STMT_VINFO_RELATED_STMT (vinfo_for_stmt (def_stmt)) = new_stmt;
       VEC_safe_push (gimple, heap, *stmts, def_stmt);
       *oprnd = new_oprnd;
@@ -619,7 +618,6 @@ vect_recog_widen_mult_pattern (VEC (gimp
   var = vect_recog_temp_ssa_var (type, NULL);
   pattern_stmt = gimple_build_assign_with_ops (WIDEN_MULT_EXPR, var, oprnd0,
                                               oprnd1);
-  SSA_NAME_DEF_STMT (var) = pattern_stmt;
 
   if (vect_print_dump_info (REPORT_DETAILS))
     print_gimple_stmt (vect_dump, pattern_stmt, 0, TDF_SLIM);
@@ -703,7 +701,6 @@ vect_recog_pow_pattern (VEC (gimple, hea
 
       var = vect_recog_temp_ssa_var (TREE_TYPE (base), NULL);
       stmt = gimple_build_assign_with_ops (MULT_EXPR, var, base, base);
-      SSA_NAME_DEF_STMT (var) = stmt;
       return stmt;
     }
 
@@ -826,7 +823,6 @@ vect_recog_widen_sum_pattern (VEC (gimpl
   var = vect_recog_temp_ssa_var (type, NULL);
   pattern_stmt = gimple_build_assign_with_ops (WIDEN_SUM_EXPR, var,
                                               oprnd0, oprnd1);
-  SSA_NAME_DEF_STMT (var) = pattern_stmt;
 
   if (vect_print_dump_info (REPORT_DETAILS))
     {
@@ -1016,7 +1012,6 @@ vect_operation_fits_smaller_type (gimple
               new_oprnd = make_ssa_name (tmp, NULL);
               new_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd,
                                                        oprnd, NULL_TREE);
-              SSA_NAME_DEF_STMT (new_oprnd) = new_stmt;
               STMT_VINFO_RELATED_STMT (vinfo_for_stmt (def_stmt)) = new_stmt;
               VEC_safe_push (gimple, heap, *stmts, def_stmt);
               oprnd = new_oprnd;
@@ -1038,7 +1033,6 @@ vect_operation_fits_smaller_type (gimple
           new_oprnd = make_ssa_name (tmp, NULL);
           new_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd,
                                                    oprnd, NULL_TREE);
-          SSA_NAME_DEF_STMT (new_oprnd) = new_stmt;
           oprnd = new_oprnd;
           *new_def_stmt = new_stmt;
         }
@@ -1141,9 +1135,9 @@ vect_recog_over_widening_pattern (VEC (g
         VEC_safe_push (gimple, heap, *stmts, prev_stmt);
 
       var = vect_recog_temp_ssa_var (new_type, NULL);
-      pattern_stmt = gimple_build_assign_with_ops (
-                          gimple_assign_rhs_code (stmt), var, op0, op1);
-      SSA_NAME_DEF_STMT (var) = pattern_stmt;
+      pattern_stmt
+       = gimple_build_assign_with_ops (gimple_assign_rhs_code (stmt), var,
+                                       op0, op1);
       STMT_VINFO_RELATED_STMT (vinfo_for_stmt (stmt)) = pattern_stmt;
       STMT_VINFO_PATTERN_DEF_STMT (vinfo_for_stmt (stmt)) = new_def_stmt;
 
@@ -1182,7 +1176,6 @@ vect_recog_over_widening_pattern (VEC (g
           new_oprnd = make_ssa_name (tmp, NULL);
           pattern_stmt = gimple_build_assign_with_ops (NOP_EXPR, new_oprnd,
                                                        var, NULL_TREE);
-          SSA_NAME_DEF_STMT (new_oprnd) = pattern_stmt;
           STMT_VINFO_RELATED_STMT (vinfo_for_stmt (use_stmt)) = pattern_stmt;
 
           *type_in = get_vectype_for_scalar_type (new_type);

        Jakub

Reply via email to