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: New loop unroller broken?


Hello,

> On Jan 22, 2004, at 10:53 AM, Andrew Pinski wrote:
> >On Jan 22, 2004, at 10:47, Ulrich Weigand wrote:
> >
> >>void test(float *data, float d)
> >>{
> >>   int i;
> >>   for (i = 0; i < 8; i++)
> >>      data[i] = d;
> >>}
> >>
> >>because of
> >>'Unable to prove that the loop iterates constant times'
> >>which strikes me as somewhat odd.
> >>
> >>Is this the same on other platforms?  Any ideas how to fix
> >>this (or how to debug it)?
> >
> >Yes I see this also on PPC because of the doloop optimizations.
> >I do know that this was fixed on rtlopt branch though but I do not
> >when it is going to be fixed.
> 
> Incidentally, my quick analysis was that the problem is caused by
> doing doloop analysis before unrolling, instead of after as the old
> unroller did.  Why was this choice made?

because the doloop optimization is a part of the old loop optimizer, so
it must be run before the new loop unrolling pass.  I know about this
problem for some time, but I never got to fixing it (mainly because I
consider the current state temporary, as the need for completely new loop
optimizer is obvious).

Zdenek


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