RE: solved: {un}likely macros?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Double logical negation is the simplest way of doing:
if(x)
	x=1;
which is limiting the value of x to either 0 or 1.

HTH

Thanks & regards,
Suvidh Mathur

-----Original Message-----
From: Borislav Petkov [mailto:petkov@uni-muenster.de] 
Sent: Thursday, July 01, 2004 1:20 PM
To: kernelnewbies@nl.linux.org
Subject: solved: {un}likely macros?

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thursday 01 July 2004 09:35, Borislav Petkov wrote:
> Hi there people,
> first of all i would like to thank everybody for their help in
figuring out
> the yesterday's asm oneliner. I have another q, though :)
> The kernel extensively uses these macros.
<snip>

Forget it, i found it in the gcc manual. It uses a builtin function in
gcc to 
do better branch prediction, so when we do likely(x), we actually do 
__builtin_expect(!!(x),1) which means that it is likely that x is true,
i.e., 
x == 1 and the code after it is (more :)) likely to get executed so that
the 
branch prediction algorithm in the processor runs faster.

However, what's with the double negation of x - !!(x)?

Regards,
Boris.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFA48IhiBySr3Fn37QRAupkAJ9M4k9+aHvoFd1l/dI0G8WjuWwCZwCdHPca
B6CBl89LoMsmc5C3w1P2LPI=
=gOCR
-----END PGP SIGNATURE-----

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux