gimple.c (gimple_get_lhs): For PHIs return the result.
authorRichard Biener <rguenther@suse.de>
Mon, 30 Sep 2019 11:59:16 +0000 (11:59 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 30 Sep 2019 11:59:16 +0000 (11:59 +0000)
commit61362d9d18916bd5b694385982cf4a02b7537b0e
tree7b3dbdbfe377d426f7d2bdb1eb1b6441279a7e6a
parent582c57a17eaf02e90492145cd7217bda5499076b
gimple.c (gimple_get_lhs): For PHIs return the result.

2019-09-30  Richard Biener  <rguenther@suse.de>

* gimple.c (gimple_get_lhs): For PHIs return the result.
* tree-vectorizer.h (vectorizable_live_operation): Also get the
SLP instance as argument.
* tree-vect-loop.c (vect_analyze_loop_operations): Also handle
double-reduction PHIs with vectorizable_lc_phi.
(vect_analyze_loop_operations): Adjust.
(vect_create_epilog_for_reduction): Remove all code not dealing
with reduction LC PHI or epilogue generation.
(vectorizable_live_operation): Call vect_create_epilog_for_reduction
for live stmts of reductions.
* tree-vect-stmts.c (vectorizable_condition): When !for_reduction
do not handle defs that are not vect_internal_def.
(can_vectorize_live_stmts): Adjust.
(vect_analyze_stmt): When the vectorized stmt defined a value
used on backedges adjust the backedge uses of vectorized PHIs.

From-SVN: r276299
gcc/ChangeLog
gcc/gimple.c
gcc/tree-vect-loop.c
gcc/tree-vect-stmts.c
gcc/tree-vectorizer.h