re PR tree-optimization/92516 (ICE in vect_schedule_slp_instance, at tree-vect-slp...
authorRichard Biener <rguenther@suse.de>
Mon, 18 Nov 2019 14:07:11 +0000 (14:07 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 18 Nov 2019 14:07:11 +0000 (14:07 +0000)
commit10a73df76280e12886cb20b028727436d73724c5
treee5e07edef9b912f5781f27c27645b3f9b9a14345
parent33b3af3fd4819a7fa14acc9aebd100faffdb9667
re PR tree-optimization/92516 (ICE in vect_schedule_slp_instance, at tree-vect-slp.c:4095 since r278246)

2019-11-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/92516
* tree-vect-slp.c (vect_analyze_slp_instance): Add bst_map
argument, hoist bst_map creation/destruction to ...
(vect_analyze_slp): ... here, forming a true graph with
SLP instances being the entries.
(vect_detect_hybrid_slp_stmts): Remove wrapper.
(vect_detect_hybrid_slp): Use one visited set for all
graph entries.
(vect_slp_analyze_node_operations): Simplify visited/lvisited
to hash-sets of slp_tree.
(vect_slp_analyze_operations): Likewise.
(vect_bb_slp_scalar_cost): Remove wrapper.
(vect_bb_vectorization_profitable_p): Use one visited set for
all graph entries.
(vect_schedule_slp_instance): Elide bst_map use.
(vect_schedule_slp): Likewise.

* g++.dg/vect/slp-pr92516.cc: New testcase.

2019-11-18  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_analyze_slp_instance): When a CTOR
was vectorized with just external refs fail.

* gcc.dg/vect/vect-ctor-1.c: New testcase.

From-SVN: r278406
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/vect/slp-pr92516.cc [new file with mode: 0644]
gcc/testsuite/gcc.dg/vect/vect-ctor-1.c [new file with mode: 0644]
gcc/tree-vect-slp.c