From owner-freebsd-arch@FreeBSD.ORG Thu Mar 18 22:25:30 2010 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D036106566B; Thu, 18 Mar 2010 22:25:30 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from mrout2-b.corp.re1.yahoo.com (mrout2-b.corp.re1.yahoo.com [69.147.107.21]) by mx1.freebsd.org (Postfix) with ESMTP id C9C828FC17; Thu, 18 Mar 2010 22:25:29 +0000 (UTC) Received: from [IPv6:::1] (proxy10.corp.re1.yahoo.com [69.147.105.206]) by mrout2-b.corp.re1.yahoo.com (8.13.8/8.13.8/y.out) with ESMTP id o2IMEn36080258; Thu, 18 Mar 2010 15:14:50 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v1077) Content-Type: text/plain; charset=us-ascii From: Scott Long In-Reply-To: <20100318.161117.658811636873842325.imp@bsdimp.com> Date: Thu, 18 Mar 2010 16:14:49 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201003121513.38721.max@love2party.net> <20100313200155.O22734@delplex.bde.org> <20100318.161117.658811636873842325.imp@bsdimp.com> To: "M. Warner Losh" X-Mailer: Apple Mail (2.1077) Cc: max@love2party.net, rwatson@freebsd.org, freebsd-arch@freebsd.org Subject: Re: likely and unlikely X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Mar 2010 22:25:30 -0000 On Mar 18, 2010, at 4:11 PM, M. Warner Losh wrote: > In message: > Robert Watson writes: > :=20 > : On Sat, 13 Mar 2010, Bruce Evans wrote: > :=20 > : >> 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). > :=20 > : 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. >=20 > They are more useful on architectures where you have branches that > tell the CPU if they are likely or unlikely to be taken... >=20 And that's a very good point, one that Bruce really failed to address. = Not only is branch prediction useful for MIPS and ARM, I suspect that it's also = useful for Atom. Scott