re PR fortran/62283 (basic-block vectorization fails)
authorRichard Biener <rguenther@suse.de>
Tue, 28 Apr 2015 08:30:44 +0000 (08:30 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 28 Apr 2015 08:30:44 +0000 (08:30 +0000)
commit90dd6e3df86c81bdc1380513c57cce64caf32f72
treebdcf186857724357c1663bf3fe7816d98815ea78
parentfde9b31b61aa281b502e4f49200e3090aa8a4dd1
re PR fortran/62283 (basic-block vectorization fails)

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.

From-SVN: r222514
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