+2019-11-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
+
+ * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo
+ parameter.
+ * tree-vectorizer.h (vect_analyze_loop): Update declaration.
+ * tree-vectorizer.c (try_vectorize_loop_1): Update calls to
+ vect_analyze_loop.
+
2019-11-04 Joel Hutton <Joel.Hutton@arm.com>
* expr.c (store_constructor): Modify to handle single element vectors.
Apply a set of analyses on LOOP, and create a loop_vec_info struct
for it. The different analyses will record information in the
- loop_vec_info struct. If ORIG_LOOP_VINFO is not NULL epilogue must
- be vectorized. */
+ loop_vec_info struct. */
opt_loop_vec_info
-vect_analyze_loop (class loop *loop, loop_vec_info orig_loop_vinfo,
- vec_info_shared *shared)
+vect_analyze_loop (class loop *loop, vec_info_shared *shared)
{
auto_vector_sizes vector_sizes;
bool fatal = false;
- if (orig_loop_vinfo)
- LOOP_VINFO_ORIG_LOOP_INFO (loop_vinfo) = orig_loop_vinfo;
- else if (vect_epilogues && first_loop_vinfo)
+ if (vect_epilogues && first_loop_vinfo)
LOOP_VINFO_ORIG_LOOP_INFO (loop_vinfo) = first_loop_vinfo;
opt_result res = vect_analyze_loop_2 (loop_vinfo, fatal, &n_stmts);
static unsigned
try_vectorize_loop_1 (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
- unsigned *num_vectorized_loops,
- loop_p loop, loop_vec_info orig_loop_vinfo,
+ unsigned *num_vectorized_loops, loop_p loop,
gimple *loop_vectorized_call,
gimple *loop_dist_alias_call)
{
else
{
/* Try to analyze the loop, retaining an opt_problem if dump_enabled_p. */
- loop_vinfo = vect_analyze_loop (loop, orig_loop_vinfo, &shared);
+ loop_vinfo = vect_analyze_loop (loop, &shared);
loop->aux = loop_vinfo;
}
*/
unsigned dont_count = *num_vectorized_loops;
ret |= try_vectorize_loop_1 (simduid_to_vf_htab, &dont_count,
- new_loop, loop_vinfo, NULL, NULL);
+ new_loop, NULL, NULL);
}
return ret;
|| loop->force_vectorize))
return 0;
- return try_vectorize_loop_1 (simduid_to_vf_htab, num_vectorized_loops,
- loop, NULL,
+ return try_vectorize_loop_1 (simduid_to_vf_htab, num_vectorized_loops, loop,
vect_loop_vectorized_call (loop),
vect_loop_dist_alias_call (loop));
}
enum tree_code);
extern bool needs_fold_left_reduction_p (tree, tree_code);
/* Drive for loop analysis stage. */
-extern opt_loop_vec_info vect_analyze_loop (class loop *,
- loop_vec_info,
- vec_info_shared *);
+extern opt_loop_vec_info vect_analyze_loop (class loop *, vec_info_shared *);
extern tree vect_build_loop_niters (loop_vec_info, bool * = NULL);
extern void vect_gen_vector_loop_niters (loop_vec_info, tree, tree *,
tree *, bool);