Re-run of loop pass
Toon Moene
toon@moene.indiv.nluug.nl
Thu Oct 22 21:15:00 GMT 1998
[ 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.
More information about the Gcc
mailing list