All of lore.kernel.org
 help / color / mirror / Atom feed
From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: Convert BUG() to use unreachable()
Date: Wed, 16 Dec 2009 14:58:49 +0100	[thread overview]
Message-ID: <20091216135849.GC3674@pengutronix.de> (raw)
In-Reply-To: <4B213627.5000007@caviumnetworks.com>

Hallo,

On Thu, Dec 10, 2009 at 09:55:51AM -0800, David Daney wrote:
> Russell King - ARM Linux wrote:
>> On Tue, Dec 08, 2009 at 10:55:38AM +0100, Uwe Kleine-K?nig wrote:
>>> Use the new unreachable() macro instead of for(;;);
>>
>> Have you investigated what effect this has on generated code?
>
> Yes.
>
> Pre GCC-4.5 the generated code should be identical as 'unreachable()'  
> just expands to 'for(;;);' in this case.
>
> Post GCC-4.5 the generated code should be smaller.
I don't have a toolchain using gcc 4.5.

What should we do with this patch?  I think in theory the patch is OK.
And for pre gcc-4.5 it should not make any difference as we have in
include/linux/compiler-gcc4.h:

#if __GNUC_MINOR__ >= 5
...
#define unreachable() __builtin_unreachable()
#endif

and in include/linux/compiler.h:

#ifndef unreachable
# define unreachable() do { } while (1)
#endif

So the only impact if that

	do { } while (1)

is used instead of

	for(;;)

.  My toolchain (based on 4.3.2) produces the same object files with and
without the patch.

Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-K?nig            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |

WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: David Daney <ddaney@caviumnetworks.com>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ARM: Convert BUG() to use unreachable()
Date: Wed, 16 Dec 2009 14:58:49 +0100	[thread overview]
Message-ID: <20091216135849.GC3674@pengutronix.de> (raw)
In-Reply-To: <4B213627.5000007@caviumnetworks.com>

Hallo,

On Thu, Dec 10, 2009 at 09:55:51AM -0800, David Daney wrote:
> Russell King - ARM Linux wrote:
>> On Tue, Dec 08, 2009 at 10:55:38AM +0100, Uwe Kleine-König wrote:
>>> Use the new unreachable() macro instead of for(;;);
>>
>> Have you investigated what effect this has on generated code?
>
> Yes.
>
> Pre GCC-4.5 the generated code should be identical as 'unreachable()'  
> just expands to 'for(;;);' in this case.
>
> Post GCC-4.5 the generated code should be smaller.
I don't have a toolchain using gcc 4.5.

What should we do with this patch?  I think in theory the patch is OK.
And for pre gcc-4.5 it should not make any difference as we have in
include/linux/compiler-gcc4.h:

#if __GNUC_MINOR__ >= 5
...
#define unreachable() __builtin_unreachable()
#endif

and in include/linux/compiler.h:

#ifndef unreachable
# define unreachable() do { } while (1)
#endif

So the only impact if that

	do { } while (1)

is used instead of

	for(;;)

.  My toolchain (based on 4.3.2) produces the same object files with and
without the patch.

Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |

  reply	other threads:[~2009-12-16 13:58 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-08  9:55 [PATCH] ARM: Convert BUG() to use unreachable() Uwe Kleine-König
2009-12-08  9:55 ` Uwe Kleine-König
2009-12-08 17:07 ` David Daney
2009-12-10 17:50 ` Russell King - ARM Linux
2009-12-10 17:50   ` Russell King - ARM Linux
2009-12-10 17:55   ` David Daney
2009-12-16 13:58     ` Uwe Kleine-König [this message]
2009-12-16 13:58       ` Uwe Kleine-König
2009-12-17 15:01 ` Jamie Lokier
2009-12-17 15:01   ` Jamie Lokier
2009-12-17 17:09   ` David Daney
2009-12-17 17:17     ` Richard Guenther
2009-12-17 17:17       ` Richard Guenther
2009-12-17 18:17       ` Russell King - ARM Linux
2009-12-17 18:17         ` Russell King - ARM Linux
2009-12-17 18:35         ` Joe Buck
2009-12-17 18:35           ` Joe Buck
2009-12-17 19:06           ` Russell King - ARM Linux
2009-12-17 19:06             ` Russell King - ARM Linux
2009-12-17 19:14             ` Joe Buck
2009-12-17 19:14               ` Joe Buck
2009-12-17 19:33               ` David Daney
2009-12-17 19:33               ` Russell King - ARM Linux
2009-12-17 19:33                 ` Russell King - ARM Linux
2009-12-17 19:38               ` Jamie Lokier
2009-12-17 19:38                 ` Jamie Lokier
2009-12-17 19:48                 ` Russell King - ARM Linux
2009-12-17 19:48                   ` Russell King - ARM Linux
2009-12-17 19:58                   ` Russell King - ARM Linux
2009-12-17 19:58                     ` Russell King - ARM Linux
2009-12-17 19:04         ` Jamie Lokier
2009-12-17 19:04           ` Jamie Lokier
2009-12-21 19:30         ` Richard Henderson
2009-12-21 19:30           ` Richard Henderson
2009-12-21 20:10           ` Russell King - ARM Linux
2009-12-21 20:10             ` Russell King - ARM Linux
2009-12-22 14:09             ` Dave Korn
2009-12-22 14:09               ` Dave Korn
2009-12-22 14:12               ` Russell King - ARM Linux
2009-12-22 14:12                 ` Russell King - ARM Linux
2009-12-22 14:49                 ` Dave Korn
2009-12-22 14:49                   ` Dave Korn
2009-12-22 11:33       ` Paolo Bonzini
2009-12-22 11:33         ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091216135849.GC3674@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.