From: "Alexander van Heukelum" <heukelum@fastmail.fm>
To: "Andi Kleen" <andi@firstfloor.org>,
"Alexander van Heukelum" <heukelum@mailshack.com>
Cc: "Ingo Molnar" <mingo@elte.hu>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86: always_inline wrapper for x86's test_bit
Date: Sun, 13 Apr 2008 20:03:51 +0200 [thread overview]
Message-ID: <1208109831.1489.1247631595@webmail.messagingengine.com> (raw)
In-Reply-To: <87hce5wv2h.fsf@basil.nowhere.org>
On Sun, 13 Apr 2008 18:58:30 +0200, "Andi Kleen" <andi@firstfloor.org>
said:
> Alexander van Heukelum <heukelum@mailshack.com> writes:
>
> > On x86, test_bit is currently implemented as a preprocessor macro. It
> > uses gcc's __builtin_constant_p to determine if the bit position is
> > known at compile time and defers to one of two functions depending
> > on that. This changes the same logic to an __always_inline wrapper
> > instead.
>
> Some old gccs didn't support __builtin_constant_p in inline properly,
> that is why it was always written in macros.
>
> Please double check with the oldest still supported gcc (3.2) if it
> really generates the expected code for the constant/non constant case.
Hi Andi,
I have googled, but the only problem I found was concerning dead code
elimination, and in particular references to unavailable object from
code that was expected to be discarded. The worst that can happen in
this case is that gcc might produce a strange construction where a
runtime check will choose between the two alternative implementations of
test_bit. Another is that it will select the 'wrong' implementation.
Both will result is some code-bloat, but at least the code should work
properly.
I have not checked with 3.2. The oldest compiler I have available here
is 3.3. That version compiles the functions as expected: I have found
instances of either type in the objdump and I have not found strange
constructions with both types there.
If you were thinking of another/bigger problem with gcc-3.2, could you
please give me a pointer?
Greetings,
Alexander
> -Andi
--
Alexander van Heukelum
heukelum@fastmail.fm
--
http://www.fastmail.fm - Or how I learned to stop worrying and
love email again
next prev parent reply other threads:[~2008-04-13 18:04 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-13 11:23 Alexander van Heukelum
2008-04-13 16:58 ` Andi Kleen
2008-04-13 18:03 ` Alexander van Heukelum [this message]
2008-04-13 18:16 ` Andi Kleen
2008-04-14 12:24 ` Alexander van Heukelum
2008-04-14 12:28 ` Ingo Molnar
2008-04-14 12:34 ` Andi Kleen
2008-04-14 7:52 ` Ingo Molnar
2008-04-14 13:49 ` Alexander van Heukelum
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=1208109831.1489.1247631595@webmail.messagingengine.com \
--to=heukelum@fastmail.fm \
--cc=andi@firstfloor.org \
--cc=heukelum@mailshack.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome