nonlinear_iv (false),
ivexpr_map (NULL),
scan_map (NULL),
- slp_unrolling_factor (1),
inner_loop_cost_factor (param_vect_inner_loop_cost_factor),
vectorizable (false),
can_use_partial_vectors_p (param_vect_partial_vector_usage != 0),
if (!ok)
return ok;
- /* If there are any SLP instances mark them as pure_slp. */
+ /* If there are any SLP instances mark them as pure_slp and compute
+ the overall vectorization factor. */
if (!vect_make_slp_decision (loop_vinfo))
return opt_result::failure_at (vect_location, "no stmts to vectorize.\n");
if (dump_enabled_p ())
dump_printf_loc (MSG_NOTE, vect_location, "Loop contains only SLP stmts\n");
- /* Determine the vectorization factor from the SLP decision. */
- LOOP_VINFO_VECT_FACTOR (loop_vinfo)
- = LOOP_VINFO_SLP_UNROLLING_FACTOR (loop_vinfo);
+ /* Dump the vectorization factor from the SLP decision. */
if (dump_enabled_p ())
{
dump_printf_loc (MSG_NOTE, vect_location, "vectorization factor = ");
used. */
poly_uint64 versioning_threshold;
- /* Unrolling factor */
+ /* Unrolling factor. In case of suitable super-word parallelism
+ it can be that no unrolling is needed, and thus this is 1. */
poly_uint64 vectorization_factor;
/* If this loop is an epilogue loop whose main loop can be skipped,
rhs of the store of the initializer. */
hash_map<tree, tree> *scan_map;
- /* The unrolling factor needed to SLP the loop. In case of that pure SLP is
- applied to the loop, i.e., no unrolling is needed, this is 1. */
- poly_uint64 slp_unrolling_factor;
-
/* The factor used to over weight those statements in an inner loop
relative to the loop being vectorized. */
unsigned int inner_loop_cost_factor;
#define LOOP_VINFO_USER_UNROLL(L) (L)->user_unroll
#define LOOP_VINFO_GROUPED_STORES(L) (L)->grouped_stores
#define LOOP_VINFO_SLP_INSTANCES(L) (L)->slp_instances
-#define LOOP_VINFO_SLP_UNROLLING_FACTOR(L) (L)->slp_unrolling_factor
#define LOOP_VINFO_REDUCTIONS(L) (L)->reductions
#define LOOP_VINFO_PEELING_FOR_GAPS(L) (L)->peeling_for_gaps
#define LOOP_VINFO_PEELING_FOR_NITER(L) (L)->peeling_for_niter