<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 6 March 2014 18:09, Mark Seaborn <span dir="ltr"><<a href="mailto:mseaborn@chromium.org" target="_blank">mseaborn@chromium.org</a>></span> wrote:<br>
<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 dir="ltr"><div class="gmail_extra"><div class="gmail_quote">
LowerAtomic "lowers atomic intrinsics to non-atomic form for use in a known non-preemptible environment".  LowerInvoke strips out exception handling by converting invokes to calls, so that landingpads, resumes, etc. become dead and can be removed by a later pass.<br>
</div><div class="gmail_quote"><div><br></div><div>(As an aside, LowerInvoke has an option for using SJLJ exception handling, but that option appears to be unused and replaced by lib/CodeGen/SjLjEHPrepare.cpp.)</div></div>
</div></div></blockquote><div><br></div><div>On that topic, should LowerInvoke's "-enable-correct-eh-support" option be removed, since it appears to be unused?  If so, I can prepare a patch.</div><div><br></div>
<div>This option lowers exception handling to setjmp/longjmp, but it uses a variable called "llvm.sjljeh.jblist" for the list of saved setjmp frames.  I've not found any code that looks at that list to implement throwing an exception.  It looks like this was replaced by SjLjEHPrepare a long time ago.</div>
<div><br></div><div>Cheers,</div><div>Mark</div><div><br></div></div></div></div>