Messages in this thread | | | Date | Wed, 28 May 2008 22:00:57 +0200 | From | Sam Ravnborg <> | Subject | Re: optimizing out inline functions |
| |
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 > question. I see two ways that people try to let the compiler optimize > out unused code and would like to know which is preferred. The first > example uses an empty inline function and trusts the compiler will > optimize it out. > > #ifdef CONFIG_DEBUG_SOMETHING > static inline void some_debug_function(var1) > { > something = var1; > printk(some debug text); > } > #else > static inline void some_debug_function(var1) > { > /* empty function */ > } > #endif
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.
Sam
| |