This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] optimizing predictable branches on x86



I hope so too. For the kernel we have some parts where
__builtin_expect is used quite a lot and noticably helps, and could
help even more if we cut down the use of cmov too. I guess on
architectures with even more predictated instructions it could be
even more useful too.
Looking at kernel's __builtin_expect usage, I think we ought to do a lot
better on taking the hints than we do now.  In particular we should
be able to derrive more from
 likely (test1||test2) and likely (test1&&test2)
and similar cases.  I will try to prepare patch for this later too.

Right now it does


  1. __b_e (a && b, 1) => __b_e (a, 1) && __b_e (b, 1)
  2. __b_e (a && b, 0) => a && __b_e (b, 0)
  3. __b_e (a || b, 1) => a || __b_e (b, 1)
  4. __b_e (a || b, 0) => __b_e (a, 0) || __b_e (b, 0)

See http://gcc.gnu.org/ml/gcc-patches/2007-07/msg00410.html

Paolo


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]