------- Comment #8 from sebpop at gmail dot com  2007-07-03 13:57 -------
Subject: Re:  can't determine dependence (source/destination overlap without
more than size)

On 3 Jul 2007 12:57:33 -0000, irar at il dot ibm dot com
<[EMAIL PROTECTED]> wrote:
>   for (i = 0; i < N; i++){
>     ia[i+1] = ia[i] * 4;
>   }
> the ddr is {ld, st} and distance 1
>
> and for
>   for (i = 0; i < N; i++){
>     ia[i] = ia[i+1] * 4;
>   }
> the ddr is also {ld, st} with distance 1.
>
> How can we distinguish between these cases?
>

There is no way to distinguish between these two in the classical distance
vector representation, however I have seen that I only have that code in
the graphite branch:
          DDR_REVERSED_P (ddr) = true;
I'm setting this in the block of code that is tested for not being lexico
positive vectors:
      if (!lambda_vector_lexico_pos (dist_v, DDR_NB_LOOPS (ddr)))

I can submit a patch for merging that part of code in trunk if you need
this flag to test if you are in one or the other case.  But again in the
classical distance representation this cannot be distinguished.

Sebastian


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32377

Reply via email to