[29/46] Use stmt_vec_info instead of gimple stmts internally (part 2)
commit819b115085f06fc09dd5e97720498f6fbc1346b9
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 Jul 2018 14:24:58 +0000 (31 14:24 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 31 Jul 2018 14:24:58 +0000 (31 14:24 +0000)
tree20848e71d439014d733475f0e453582eedbef5c0
parenta73182ff89d19b348b000e4a1ce3013843ea0bfb
[29/46] Use stmt_vec_info instead of gimple stmts internally (part 2)

This second part handles the less mechnical cases, i.e. those that don't
just involve swapping a gimple stmt for an existing stmt_vec_info.

2018-07-31  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-loop.c (vect_analyze_loop_operations): Look up the
statement before passing it to vect_analyze_stmt.
(vect_create_epilog_for_reduction): Use a stmt_vec_info to walk
the chain of phi vector definitions.  Track the exit phi via its
stmt_vec_info.
(vectorizable_reduction): Set cond_stmt_vinfo directly from the
STMT_VINFO_REDUC_DEF.
* tree-vect-slp.c (vect_get_place_in_interleaving_chain): Use
stmt_vec_infos to handle the statement chains.
(vect_get_slp_defs): Record the first statement in the node
using a stmt_vec_info.
* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Look up
statements here and pass their stmt_vec_info down to subroutines.
(vect_init_vector_1): Hoist call to vinfo_for_stmt and pass it
down to vect_finish_stmt_generation.
(vect_init_vector, vect_get_vec_defs, vect_finish_replace_stmt)
(vect_finish_stmt_generation): Call vinfo_for_stmt and pass
stmt_vec_infos to subroutines.
(vect_remove_stores): Use stmt_vec_infos to handle the statement
chains.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263144 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/tree-vect-loop.c
gcc/tree-vect-slp.c
gcc/tree-vect-stmts.c