<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><br>
</span>Sure, but the code is specific enough that I'd think the missed<br>
optimizations are intentional (i.e. not just oversights):<br>
<br>
bool mayHaveSideEffects() const { return mayWriteToMemory() || mayThrow(); }<br></blockquote><div><br></div><div>FWIW: I really don't think this part is a strong argument.</div><div>There is plenty of stuff in LLVM that relies on standard pass pipelines being run to get any real optimization (IE we rely on mem2reg being run, etc). Since all of these are going to be marked nounwind anyway, ...</div><div><br></div><div>If you want to argue it's intentional, you should go with:</div><div><a href="http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20090504/077164.html">http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20090504/077164.html</a><br></div><div><br></div><div>:)</div><div><br></div><div>That said, i can find no discussion in march, april,may,or june of 2009 about this on llvm-dev either before or after it happened :(</div><div><br></div><div>(which is one reason i've pushed you so hard to do so this time - it looks like, at a glance, people have since been inconsistent about it)<br><br></div><div><br></div><div><br></div><div><br></div></div></div></div>