------- Comment #17 from rakdver at kam dot mff dot cuni dot cz 2010-07-07 10:09 ------- Subject: Re: [4.6 regression] RTL loop unrolling causes FAIL: gcc.dg/pr39794.c
> (In reply to comment #15) > > Subject: Re: [4.6 regression] RTL loop > > unrolling causes FAIL: gcc.dg/pr39794.c > > > > I am not sure what you mean -- I may be misunderstanding how rtl alias > > analysis > > works, but as far as I can tell, what unroller does (just preserving the > > MEM_ATTRs) is conservatively correct (so, potentially it may make us believe > > that there are dependences that are not really present, but it should not > > cause > > a wrong-code bug). > > Consider this simplified example: > > for (i ...) > { > /*A*/ t = a[i]; > /*B*/ a[i+1] = t; > } > MEM_ATTRS would indicate that memory references in A and B do not alias. but this is clearly wrong, since B in iteration X aliases with A in iteration X+1. So, not a problem in unroller. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44838