Hi All,

This renamed main_exit_p to last_val_reduc_p to more accurately
reflect what the value is calculating.

Ok for master if bootstrap passes? Incremental build shows it's fine.

Thanks,
Tamar

gcc/ChangeLog:

        * tree-vect-loop.cc (vect_get_vect_def,
        vect_create_epilog_for_reduction): Rename main_exit_p to
        last_val_reduc_p.

--- inline copy of patch -- 
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index 
4da1421c8f09746ef4b293573e4f861b642349e1..21a997599f397ba6c2cd15c3b9c8b04513bc0c83
 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -5892,25 +5892,26 @@ vect_create_partial_epilog (tree vec_def, tree vectype, 
code_helper code,
 }
 
 /* Retrieves the definining statement to be used for a reduction.
-   For MAIN_EXIT_P we use the current VEC_STMTs and otherwise we look at
-   the reduction definitions.  */
+   For LAST_VAL_REDUC_P we use the current VEC_STMTs which correspond to the
+   final value after vectorization and otherwise we look at the reduction
+   definitions to get the first.  */
 
 tree
 vect_get_vect_def (stmt_vec_info reduc_info, slp_tree slp_node,
-                  slp_instance slp_node_instance, bool main_exit_p, unsigned i,
-                  vec <gimple *> &vec_stmts)
+                  slp_instance slp_node_instance, bool last_val_reduc_p,
+                  unsigned i, vec <gimple *> &vec_stmts)
 {
   tree def;
 
   if (slp_node)
     {
-      if (!main_exit_p)
+      if (!last_val_reduc_p)
         slp_node = slp_node_instance->reduc_phis;
       def = vect_get_slp_vect_def (slp_node, i);
     }
   else
     {
-      if (!main_exit_p)
+      if (!last_val_reduc_p)
        reduc_info = STMT_VINFO_REDUC_DEF (vect_orig_stmt (reduc_info));
       vec_stmts = STMT_VINFO_VEC_STMTS (reduc_info);
       def = gimple_get_lhs (vec_stmts[0]);
@@ -5982,8 +5983,8 @@ vect_create_epilog_for_reduction (loop_vec_info 
loop_vinfo,
      loop-closed PHI of the inner loop which we remember as
      def for the reduction PHI generation.  */
   bool double_reduc = false;
-  bool main_exit_p = LOOP_VINFO_IV_EXIT (loop_vinfo) == loop_exit
-                    && !LOOP_VINFO_EARLY_BREAKS_VECT_PEELED (loop_vinfo);
+  bool last_val_reduc_p = LOOP_VINFO_IV_EXIT (loop_vinfo) == loop_exit
+                         && !LOOP_VINFO_EARLY_BREAKS_VECT_PEELED (loop_vinfo);
   stmt_vec_info rdef_info = stmt_info;
   if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_double_reduction_def)
     {
@@ -6233,7 +6234,7 @@ vect_create_epilog_for_reduction (loop_vec_info 
loop_vinfo,
     {
       gimple_seq stmts = NULL;
       def = vect_get_vect_def (rdef_info, slp_node, slp_node_instance,
-                              main_exit_p, i, vec_stmts);
+                              last_val_reduc_p, i, vec_stmts);
       for (j = 0; j < ncopies; j++)
        {
          tree new_def = copy_ssa_name (def);




-- 
diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index 
4da1421c8f09746ef4b293573e4f861b642349e1..21a997599f397ba6c2cd15c3b9c8b04513bc0c83
 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -5892,25 +5892,26 @@ vect_create_partial_epilog (tree vec_def, tree vectype, 
code_helper code,
 }
 
 /* Retrieves the definining statement to be used for a reduction.
-   For MAIN_EXIT_P we use the current VEC_STMTs and otherwise we look at
-   the reduction definitions.  */
+   For LAST_VAL_REDUC_P we use the current VEC_STMTs which correspond to the
+   final value after vectorization and otherwise we look at the reduction
+   definitions to get the first.  */
 
 tree
 vect_get_vect_def (stmt_vec_info reduc_info, slp_tree slp_node,
-                  slp_instance slp_node_instance, bool main_exit_p, unsigned i,
-                  vec <gimple *> &vec_stmts)
+                  slp_instance slp_node_instance, bool last_val_reduc_p,
+                  unsigned i, vec <gimple *> &vec_stmts)
 {
   tree def;
 
   if (slp_node)
     {
-      if (!main_exit_p)
+      if (!last_val_reduc_p)
         slp_node = slp_node_instance->reduc_phis;
       def = vect_get_slp_vect_def (slp_node, i);
     }
   else
     {
-      if (!main_exit_p)
+      if (!last_val_reduc_p)
        reduc_info = STMT_VINFO_REDUC_DEF (vect_orig_stmt (reduc_info));
       vec_stmts = STMT_VINFO_VEC_STMTS (reduc_info);
       def = gimple_get_lhs (vec_stmts[0]);
@@ -5982,8 +5983,8 @@ vect_create_epilog_for_reduction (loop_vec_info 
loop_vinfo,
      loop-closed PHI of the inner loop which we remember as
      def for the reduction PHI generation.  */
   bool double_reduc = false;
-  bool main_exit_p = LOOP_VINFO_IV_EXIT (loop_vinfo) == loop_exit
-                    && !LOOP_VINFO_EARLY_BREAKS_VECT_PEELED (loop_vinfo);
+  bool last_val_reduc_p = LOOP_VINFO_IV_EXIT (loop_vinfo) == loop_exit
+                         && !LOOP_VINFO_EARLY_BREAKS_VECT_PEELED (loop_vinfo);
   stmt_vec_info rdef_info = stmt_info;
   if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_double_reduction_def)
     {
@@ -6233,7 +6234,7 @@ vect_create_epilog_for_reduction (loop_vec_info 
loop_vinfo,
     {
       gimple_seq stmts = NULL;
       def = vect_get_vect_def (rdef_info, slp_node, slp_node_instance,
-                              main_exit_p, i, vec_stmts);
+                              last_val_reduc_p, i, vec_stmts);
       for (j = 0; j < ncopies; j++)
        {
          tree new_def = copy_ssa_name (def);



Reply via email to