===================================================================
@@ -520,6 +520,14 @@ enum slp_vect_type {
hybrid
};
+/* Says whether a statement is a load, a store of a vectorized statement
+ result, or a store of an invariant value. */
+enum vec_load_store_type {
+ VLS_LOAD,
+ VLS_STORE,
+ VLS_STORE_INVARIANT
+};
+
/* Describes how we're going to vectorize an individual load or store,
or a group of loads or stores. */
enum vect_memory_access_type {
@@ -1220,7 +1228,7 @@ extern void vect_model_simple_cost (stmt
int, stmt_vector_for_cost *,
stmt_vector_for_cost *);
extern void vect_model_store_cost (stmt_vec_info, int, vect_memory_access_type,
- enum vect_def_type, slp_tree,
+ vec_load_store_type, slp_tree,
stmt_vector_for_cost *,
stmt_vector_for_cost *);
extern void vect_model_load_cost (stmt_vec_info, int, vect_memory_access_type,
===================================================================
@@ -52,14 +52,6 @@ Software Foundation; either version 3, o
/* For lang_hooks.types.type_for_mode. */
#include "langhooks.h"
-/* Says whether a statement is a load, a store of a vectorized statement
- result, or a store of an invariant value. */
-enum vec_load_store_type {
- VLS_LOAD,
- VLS_STORE,
- VLS_STORE_INVARIANT
-};
-
/* Return the vectorized type for the given statement. */
tree
@@ -906,7 +898,7 @@ vect_model_promotion_demotion_cost (stmt
void
vect_model_store_cost (stmt_vec_info stmt_info, int ncopies,
vect_memory_access_type memory_access_type,
- enum vect_def_type dt, slp_tree slp_node,
+ vec_load_store_type vls_type, slp_tree slp_node,
stmt_vector_for_cost *prologue_cost_vec,
stmt_vector_for_cost *body_cost_vec)
{
@@ -915,7 +907,7 @@ vect_model_store_cost (stmt_vec_info stm
gimple *first_stmt = STMT_VINFO_STMT (stmt_info);
bool grouped_access_p = STMT_VINFO_GROUPED_ACCESS (stmt_info);
- if (dt == vect_constant_def || dt == vect_external_def)
+ if (vls_type == VLS_STORE_INVARIANT)
prologue_cost += record_stmt_cost (prologue_cost_vec, 1, scalar_to_vec,
stmt_info, 0, vect_prologue);
@@ -2169,7 +2161,7 @@ vectorizable_mask_load_store (gimple *st
NULL, NULL, NULL);
else
vect_model_store_cost (stmt_info, ncopies, memory_access_type,
- dt, NULL, NULL, NULL);
+ vls_type, NULL, NULL, NULL);
return true;
}
gcc_assert (memory_access_type == STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info));
@@ -5797,8 +5789,8 @@ vectorizable_store (gimple *stmt, gimple
STMT_VINFO_TYPE (stmt_info) = store_vec_info_type;
/* The SLP costs are calculated during SLP analysis. */
if (!PURE_SLP_STMT (stmt_info))
- vect_model_store_cost (stmt_info, ncopies, memory_access_type, dt,
- NULL, NULL, NULL);
+ vect_model_store_cost (stmt_info, ncopies, memory_access_type,
+ vls_type, NULL, NULL, NULL);
return true;
}
gcc_assert (memory_access_type == STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info));
===================================================================
@@ -1724,7 +1724,7 @@ vect_analyze_slp_cost_1 (slp_instance in
: VMAT_CONTIGUOUS);
if (DR_IS_WRITE (STMT_VINFO_DATA_REF (stmt_info)))
vect_model_store_cost (stmt_info, ncopies_for_cost,
- memory_access_type, vect_uninitialized_def,
+ memory_access_type, VLS_STORE,
node, prologue_cost_vec, body_cost_vec);
else
{