This is the mail archive of the
mailing list for the GCC project.
Re: how to get the field_id for member of structure in gcc front end
but it's my be too aggressive. as you said, you mean "base,ofst" rule is enough,
a more safe method is "base,ofst, lenght" rule. p still can point to
pair.b if p is update by
assignment or other ways.
we should ensure *p will never exceed the length, otherwilse it will
fail to do alias analysis. our compiler will use "base,ofst,lenght"
rule for every indirect memop
to do alias analysis. now we can only set the lenght to the size of structure.
int *p = &pair.a
int *q = &pair.a;;
p = p+1;
*p = 1;
*q = 2;
(*p) and (*q) are not aliased because of p = p +1; now p points to pair.b.
any way, I will think over your "base,ofst" rule.
On 3/29/06, Mike Stump <email@example.com> wrote:
> On Mar 28, 2006, at 11:03 PM, Tianwei Sheng wrote:
> > I need the field_info to help in alias analysis. for example:
> > int *p = &pair.a;
> > int *q = &pair.b;
> > then if I can set length of "*p" to 4,ofset is '0' . for "*q" to
> > "8,4". also I know that p definitly points to pair.a and q points to
> > pair.b, then i can say "*p" and "*q" are not aliased with each other.
> My take, a + 0 != a + 8, so they point to different areas. Since you
> already have the offset information, you already have the information
> you need.
> Kinda like &a != &a, even though the type is the same.