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]

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.


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