diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-03-30 22:58:10 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-03-30 22:58:10 +0000 |
commit | cde33036ed74db02088f5e3558afa33384cc4a13 (patch) | |
tree | e9f3517e12e60cb09d52aed542ba40869d8ba68b /llvm/lib/CodeGen/SelectionDAG/FastISel.cpp | |
parent | 5fe5ef9e0ecc888d17f30ff6e1b977a0ebce7fa3 (diff) | |
download | bcm5719-llvm-cde33036ed74db02088f5e3558afa33384cc4a13.tar.gz bcm5719-llvm-cde33036ed74db02088f5e3558afa33384cc4a13.zip |
[WinEH] Run cleanup handlers when an exception is thrown
Generate tables in the .xdata section representing what actions to take
when an exception is thrown. This currently fills in state for
cleanups, catch handlers are still unfinished.
llvm-svn: 233636
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/FastISel.cpp')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/FastISel.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp index 223a149924b..73061b6dc3e 100644 --- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp @@ -1079,6 +1079,13 @@ bool FastISel::selectIntrinsicCall(const IntrinsicInst *II) { // The donothing intrinsic does, well, nothing. case Intrinsic::donothing: return true; + case Intrinsic::eh_actions: { + unsigned ResultReg = getRegForValue(UndefValue::get(II->getType())); + if (!ResultReg) + return false; + updateValueMap(II, ResultReg); + return true; + } case Intrinsic::dbg_declare: { const DbgDeclareInst *DI = cast<DbgDeclareInst>(II); DIVariable DIVar(DI->getVariable()); |