This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] alias analysis
- From: law at redhat dot com
- To: Diego Novillo <dnovillo at redhat dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 11 Feb 2003 11:54:10 -0700
- Subject: Re: [tree-ssa] alias analysis
- Reply-to: law at redhat dot com
In message <20030211183344.GA5611@tornado.toronto.redhat.com>, Diego Novillo wr
ites:
>On Tue, 11 Feb 2003, Jeff Law wrote:
>
>> Your scheme depends on having every object which has the same alias set
>> being represented by a single tag. Then you just need to check things
>> against that representative tag.
>>
>Yes.
>
>> In my scheme for separating loads and stores, we can have different
>> tags for stores to addressable objects with the same underlying tag.
>>
>> ie
>>
>> int x = 5;
>> int y = 10;
>>
>> foo (&x, &y);
>>
>>
>> We'd have distinct tags for x & y, even though they have the same alias
>> set.
>>
>Now you lost me. I thought you were separating load from store
>aliases? Aren't x and y store aliases here? Or is it load
>aliases? I think I need a step-by-step description again :)
They are stores, but they are stores to distinct VAR_DECLs. There's no
way they can actually alias each other as the underlying objects will
always be distinct. Ie, there is no way that x = foo will every modify
y.
So while they have the same alias set number, they do not alias and
we can keep their tags distinct. The only time we have to join them
into a superset is if we find something like *p = blah.
Jeff