re PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets)
authorRichard Biener <rguenther@suse.de>
Wed, 1 Jun 2016 13:08:24 +0000 (13:08 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 1 Jun 2016 13:08:24 +0000 (13:08 +0000)
commitfa2c9034583b7fe6300e547dc67792e4eb440f48
tree574d63a4f07f9b63df083f2f3e1ef7f6230e90cd
parent3e32893c0bba66df33a1143afcb45e345172360a
re PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets)

2016-06-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71261
* tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
of stmts successfully put in the bool pattern.  Remove
single-use restriction.
(adjust_bool_pattern_cast): Add cast at the use site via the
pattern def sequence.
(adjust_bool_pattern): Remove recursion, maintain a hash-map
of patterned defs.  Use the pattern def seqence instead of
multiple independent patterns.
(sort_after_uid): New qsort compare function.
(adjust_bool_stmts): New function to process stmts in the bool
pattern in IL order.
(vect_recog_bool_pattern): Adjust.
* tree-if-conv.c (ifcvt_split_def_stmt): Remove.
(ifcvt_walk_pattern_tree): Likewise.
(stmt_is_root_of_bool_pattern): Likewise.
(ifcvt_repair_bool_pattern): Likewise.
(tree_if_conversion): Do not call ifcvt_repair_bool_pattern.

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

From-SVN: r236989
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/vect-bool-1.c [new file with mode: 0644]
gcc/tree-if-conv.c
gcc/tree-vect-patterns.c