This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: How to stop gcc from not calling noinline functions
- From: "Dave Korn" <dave dot korn at artimi dot com>
- To: "'Hans-Peter Nilsson'" <hans-peter dot nilsson at axis dot com>, <bonzini at gnu dot org>
- Cc: <gcc at gcc dot gnu dot org>
- Date: Mon, 14 Jan 2008 11:26:33 -0000
- Subject: RE: How to stop gcc from not calling noinline functions
- References: <47889377.7020605@gnu.org> (message from Paolo Bonzini on Sat, 12 Jan 2008 11:16:23 +0100) <200801141103.m0EB3AGF018446@ignucius.se.axis.com>
On 14 January 2008 11:03, Hans-Peter Nilsson wrote:
>> Date: Sat, 12 Jan 2008 11:16:23 +0100
>> From: Paolo Bonzini <bonzini@gnu.org>
>
>>> (Yeah, new attributes "impure" and/or "nonconst" would solve
>>> this, but only for IPA and there's already the existing option
>>> and asm I mentioned. And if you say different files/compilation
>>> units, I say LTO.)
>>
>> I think the asm is your best bet.
>
> I prefer not to bet at all. ;)
>
> Let's make this:
> asm ("");
> (asms without input and output operands are volatile, and we're
> also leaving the text empty) in the called function the
> promised, documented way to stop interfunction analysis (like
> currently const/pure) making calls "as it used to be". Not all
> targets support "weak", and overloading a standard qualifier
> like "volatile" or "extern" seems on second thought too brittle.
>
> brgds, H-P
If you wanted to stick to standard C, you could surely force it with a call
through function pointer, perhaps? (You might need to make it volatile to
fool IPA.)
cheers,
DaveK
--
Can't think of a witty .sigline today....