inlining

atarob nginx-forum at nginx.us
Fri Feb 14 23:24:20 UTC 2014


> On Friday, February 14, 2014 04:59:26 PM atarob wrote:
> > Looking through the codebase, I see a lot of very short helper like
> > functions that are defined in .c files with prototypes in .h files.
> This
> > means that the compiler cannot inline them outside of that .c file.
> > Am I
> > wrong?  How is that not a performance hit?

> I suppose they will be inlined at -O2 level:
> http://linux.die.net/man/1/gcc
> 

Think about it. -O2 is a compiler flag. Optimization happens at compile
time. NOT at link time. If the function is defined in another .c file, how
can the compiler, which compiles on .c file at a time, possibly have access
to the definition, let alone inline it. That's why we put inline function
that are supposed to be called by other .c files in a .h file. Am I wrong?

Ata.

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,247575,247582#msg-247582



More information about the nginx mailing list