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/ |
next prev parent 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.