From: Richard Henderson <rth@twiddle.net>
To: linux-kernel@vger.kernel.org, torvalds@osdl.org
Subject: __attribute__((always_inline)) fiasco
Date: Thu, 23 Sep 2004 01:47:46 -0700 [thread overview]
Message-ID: <20040923084746.GA9101@twiddle.net> (raw)
I'm displeased with someone's workaround for decisions made by
the (rather weak) inliner in gcc 3.[123]. In particular, that
someone doesn't understand all of the implications of always_inline.
This attribute was invented to handle certain cases in <altivec.h>
and <xmmintrin.h> that contain assembly instructions that require
constant arguments. These instructions *cannot* be emitted unless
the user of the function supplies a constant. Which, under normal
usage situations is not a problem -- when the user doesn't give us
a constant, we error and that's the end. But it does mean that
the compiler is specifically *not* allowed to emit an out-of-line
copy of such a function, since there is in fact no way to legally
do so.
In the Alpha port I have a number of places in which I have
functions that I would like inlined when they are called directly,
but I also need to take their address so that they may be registered
as part of a dispatch vector for the specific machine model.
This scheme fails because my functions got marked always_inline
behind my back, which means they didn't get emitted in the right
place.
Rather than fight the unwinnable fight to remove this hack entirely,
may I ask that at least one of the different names for inline, e.g.
__inline__, be left un-touched so that it can be used by those that
understand what the keyword is supposed to mean?
Of course, there does not exist a variant that isn't used by all
sorts of random code, so presumably all existing occurences would
have to get renamed to plan "inline" in order to keep people happy...
r~
next reply other threads:[~2004-09-23 8:47 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-23 8:47 Richard Henderson [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-09-23 16:26 __attribute__((always_inline)) fiasco Albert Cahalan
2004-09-23 16:50 ` William Lee Irwin III
2004-09-23 16:59 ` Albert Cahalan
2004-09-23 17:03 ` Richard Henderson
2004-09-23 17:21 ` viro
2004-09-23 17:33 ` William Lee Irwin III
2004-09-23 17:39 ` viro
2004-09-26 1:29 ` Tonnerre
2004-09-26 2:05 ` William Lee Irwin III
2004-09-30 16:19 ` Bill Davidsen
2004-09-23 16:54 ` Richard Henderson
2004-09-23 17:46 ` Albert Cahalan
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=20040923084746.GA9101@twiddle.net \
--to=rth@twiddle.net \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@osdl.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.