Date: Sat, 13 Mar 2010 13:47:36 +0000 (GMT) From: Robert Watson <rwatson@FreeBSD.org> To: Bruce Evans <brde@optusnet.com.au> Cc: Max Laier <max@love2party.net>, freebsd-arch@freebsd.org Subject: Re: likely and unlikely Message-ID: <alpine.BSF.2.00.1003131346270.51476@fledge.watson.org> In-Reply-To: <20100313200155.O22734@delplex.bde.org> References: <hndbed$vok$1@dough.gmane.org> <20100312122559.GU8200@hoeg.nl> <20100312124258.GE1738@mole.fafoe.narf.at> <201003121513.38721.max@love2party.net> <20100313200155.O22734@delplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 13 Mar 2010, Bruce Evans wrote: >> My point is: Handle with care!!! Trust your compiler/CPU predictors/... - >> most of the time, they are smarter than you are ;) > > These macros may have useful 15-25 years ago for i386, i486 and Pentium1, > since CPU branch predictors were either nonexistent or not so good. After > that, CPU branch predictors became quite good. The macros should have been > mostly unused 15-25 years ago too, since they optimize for unreadability and > unwritability. Fortunately they are rarely used in FreeBSD. They were > imported from NetBSD in 2003 where they are used more (306 instances in 2005 > NetBSD /sys vs 28 instances in 2004 FreeBSD /sys; there are 2208 instances > of likely() in 2004 linux-2.6.10). I think it would be reasonable to expect that people deploy branch prediction macros (as with prefetch, etc) only where there's specific measurements that indicate they are important to have there -- at the very least, pmc data, but ideally also benchmarking data. Robert N M Watson Computer Laboratory University of Cambridge
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1003131346270.51476>