From f5d8ed2c51c746d3d1e31fad0b55fb3a43a981c7 Mon Sep 17 00:00:00 2001 From: Ira Rosen Date: Wed, 12 Sep 2007 08:48:44 +0000 Subject: 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 --- gcc/tree-vect-analyze.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'gcc/tree-vect-analyze.c') 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; } -- cgit v1.1