------- Comment #26 from rakdver at kam dot mff dot cuni dot cz 2010-07-07 11:19 ------- Subject: Re: [4.6 regression] RTL loop unrolling causes FAIL: gcc.dg/pr39794.c
> In > > ... > *p_1 = x; > y = *(p_1 + 1); > ... > > I can say that *p_1 does not alias *(p_1 + 1) independent on what code > is around. If it would be > > BB3: > # p_1 = PHI <p_0, p_2(3)> > *p_1 = x; > y = *(p_1 + 1); > p_2 = p_1 + 1; > goto BB3; > > that would be still correct (I can exchange those two statements). Well, yes. Still, I would like to hear your formal definition of what it means for two memory references (not to) alias. We certainly can modify the code to ensure such a property, but just toying around without knowing precisely what this property is definitely is not a good idea. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44838