Hi all, For a function that is defined static but without an explicit "inline" keyword, is there a possibility that compiler will optimize it to be a static inline function? We observe that some of the functions defined as static but not "inline" in in modules are not present in kernel system table, i.e., can not be found in /proc/kallsysms. Correct me if I am wrong. Cheers, Wenda Ni, Ph.D.
On Fri, Mar 11, 2016 at 01:39:53PM -0500, Wenda Ni wrote:
Hi all,
For a function that is defined static but without an explicit "inline" keyword, is there a possibility that compiler will optimize it to be a static inline function?
Yes there is.
We observe that some of the functions defined as static but not "inline" in in modules are not present in kernel system table, i.e., can not be found in /proc /kallsysms.
The symbols do not need to be in the symbol table if they are static to the file, the compiler can just drop them as no one else needs to care about them. thanks, greg k-h
On Fri, Mar 11, 2016 at 10:47:27AM -0800, Greg KH wrote:
On Fri, Mar 11, 2016 at 01:39:53PM -0500, Wenda Ni wrote:
Hi all,
For a function that is defined static but without an explicit "inline" keyword, is there a possibility that compiler will optimize it to be a static inline function?
Yes there is.
see -finline-small-functions/-finline-functions-called-once in the gcc manual, which are enabled by -O2 but can be controlled via -finline-limit and -fkeep-inline-functions. thx! hofrat
participants (3)
-
Greg KH -
Nicholas Mc Guire -
Wenda Ni