The following reverts the change done to vectorizable_store/load
to always pass the SLP node to the costing hook, in particular for
the cases of costing scalar loads and stores.

        * tree-vect-stmts.cc (vectorizable_store): For scalar_store
        costing only pass in stmt_info.
        (vectorizable_load): For scalar_load costing only pass in
        stmt_info.
---
 gcc/tree-vect-stmts.cc | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index eb0b0d00e75..7075948a19a 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -9402,8 +9402,7 @@ vectorizable_store (vec_info *vinfo,
                  unsigned int cnunits = vect_nunits_for_cost (vectype);
                  inside_cost
                    += record_stmt_cost (cost_vec, cnunits, scalar_store,
-                                        stmt_info, slp_node, 0,
-                                        vect_body);
+                                        stmt_info, 0, vect_body);
                  continue;
                }
 
@@ -9471,7 +9470,7 @@ vectorizable_store (vec_info *vinfo,
                  unsigned int cnunits = vect_nunits_for_cost (vectype);
                  inside_cost
                    += record_stmt_cost (cost_vec, cnunits, scalar_store,
-                                        stmt_info, slp_node, 0, vect_body);
+                                        stmt_info, 0, vect_body);
                  continue;
                }
 
@@ -9586,7 +9585,7 @@ vectorizable_store (vec_info *vinfo,
                                         stmt_info, slp_node, 0, vect_body);
                  inside_cost
                    += record_stmt_cost (cost_vec, cnunits, scalar_store,
-                                        stmt_info, slp_node, 0, vect_body);
+                                        stmt_info, 0, vect_body);
                  continue;
                }
 
@@ -10034,7 +10033,7 @@ vectorizable_store (vec_info *vinfo,
                  /* Loads.  */
                  prologue_cost
                    += record_stmt_cost (cost_vec, ncopies * nregs, scalar_load,
-                                        stmt_info, slp_node, 0, vect_epilogue);
+                                        stmt_info, 0, vect_epilogue);
                }
            }
        }
@@ -10607,8 +10606,7 @@ vectorizable_load (vec_info *vinfo,
          enum vect_cost_model_location cost_loc
            = hoist_p ? vect_prologue : vect_body;
          unsigned int cost = record_stmt_cost (cost_vec, 1, scalar_load,
-                                               stmt_info, slp_node, 0,
-                                               cost_loc);
+                                               stmt_info, 0, cost_loc);
          cost += record_stmt_cost (cost_vec, 1, scalar_to_vec, stmt_info,
                                    slp_node, 0, cost_loc);
          unsigned int prologue_cost = hoist_p ? cost : 0;
@@ -10875,8 +10873,7 @@ vectorizable_load (vec_info *vinfo,
                    n_adjacent_loads++;
                  else
                    inside_cost += record_stmt_cost (cost_vec, 1, scalar_load,
-                                                    stmt_info, slp_node, 0,
-                                                    vect_body);
+                                                    stmt_info, 0, vect_body);
                  continue;
                }
              tree this_off = build_int_cst (TREE_TYPE (alias_off),
@@ -11541,7 +11538,7 @@ vectorizable_load (vec_info *vinfo,
                      unsigned int cnunits = vect_nunits_for_cost (vectype);
                      inside_cost
                        = record_stmt_cost (cost_vec, cnunits, scalar_load,
-                                           stmt_info, slp_node, 0, vect_body);
+                                           stmt_info, 0, vect_body);
                      continue;
                    }
                  if (STMT_VINFO_GATHER_SCATTER_P (stmt_info))
@@ -11617,7 +11614,7 @@ vectorizable_load (vec_info *vinfo,
                      unsigned int cnunits = vect_nunits_for_cost (vectype);
                      inside_cost
                        = record_stmt_cost (cost_vec, cnunits, scalar_load,
-                                           stmt_info, slp_node, 0, vect_body);
+                                           stmt_info, 0, vect_body);
                      continue;
                    }
                  poly_uint64 offset_nunits
@@ -11752,7 +11749,7 @@ vectorizable_load (vec_info *vinfo,
                         vector.  */
                      inside_cost
                        = record_stmt_cost (cost_vec, const_nunits, scalar_load,
-                                           stmt_info, slp_node, 0, vect_body);
+                                           stmt_info, 0, vect_body);
                      inside_cost
                        = record_stmt_cost (cost_vec, 1, vec_construct,
                                            stmt_info, slp_node, 0, vect_body);
-- 
2.43.0

Reply via email to