Re: optimizing out inline functions

From: James Kosin
Date: Thu May 29 2008 - 09:14:43 EST


Johannes Weiner wrote:
Hi,

James Kosin <jkosin@xxxxxxxxxxxxxxxxxx> writes:

Sam Ravnborg wrote:
On Wed, May 28, 2008 at 02:51:02PM -0500, Steve French wrote:
In trying to remove some macros, I ran across another kernel style
<<--SNIP-->>
With reference to a recent thread about kconfig
I would prefer:
static inline void some_debug_function(var1)
{
if (KCONFIG_DEBUG_SOMETHING) {
something = var1;
printk(some debug text);
}
}


But we do not have KCONFIG_DEBUG_SOMETHING available
so the second best is to use an empty function
to keep the typechecking in place.

IIRC gcc optimize both away.
Another way would be to have:

static inline void some_debug_function(var1)
{
#ifdef KCONFIG_DEBUG_SOMETHING
something = var1;
printk(some debug text);
#endif
}

BUT, this probably violates some styling rules.

Without indenting the ifdefs, I think this solution is the best.

It gives you the advantages of type checking but saves a superfluous
prototype.

Hannes

Actually, Joe Perches, gave a good reason for using the MACRO #define method; so, this could really turn into an interesting discussion.
Pros and Cons are always interesting when there is more than one way to do something.

James

Attachment: signature.asc
Description: OpenPGP digital signature