On Tue, Jul 14, 2009 at 6:08 PM, Sebastian Pop<seb...@gmail.com> wrote:
> On Tue, Jul 14, 2009 at 11:03, Sebastian Pop<seb...@gmail.com> wrote:
>>> Why do you need alias-set numbers?
>>
>> We want to represent the alias set information as an extra subscript
>> on memory accesses: for example,
>>
>> if we have A[10] and supposing that A is in alias set 6, this would be
>> represented as "memory_access[6][10]".
>>
>> For B[3][4] with base array B in alias set 7 and 8, we would represent
>> this as "memory_access[7][3][4] or memory_access[8][3][4]".
>>
>> The data dependence test that we currently have in the graphite branch
>> would work with alias sets represented by an extra dimension to the
>> array dimensions.
>
> And by the way, right now we consider that all the data refs alias each
> other, that means that we set the alias dimension of the memory
> accesses to 1 for every data reference.  This makes the test very
> conservative: in the example above, with the current implementation,
> we would have:
>
> A: memory_access[1][10]
> B: memory_access[1][3][4]

Well, so you really want to have sort-of the base objects partitioned
into must(!)-conflict sets?  Thus,

  (*p)[1][2]
  (*q)[1][3]

is only correct if the resulting accesses may not alias?  (that is,
p == q?)

No, we don't have such information readily available.  You have
to compute it.  Likely by building a complete conflict map of
the bases of all memory references and partitioning it.

Which doesn't sound like a great idea - it's quadratic.  Thus, can't
you represent this in a more sparse way?

Richard.

> Sebastian
>

Reply via email to