diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-07-01 21:00:00 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-07-01 21:00:00 +0000 |
commit | eb11c41900a4110ad8f1f088eabab5a57f53a1f4 (patch) | |
tree | f48da955d7b3dcc93c66e026f1d9973ddcfbb550 /clang/lib/CodeGen/CodeGenFunction.h | |
parent | 6511c8bb9a7edb0f973b7ba5ca47f4ff049b1bc8 (diff) | |
download | llvm-eb11c41900a4110ad8f1f088eabab5a57f53a1f4.zip llvm-eb11c41900a4110ad8f1f088eabab5a57f53a1f4.tar.gz llvm-eb11c41900a4110ad8f1f088eabab5a57f53a1f4.tar.bz2 |
[SEH] Delete the 32-bit IR lowering for __finally blocks and use x64
32-bit finally funclets are intended to be called both directly from the
parent function and indirectly from the EH runtime. Because we aren't
contorting LLVM's X86 prologue to match MSVC's, calling the finally
block directly passes in a different value of EBP than the one that the
runtime provides. We need an adapter thunk to adjust EBP to the expected
value. However, WinEHPrepare already has to solve this problem when
cleanups are not pre-outlined, so we can go ahead and rely on it rather
than duplicating work.
Now we only do the llvm.x86.seh.recoverfp dance for 32-bit SEH filter
functions.
llvm-svn: 241187
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index a587f00..2ba893e 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -324,14 +324,6 @@ public: /// write the current selector value into this alloca. llvm::AllocaInst *EHSelectorSlot; - /// Entering and leaving an SEH __try / __finally scope causes stores to this - /// slot. - llvm::Value *ChildAbnormalTerminationSlot = nullptr; - - /// The SEH __abnormal_termination() intrinsic lowers down to loads from this - /// slot from a parent function. - llvm::Value *AbnormalTerminationSlot = nullptr; - /// A stack of exception code slots. Entering an __except block pushes a slot /// on the stack and leaving pops one. The __exception_code() intrinsic loads /// a value from the top of the stack. |