<div dir="ltr">Just wanted to confirm that I too like where this is going. =] I think Philip and others have really handled the bulk of the review, and I'm very comfortable with them finishing the patch review.<div><br></div><div>One issue where I wanted to chime in, hopefully just to add some clarity, is the "readonly" vs operand bundle set of (interrelated) issues.</div><div><br></div><div>First, as I think Philip already said, I think it is important that a readonly or a readnone attribute on a call is absolute. Optimizations shouldn't have to go look for an operand bundle. Instead, we should prevent the call-side attributes from being added.</div><div><br></div><div>I think there may be a separate way of specifying all of this that makes things clearer. Operand bundles imply that when lowering, the call may be wrapped with a call to an external function before and/or after the called function, with the bundled operands escaped into those external functions which may capture, etc.</div><div><br></div><div>This both gives you the escape semantics, and it gives you something else; the runtime function might not return! That should (I think) exactly capture the semantic issue you were worried about with deopt. Because control may never reach the called function, or may never return to the caller even if the callee returns, code motion of side-effects would be clearly prohibited.</div><div><br></div><div>Does this make sense as an approach to specifying things? (Or worse, are you already there, and I'm just arriving late to the party?)</div><div><br></div><div>-Chandler</div><div><br><div class="gmail_quote"><div dir="ltr">On Fri, Aug 28, 2015 at 4:42 PM Sanjoy Das via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Initial set of patches are up for review at:<br>
<br>
<a href="http://reviews.llvm.org/D12455" rel="noreferrer" target="_blank">http://reviews.llvm.org/D12455</a><br>
<a href="http://reviews.llvm.org/D12456" rel="noreferrer" target="_blank">http://reviews.llvm.org/D12456</a><br>
<a href="http://reviews.llvm.org/D12457" rel="noreferrer" target="_blank">http://reviews.llvm.org/D12457</a><br>
<br>
Thanks,<br>
-- Sanjoy<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div></div>