loop optimized in 4.7.2, not in 4.8.1?

Oliver Kullmann O.Kullmann@swansea.ac.uk
Sun Aug 11 09:42:00 GMT 2013


Hi Anthony,

> > On Sat, Aug 10, 2013 at 06:06:26PM -0600, Anthony Foiani wrote:
> > > They noticed that their earlier compiler (4.6.3 -O3) successfully
> > > reduced the loop, while 4.8.1 didn't.
> 
> > For general enligthenment, could you quickly explain what "reduce
> > the loop" means? One can of course just get rid off the loop,
> > precomputing sum, 
> 
> That's exactly what I meant.  Apologies for not knowing the correct
> phrasing.
>

Aha, interesting, that gcc was at some point capable of doing such an
optimisation.

I have checked here versions 4.7.1 and 4.7.3, and for both the run-times
are as shown (so the loop was not eliminated).

> > which is, at least for me, an unexpected difference? (I would have
> > assumed that, if there is a difference, then Index=UInt should be
> > faster.)
> 
> Seeing only a 15% difference, you probably want to run it multiple
> times and average out the values.
> 

What I've shown you was already the "typical case" (timing is very
stable).

> Intuitively, I agree that the unsigned loop variable should be faster,
> but I have no idea what's actually going on behind the scenes there.
> 

Could somebody shed light on this? 15% is a large difference.

Oliver



More information about the Gcc-help mailing list