diff options
author | John McCall <rjmccall@apple.com> | 2011-05-28 07:45:59 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2011-05-28 07:45:59 +0000 |
commit | 046c47e970369dbe3e74ad4a992e7ab0512939bc (patch) | |
tree | f785721a28290a309aeb6b23e2089da6e73ad126 /llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp | |
parent | 375dcc9ec9d6000b3c6436b2fbe66b876251f1cf (diff) | |
download | bcm5719-llvm-046c47e970369dbe3e74ad4a992e7ab0512939bc.tar.gz bcm5719-llvm-046c47e970369dbe3e74ad4a992e7ab0512939bc.zip |
Implement and document the llvm.eh.resume intrinsic, which is
transformed by the inliner into a branch to the enclosing landing pad
(when inlined through an invoke). If not so optimized, it is lowered
DWARF EH preparation into a call to _Unwind_Resume (or _Unwind_SjLj_Resume
as appropriate). Its chief advantage is that it takes both the
exception value and the selector value as arguments, meaning that there
is zero effort in recovering these; however, the frontend is required
to pass these down, which is not actually particularly difficult.
Also document the behavior of landing pads a bit better, and make it
clearer that it's okay that personality functions don't always land at
landing pads. This is just a fact of life. Don't write optimizations that
rely on pushing things over an unwind edge.
llvm-svn: 132253
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp')
0 files changed, 0 insertions, 0 deletions