<div dir="ltr">On Mon, Jun 17, 2013 at 10:59 AM, jahanian <span dir="ltr"><<a href="mailto:fjahanian@apple.com" target="_blank" class="cremed">fjahanian@apple.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Wouldn’t implementing this proposal be a red herring? By this I mean, it is possible that<div>
throughout the optimization phases, there is an implied assumption that all functions</div><div>are similarly optimized.</div></div></blockquote><div><br></div><div>There is no such intrinsic assumption.</div><div><br></div>
<div>The optimizer is already perfectly capable of handling these scenarios, and they already come up. Imagine LTO of a two translation units with different optimization levels. Also see the optsize attribute.</div><div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div> An example would be under certain optimization flag, compiler changes </div><div>
calling convention of static functions.</div></div></blockquote><div><br></div><div>This is always (and must always) done by a pass that looks at all of the callers together. Thus, it will be able to (and must be taught) respect any attribute on a function which is designed to turn off optimizations.</div>
<div><br></div><div>The only real challenge to this proposal is going through and teaching as much of the optimizer as possible to respect this function attribute. I don't see any really fundamentally problematic aspects to it.</div>
</div></div></div>