[PATCH] check alias sets in add_inter_loop_mem_dep (ddg.c)

Daniel Berlin dberlin@dberlin.org
Mon Jan 19 19:02:00 GMT 2009


On Mon, Jan 19, 2009 at 4:59 AM, Revital1 Eres <ERES@il.ibm.com> wrote:
> Hello,
>
>> I asked on the GCC mailing list about the DDG export patch a few months
> ago. I
>> tried to merged it recently into the mainline, without much success. A
>> immediate issue I have with modulo scheduling is that it doesn't handle
>> restrict keyword. I just adapt these the walker functions in the above
> patch,
>> which I think is generic and simple.
>
> OK, thanks.
> I am a little confused regarding how alias_sets_conflict_p will handle
> cross-iteration dependencies when constructing DDG for SMS.
>
> From previous talks with Andrey I understood that data dependency
> graph construction for SMS can not use rtl alias analysis because of the
> following explanation:
> When adding cross-iteration dependencies, because rtl AA includes
> base+offset disambiguation, which allows to disambiguate a[i] and a[i+1]
> on targets with base+offset memory addressing; while a[i] and a[i+1]
> are independent within one iteration, cross-iteration dependency still
> must be added; thus, DDG construction adds dependency edges for all
> pairs of memory references.

You can check the alias sets without having to check the base+offset,
which is what Bingfeng's patch does.
If the alias sets do not conflict, they will *never* be aliased,
cross-iteration or otherwise.

--Dan



More information about the Gcc-patches mailing list