svn commit: r187251 - head/sys/mips/malta

M. Warner Losh imp at bsdimp.com
Thu Jan 15 16:57:28 PST 2009


In message: <496FC32F.3040104 at FreeBSD.org>
            Maxim Sobolev <sobomax at FreeBSD.org> writes:
: Christoph Mallon wrote:
: > Alexey Dokuchaev schrieb:
: >> On Wed, Jan 14, 2009 at 07:05:27PM -0700, M. Warner Losh wrote:
: >>> In message: <20090115020752.52566769.stas at FreeBSD.org>
: >>>             Stanislav Sedov <stas at FreeBSD.org> writes:
: >>> : > +        shift = 8 * (reg & 3);
: >>> : >  : : Would it make sense to replace this with
: >>> : > +        shift = (reg & 3) << 3;
: >>> : : to not rely on possible compiler optimizations?
: >>>
: >>> I don't think that it matters all that much these days...
: >>
: >> But the name "shift" kinda suggests << instead of *, no?
: > 
: > The value *is* a shift amount (see its uses a few lines down). Its name 
: > does not imply the way it is calculated, but what it is used for.
: > 
: > BTW: Even the most cheap compilers emit shift instructions for 
: > multiplication by a power of two. The new code also is clearly faster 
: > then the old - quite some code gets generated for switches.
: 
: I believe Warner's point is that the code is not in the hot path, so 
: that it should not really matter either way.

The code is clear the way it is, there's little reason to
hyper-optimize this path in the face of bogus compiler optimizations
or not, and the effort to optimize the hot-path should be aided by
dtrace or kernel profiling rather than reading the code.

Warner


More information about the svn-src-all mailing list