Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Nov 2011 14:20:15 +0000
From:      David Chisnall <theraven@FreeBSD.org>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        svn-src-head@FreeBSD.org, mdf@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Eitan Adler <eadler@FreeBSD.org>
Subject:   Re: svn commit: r227812 - head/lib/libc/string
Message-ID:  <8B1C6EE4-A351-44A6-AC8A-DC53779CD380@FreeBSD.org>
In-Reply-To: <20111122210422.E8674@besplex.bde.org>
References:  <201111220250.pAM2oPWC070856@svn.freebsd.org> <CAMBSHm8HfW-XTSk9zQda4vDmbrzyEG_vnydb5JZyHaNh2rF4gw@mail.gmail.com> <20111122210422.E8674@besplex.bde.org>

index | next in thread | previous in thread | raw e-mail

On 22 Nov 2011, at 11:21, Bruce Evans wrote:

> If this optimization were any good, then the compiler would already do
> it.  In fact, gcc-4.2.1 already does it -- the reverse of it -- it rewrites:
> 
> 	"if ((i == 0) | (j == 0)) return; test();"
> 
> into:
> 
> 	"if (i == 0 || j == 0) return; test();"

In general, I prefer | in cases where execution order does not matter because it frees the compiler up to insert branches or not, depending on which is more efficient for the target.  

In this case, either | or || is fine, because neither reads any memory or has side effects so | and || are equivalent to the compiler, but the use of | tells a human reading the code that the order is unimportant.  

David

help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8B1C6EE4-A351-44A6-AC8A-DC53779CD380>