This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[PATCH]: Re: data dependence for pointers broken?
> >
> > Here's the test case I'm looking at with -O2 -ftree-vectorize.
> >
>
> We will lose the restrict info here, and think that image1 and image2
> can point to the same thing, so we can't go further.
Sigh, we don't actually get to that point before we lose due to a
missing casezerodiff.diff
Attached will get you there.
Index: tree-data-ref.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-data-ref.c,v
retrieving revision 2.42
diff -u -p -r2.42 tree-data-ref.c
--- tree-data-ref.c 15 Sep 2005 17:21:48 -0000 2.42
+++ tree-data-ref.c 18 Sep 2005 20:46:43 -0000
@@ -2497,7 +2497,17 @@ analyze_subscript_affine_affine (tree ch
int init_a, init_b, gamma, gcd_alpha_beta;
int tau1, tau2;
lambda_matrix A, U, S;
+ tree difference = chrec_fold_minus (integer_type_node, chrec_a, chrec_b);
+ if (integer_zerop (difference))
+ {
+ /* The difference is equal to zero: the accessed index
+ overlaps for each iteration in the loop. */
+ *overlaps_a = integer_zero_node;
+ *overlaps_b = integer_zero_node;
+ *last_conflicts = chrec_dont_know;
+ return;
+ }
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "(analyze_subscript_affine_affine \n");