This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.
for example,
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.

tianwei
On 3/29/06, Mike Stump <mrs@apple.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[4] != &a[5], even though the type is the same.
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]