Commit 2a5825f2 by Richard Biener Committed by Richard Biener

tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do not consider…

tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do not consider dependences between accesses that belong to the same group.

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

	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
	not consider dependences between accesses that belong to the
	same group.
	(vect_analyze_data_ref_dependences): Do not analyze read-read
	or self-dependences.

	* gcc.dg/vect/bb-slp-pattern-2.c: Disable loop vectorization.

From-SVN: r237473
parent 6a3f203c
2016-06-15 Richard Biener <rguenther@suse.de>
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
not consider dependences between accesses that belong to the
same group.
(vect_analyze_data_ref_dependences): Do not analyze read-read
or self-dependences.
2016-06-14 David Malcolm <dmalcolm@redhat.com>
* spellcheck-tree.c: Include spellcheck-tree.h rather than
......
2016-06-15 Richard Biener <rguenther@suse.de>
* gcc.dg/vect/bb-slp-pattern-2.c: Disable loop vectorization.
2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/vsx-elemrev-2.c: Change effective target
......
/* { dg-require-effective-target vect_condition } */
/* { dg-additional-options "-fno-tree-vectorize -ftree-slp-vectorize -ftree-loop-if-convert" } */
#include "tree-vect.h"
......
......@@ -227,6 +227,12 @@ vect_analyze_data_ref_dependence (struct data_dependence_relation *ddr,
|| (DR_IS_READ (dra) && DR_IS_READ (drb)))
return false;
/* We do not have to consider dependences between accesses that belong
to the same group. */
if (GROUP_FIRST_ELEMENT (stmtinfo_a)
&& GROUP_FIRST_ELEMENT (stmtinfo_a) == GROUP_FIRST_ELEMENT (stmtinfo_b))
return false;
/* Even if we have an anti-dependence then, as the vectorized loop covers at
least two scalar iterations, there is always also a true dependence.
As the vectorizer does not re-order loads and stores we can ignore
......@@ -469,7 +475,7 @@ vect_analyze_data_ref_dependences (loop_vec_info loop_vinfo, int *max_vf)
LOOP_VINFO_NO_DATA_DEPENDENCIES (loop_vinfo) = true;
if (!compute_all_dependences (LOOP_VINFO_DATAREFS (loop_vinfo),
&LOOP_VINFO_DDRS (loop_vinfo),
LOOP_VINFO_LOOP_NEST (loop_vinfo), true))
LOOP_VINFO_LOOP_NEST (loop_vinfo), false))
return false;
FOR_EACH_VEC_ELT (LOOP_VINFO_DDRS (loop_vinfo), i, ddr)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment