<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div class="h5"><br>
</div></div>In general things don't get optimized across function calls, except in case of inlinable functions.<br>
<br>
And for compiler attributes it's the opposite,__attribute__((const)) and __attribute((pure)) can be used to indicate some kind of safety to optimize across functions.<br>
<br>
<a href="https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html" target="_blank">https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html</a><br>
<span class=""><font color="#888888"><br></font></span></blockquote><div>This is true, but LTO increases the compiler's ability to make these sorts of optimizations across function calls and even C source file boundaries without you needing to explicitly mark functions as such.</div></div></div></div>