On Tue, 3 Aug 2010, Bingfeng Mei wrote:

> Thanks, I can reproduce it with trunk compiler but not 4.5.0. 
> Do you know how alias set are represented and used now.

I'm not aware of any changes regarding alias sets.

> It used to 
> be each alias set is assigned a unique number and there won't 
> be a dependence edge drawn between different alias set.

Are you implying that restricted pointers would get different alias sets
numbers before but don't anymore?  I don't think that this might have changed
but I may be mistaken (hopefully Richard can clarify this).

> It seems not
> to be the case anymore. [2 *a_1(D)+0 S4 A32] The second field 
> must play a role in disambiguate the memory access. 

Yes, this is MEM_EXPR which is used to invoke tree alias oracle from RTL.  See
mem_refs_may_alias_p and its invocations in {true,anti,write}_dependence.  It
should be much more precise than alias set numbers (but they are still used
nevertheless).

> BTW, why these two intermediate variables are both assigned to eax
> without these non-default options? This example has no register pressure.
> It looks like an issue with IRA. 

Well, RA is quite complicated even without considering issues like this.
Thanks to Vladimir's pressure-sensitive scheduling patches, pre-RA scheduling
should solve this.

Alexander

Reply via email to