[llvm] r251113 - [CodeGen] Mark setjmp/catchret MBBs address-taken

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 16 09:24:42 PST 2015


On Thu, Nov 12, 2015 at 12:48 PM, Andy Ayers <andya at microsoft.com> wrote:

> Someday I’d like to understand this “epilog constraint” better, since our
> own compilers happily shrink wrap on x64 (via chained unwind).
>
>
>
> However, this day may be a ways off....
>
>
>
> First LLILC has to get to the point where we want to shrink wrap, and then
> we have to see if CoreCLR can handle it.
>
>
>
> I see a fair number of cases coming from C# code where it looks like
> shrink wrapping should be a win.
>

It shouldn't be hard to overcome this, I just noticed that we generate code
like this with shrink wrapping enabled:
        popq    %rbx
        movl    %esi, %eax  ; <-- I believe not allowed by win64 epilogue
rules
        retq

We would have to arrange for the copy into eax to come before we started
popping registers. Not impossible, just beyond what Quentin wants to handle
today.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151116/2fb8fb4e/attachment.html>


More information about the llvm-commits mailing list