<div dir="ltr"><div><div><div>These should be covered during the link time optimisations.<br><br></div>Look here for gcc: <a href="http://gcc.gnu.org/wiki/LinkTimeOptimization">http://gcc.gnu.org/wiki/LinkTimeOptimization</a><br>
<br></div>And here for Visual Studio : <a href="http://msdn.microsoft.com/en-us/library/xbf3tbeh.aspx">http://msdn.microsoft.com/en-us/library/xbf3tbeh.aspx</a><br><br></div>Cheers<br>Pankaj<br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On 14 February 2014 23:24, atarob <span dir="ltr"><<a href="mailto:nginx-forum@nginx.us" target="_blank">nginx-forum@nginx.us</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> On Friday, February 14, 2014 04:59:26 PM atarob wrote:<br>
> > Looking through the codebase, I see a lot of very short helper like<br>
> > functions that are defined in .c files with prototypes in .h files.<br>
> This<br>
> > means that the compiler cannot inline them outside of that .c file.<br>
> > Am I<br>
> > wrong?  How is that not a performance hit?<br>
<br>
> I suppose they will be inlined at -O2 level:<br>
> <a href="http://linux.die.net/man/1/gcc" target="_blank">http://linux.die.net/man/1/gcc</a><br>
><br>
<br>
Think about it. -O2 is a compiler flag. Optimization happens at compile<br>
time. NOT at link time. If the function is defined in another .c file, how<br>
can the compiler, which compiles on .c file at a time, possibly have access<br>
to the definition, let alone inline it. That's why we put inline function<br>
that are supposed to be called by other .c files in a .h file. Am I wrong?<br>
<br>
Ata.<br>
<br>
Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?2,247575,247582#msg-247582" target="_blank">http://forum.nginx.org/read.php?2,247575,247582#msg-247582</a><br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div><br></div>