[PATCH] Make PrologEpilogInserter save/restore all callee saved registers in functions which call __builtin_unwind_init()

Derek Schuff dschuff at google.com
Thu Jun 13 14:09:40 PDT 2013


Attached is a patch which makes PEI::calculateCalleeSavedRegisters
save/restore all callee saved registers (even those which are not used) in
functions which call __builtin_unwind_init().
__builtin_unwind_init() is an undocumented gcc intrinsic which has this
effect, and is used in libgcc_eh.

This should fix PR8541.

I say "should" because I haven't yet investigated all the relevant details
of __builtin_eh_return, but it does fix some problems that we have seen
which are similar to that described in the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130613/31eccaca/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: csr_unwind.diff
Type: application/octet-stream
Size: 3766 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130613/31eccaca/attachment.obj>


More information about the llvm-commits mailing list