On Tue, 2009-06-02 at 16:56 -0400, Christopher Montgomery wrote:

> > As far as I know pretty much any compiler out there should be able to
> > replace a modulo by a power-of-2 constant by the bit-wise AND operation
> > without us explicitly doing so (see also
> > http://en.wikipedia.org/wiki/Modulo_operation#Performance_issues). So
> > for the benefit of readable code I suggest that we keep the code as it
> > is.
> Interesting.  I got a noticable and repeatable performance benefit.
> Which is not to say I haven't somehow mismeasured it.  I agree the
> modulo is more readable.
> ...perhaps the difference is the difference of (x) or (y) possibly
> being negative and additional conformance-related assembly getting
> generated? I suppose there's no reason to speculate, I'll go read the
> assembly gcc generates and that will answer everything, at least for
> me.

I might very well be wrong here. If there's indeed a difference in the
generated assembly and a noticeable performance benefit, than let's use
the optimized macro. But perhaps we can add a short comment there
explaining that ((y) & (TILE_HEIGHT-1)) is equivalent to ((y) %
TILE_HEIGHT). Not everyone reading this code will be aware of this


Gimp-developer mailing list

Reply via email to