tree-optimization/97558 - avoid SLP analyzing irrelevant stmts
authorRichard Biener <rguenther@suse.de>
Mon, 2 Nov 2020 08:38:09 +0000 (09:38 +0100)
committerRichard Biener <rguenther@suse.de>
Mon, 2 Nov 2020 10:03:30 +0000 (11:03 +0100)
commit5b41d673ad96dd2f9a7dec3877d0381320ccadb1
tree0c1ea5efd59af78cca22b7de87c715927874f7dd
parenta159081ad4259c42456bd3dc2b637747c373c5a5
tree-optimization/97558 - avoid SLP analyzing irrelevant stmts

This avoids analyzing reductions that are not relevant (thus dead)
which eventually will lead into crashes because the participating
stmts meta is not analyzed.  For this to work the patch also
properly removes reduction groups that are not uniformly recognized
as patterns.

2020-11-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/97558
* tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns):
Check for any mismatch in pattern vs. non-pattern and dissolve
the group if there is one.
* tree-vect-slp.c (vect_analyze_slp_instance): Avoid
analyzing not relevant reductions.
(vect_analyze_slp): Avoid analyzing not relevant reduction
groups.

* gcc.dg/vect/pr97558.c: New testcase.
gcc/testsuite/gcc.dg/vect/pr97558.c [new file with mode: 0644]
gcc/tree-vect-loop.c
gcc/tree-vect-slp.c