[PATCH 0/5] Add support for GCC's __builtin_unreachable() and use it in BUG (v2.1).

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

 



Greetings Linus et al.,

From the announcement of the first version:

    Starting with version 4.5, GCC has a new built-in function called
    __builtin_unreachable().  The function tells the compiler that
    control flow will never reach that point.  Currently we trick the
    compiler by putting in for(;;); but this has the disadvantage that
    extra code is emitted for an endless loop.  For an i386 kernel
    using __builtin_unreachable() results in an defaultconfig that is
    nearly 4000 bytes smaller.

    This patch set adds support to compiler.h creating a new macro
    usable in the kernel called unreachable().  If the compiler lacks
    __builtin_unreachable(), it just expands to for(;;).


For version 2:

    I fixed a couple of checkpatch issues, and simplified the
    unreachable() macro for the pre-GCC-4.5 case (as suggested by
    Richard Henderson).  Also several Acked-by: were added.

For this version 2.1:

    I removed patches from the set for which there were no Acked-by,
    and rebased and tested against 2.6.32.

I will reply with the 5 patches.

David Daney (5):
  Add support for GCC-4.5's __builtin_unreachable() to compiler.h (v2)
  x86: Convert BUG() to use unreachable()
  MIPS: Convert BUG() to use unreachable()
  s390: Convert BUG() to use unreachable()
  avr32: Convert BUG() to use unreachable()

 arch/avr32/include/asm/bug.h  |    2 +-
 arch/mips/include/asm/bug.h   |    4 +---
 arch/s390/include/asm/bug.h   |    2 +-
 arch/x86/include/asm/bug.h    |    4 ++--
 include/linux/compiler-gcc4.h |   14 ++++++++++++++
 include/linux/compiler.h      |    5 +++++
 6 files changed, 24 insertions(+), 7 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux