aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-analyze.c
diff options
context:
space:
mode:
authorIra Rosen <irar@il.ibm.com>2007-09-12 08:48:44 +0000
committerIra Rosen <irar@gcc.gnu.org>2007-09-12 08:48:44 +0000
commitf5d8ed2c51c746d3d1e31fad0b55fb3a43a981c7 (patch)
treedc82958fed7fc3a20d97d4f7113b549d2c444dbb /gcc/tree-vect-analyze.c
parent7323b6643e2f929f49b68582217e9a9b2182df57 (diff)
downloadgcc-f5d8ed2c51c746d3d1e31fad0b55fb3a43a981c7.zip
gcc-f5d8ed2c51c746d3d1e31fad0b55fb3a43a981c7.tar.gz
gcc-f5d8ed2c51c746d3d1e31fad0b55fb3a43a981c7.tar.bz2
tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish between positive and negative dependence distance using DDR_REVERSED_P.
* tree-vect-analyze.c (vect_analyze_data_ref_dependence): Distinguish between positive and negative dependence distance using DDR_REVERSED_P. From-SVN: r128420
Diffstat (limited to 'gcc/tree-vect-analyze.c')
-rw-r--r--gcc/tree-vect-analyze.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/tree-vect-analyze.c b/gcc/tree-vect-analyze.c
index 51f0294..c9f559b 100644
--- a/gcc/tree-vect-analyze.c
+++ b/gcc/tree-vect-analyze.c
@@ -1212,12 +1212,15 @@ vect_analyze_data_ref_dependence (struct data_dependence_relation *ddr,
continue;
}
- if (abs (dist) >= vectorization_factor)
+ if (abs (dist) >= vectorization_factor
+ || (dist > 0 && DDR_REVERSED_P (ddr)))
{
- /* Dependence distance does not create dependence, as far as vectorization
- is concerned, in this case. */
+ /* Dependence distance does not create dependence, as far as
+ vectorization is concerned, in this case. If DDR_REVERSED_P the
+ order of the data-refs in DDR was reversed (to make distance
+ vector positive), and the actual distance is negative. */
if (vect_print_dump_info (REPORT_DR_DETAILS))
- fprintf (vect_dump, "dependence distance >= VF.");
+ fprintf (vect_dump, "dependence distance >= VF or negative.");
continue;
}