This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Re-run of loop pass
[ Rerunning loop optimisation pass ... ]
On Sun, Oct 18, 1998 at 01:14:51AM -0600, Jeffrey A Law wrote:
> We've generally gotten better code.
> Not lately, as far as I can tell.
>
> It was originally put in because it helped Fortran
> identify more GIVs -- probably just due to damebramage
> wrt move_movables. The bits I've looked at since this
> spring's loop enhancements did not show an improvement
> from re-running loop.
>
> Toon should probably comment on this.
Well, I'd love to, but since over a week the CVS'd snapshot builds
die over here when compiling _bb during stage 2. (Note that that is
using the stage 2 compiler, so probably this one is miscompiled by
the stage 1 compiler).
The interesting thing about loop unrolling in this context is, that
we deliberately moved it to *after* the second loop opt phase
because it suffered badly from GIVs resulting from loop unrolling
being found and reduced by the second loop opt pass. Now that GIV
combining is in full force, this might not be necessary anymore:
DO I = 1, N, 4
X(I ) = X(I ) + Y(I )
X(I+1) = X(I+1) + Y(I+1)
X(I+2) = X(I+2) + Y(I+2)
X(I+3) = X(I+3) + Y(I+3)
ENDDO
would previously lead to 8 registers being used for addressing,
against 2 now.
Cheers,
Toon.