<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
Andy,<div>           I think we are in complete agreement !</div><div><br></div><div><br></div><div>My admittedly superficial reading of the "Structured Exception Handling" patent lead me to believe that</div><div>non-connected control-flow was part of that design, and I am always worrying that folks are trying to leverage</div><div>off that design, so I am always trying to emphasize that that concept is incompatible with modern optimization</div><div>theory and practice.</div><div><br></div><div><br></div><div>-Peter.</div><div><br></div><div><br></div><div><br><div><div>On May 18, 2011, at 9:27 AM, Andrew Trick wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><div>On May 18, 2011, at 8:35 AM, Peter Lawrence wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "> Renato,<div>               I agree with what Andrew said, but would have worded it differently. All optimizers (that</div><div>I am aware of) require explicit control flow, so things like exception-throwing-divide-instructions</div><div>need to be converted into IR that are Block-Terminators.  Andrew was explaining how this is</div><div>a non-performance issue in practice, I am explaining how this is a requirement of how optimizer</div><div>are implemented in practice.</div><div><br></div><div>-Peter Lawrence.</div></div></blockquote><div><br></div><div>Thanks for the clarification, Peter. I was trying to convey two main points: </div><div>1) Optimizers require explicit control flow, which is not a limitation because it's easy to optimize across branches (calls and merges are hard to handle).</div><div>2) Codegen can convert control flow to trapping instructions, but it's seldom worthwhile.</div><div><br></div><div>-Andy</div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><div>On May 18, 2011, at 1:34 AM, <a href="mailto:llvmdev-request@cs.uiuc.edu">llvmdev-request@cs.uiuc.edu</a> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Monaco" size="3" style="font: 12.0px Monaco">On 18 May 2011 03:10, Andrew Trick <<a href="mailto:atrick@apple.com">atrick@apple.com</a>> wrote:</font></div> <blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 10px; "><font face="Monaco" size="3" style="font: 12.0px Monaco">This sounds like something that came out of a brainstorming session then snuck into the project requirements when it's really a separate issue. I think you can safely ignore it.</font></div> </blockquote><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Monaco" size="3" style="font: 12.0px Monaco">Ah, great! It was something someone asked about and I've only heard</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Monaco" size="3" style="font: 12.0px Monaco">"don't worry about it" but never heard a full explanation, until now!</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Monaco" size="3" style="font: 12.0px Monaco">;)</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 12px/normal Monaco; min-height: 16px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Monaco" size="3" style="font: 12.0px Monaco">Thanks!</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Monaco" size="3" style="font: 12.0px Monaco">--renato</font></div> </blockquote></div><br></div></div>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></blockquote></div><br></div></body></html>