This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: How could I get alias set information from data_reference_p
On Wed, 2009-07-15 at 22:48 +0200, Richard Guenther wrote:
> On Wed, Jul 15, 2009 at 10:46 PM, Richard
> Guenther<richard.guenther@gmail.com> wrote:
> > On Wed, Jul 15, 2009 at 9:15 PM, Tobias
> > Grosser<grosser@fim.uni-passau.de> wrote:
> >>> A note on Lis final graph algorithm. I don't understand why you want
> >>> to allow data-references to be part of multiple alias-sets? (Of course
> >>> I don't know how you are going to use the alias-sets ...)
> >>
> >> Just to pass more information to Graphite. The easiest example might be
> >> something like
> >>
> >> A -- B -- C
> >>
> >> if we have
> >>
> >> AS1 = {A,B}
> >> AS2 = {B,C}
> >>
> >> we know that A and C do not alias and therefore do not have any
> >
> > No, from the above you _don't_ know that. How would you arrive
> > at that conclusion?
>
> What I want to say is that, if A -- B -- C is supposed to be the alias graph
> resulting from querying the alias oracle for the pairs (A, B), (A, C), (B, C)
> then this is a result that will never occur. Because if (A, B) is true
> and (B, C) is true then (A, C) will be true as well.
What for example for this case:
void foo (*b) {
int *a
int *c
if (bar())
a = b;
else
c = b;
}
I thought this may give us the example above, but it seems I am wrong.
If the alias oracle is transitive that would simplify the algorithm a
lot. Can we rely on the transitivity?
Tobi