Commit 291fa23a by Richard Biener Committed by Richard Biener

tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type): New.

2019-10-02  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
	New.
	(vect_transform_cycle_phi): Declare.
	* tree-vect-stmts.c (vect_transform_stmt): Call
	vect_transform_cycle_phi.
	* tree-vect-loop.c (vectorizable_reduction): Split out
	PHI transformation stage to ...
	(vect_transform_cycle_phi): ... here.

From-SVN: r276441
parent 1bcb4c4f
2019-10-02 Richard Biener <rguenther@suse.de>
* tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
New.
(vect_transform_cycle_phi): Declare.
* tree-vect-stmts.c (vect_transform_stmt): Call
vect_transform_cycle_phi.
* tree-vect-loop.c (vectorizable_reduction): Split out
PHI transformation stage to ...
(vect_transform_cycle_phi): ... here.
2019-10-02 Richard Sandiford <richard.sandiford@arm.com> 2019-10-02 Richard Sandiford <richard.sandiford@arm.com>
PR middle-end/91957 PR middle-end/91957
......
...@@ -10824,6 +10824,12 @@ vect_transform_stmt (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, ...@@ -10824,6 +10824,12 @@ vect_transform_stmt (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi,
gcc_assert (done); gcc_assert (done);
break; break;
case cycle_phi_info_type:
done = vect_transform_cycle_phi (stmt_info, &vec_stmt, slp_node,
slp_node_instance);
gcc_assert (done);
break;
case lc_phi_info_type: case lc_phi_info_type:
done = vectorizable_lc_phi (stmt_info, &vec_stmt, slp_node); done = vectorizable_lc_phi (stmt_info, &vec_stmt, slp_node);
gcc_assert (done); gcc_assert (done);
......
...@@ -694,6 +694,7 @@ enum stmt_vec_info_type { ...@@ -694,6 +694,7 @@ enum stmt_vec_info_type {
type_promotion_vec_info_type, type_promotion_vec_info_type,
type_demotion_vec_info_type, type_demotion_vec_info_type,
type_conversion_vec_info_type, type_conversion_vec_info_type,
cycle_phi_info_type,
lc_phi_info_type, lc_phi_info_type,
loop_exit_ctrl_vec_info_type loop_exit_ctrl_vec_info_type
}; };
...@@ -1658,6 +1659,8 @@ extern bool vectorizable_reduction (stmt_vec_info, gimple_stmt_iterator *, ...@@ -1658,6 +1659,8 @@ extern bool vectorizable_reduction (stmt_vec_info, gimple_stmt_iterator *,
extern bool vectorizable_induction (stmt_vec_info, gimple_stmt_iterator *, extern bool vectorizable_induction (stmt_vec_info, gimple_stmt_iterator *,
stmt_vec_info *, slp_tree, stmt_vec_info *, slp_tree,
stmt_vector_for_cost *); stmt_vector_for_cost *);
extern bool vect_transform_cycle_phi (stmt_vec_info, stmt_vec_info *,
slp_tree, slp_instance);
extern bool vectorizable_lc_phi (stmt_vec_info, stmt_vec_info *, slp_tree); extern bool vectorizable_lc_phi (stmt_vec_info, stmt_vec_info *, slp_tree);
extern bool vect_worthwhile_without_simd_p (vec_info *, tree_code); extern bool vect_worthwhile_without_simd_p (vec_info *, tree_code);
extern int vect_get_known_peeling_cost (loop_vec_info, int, int *, extern int vect_get_known_peeling_cost (loop_vec_info, int, int *,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment