2015-04-28 Richard Biener <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 28 Apr 2015 08:30:44 +0000 (08:30 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 28 Apr 2015 08:30:44 +0000 (08:30 +0000)
commit6501e749122298ba01e435a70df7e6a981b6dbfe
treebdcf186857724357c1663bf3fe7816d98815ea78
parentee7ef7abf6b938b36acffc34f15ca5097b63702a
2015-04-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/62283
* tree-vect-slp.c (vect_build_slp_tree): When the SLP build
fails fatally and we are vectorizing a basic-block simply
cause the child to be constructed piecewise.
(vect_analyze_slp_cost_1): Adjust.
(vect_detect_hybrid_slp_stmts): Likewise.
(vect_bb_slp_scalar_cost): Likewise.
(vect_get_constant_vectors): For piecewise constructed
constants place them after the last def.
(vect_get_slp_defs): Adjust.
* tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
externals for basic-block vectorization.

* gfortran.dg/vect/pr62283-2.f: New testcase.
* gcc.dg/vect/bb-slp-14.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222514 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/bb-slp-14.c
gcc/testsuite/gfortran.dg/vect/pr62283-2.f [new file with mode: 0644]
gcc/tree-vect-slp.c
gcc/tree-vect-stmts.c