2018-10-26 Richard Biener <rguenther@suse.de>
commitf1c1105c9d6def2d2c3d8eef2af2924bc99b6ae1
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Oct 2018 07:38:59 +0000 (26 07:38 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Oct 2018 07:38:59 +0000 (26 07:38 +0000)
tree9d618aa607519185f0bde590ce1b6b862c7ff3b5
parent018d6175e2c3d6a2cf7fd438c0878ec1f4c93cb9
2018-10-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87105
* tree-vectorizer.h (_slp_tree::refcnt): New member.
* tree-vect-slp.c (vect_free_slp_tree): Decrement and honor
refcnt.
(vect_create_new_slp_node): Initialize refcnt to one.
(bst_traits): Move.
(scalar_stmts_set_t, bst_fail): Remove.
(vect_build_slp_tree_2): Add bst_map argument and adjust calls.
(vect_build_slp_tree): Add bst_map argument and lookup
already created SLP nodes.
(vect_print_slp_tree): Handle a SLP graph, print SLP node
addresses.
(vect_slp_rearrange_stmts): Handle a SLP graph.
(vect_analyze_slp_instance): Adjust and free SLP nodes from
the CSE map.  Fix indenting.
(vect_schedule_slp_instance): Add short-cut.

* g++.dg/vect/slp-pr87105.cc: Adjust.
* gcc.dg/torture/20181024-1.c: New testcase.
* g++.dg/opt/20181025-1.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265522 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/opt/20181025-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/vect/slp-pr87105.cc
gcc/testsuite/gcc.dg/torture/20181024-1.c [new file with mode: 0644]
gcc/tree-vect-slp.c
gcc/tree-vectorizer.h