[PATCH] CodeGen support for x86_64 SEH catch handlers in LLVM

Reid Kleckner rnk at google.com
Tue Nov 18 15:41:58 PST 2014


================
Comment at: include/llvm/MC/MCAsmInfo.h:50
@@ -49,2 +49,3 @@
   ItaniumWinEH, /// Itanium EH built on Windows unwind info (.pdata and .xdata)
+  MSVC,         /// MSVC compatible exception handling
 };
----------------
rjmccall wrote:
> rnk wrote:
> > rjmccall wrote:
> > > Let's not call this just "MSVC" when we know that MSVC actually uses several different schemes.
> > That's true, but this model will handle all of them. MSVC has two main EH personalites: C++ EH and SEH. Both use outlined cleanups, and this EH model will be used to trigger that outlining in the backend. The language-specific tables will key off the name of the personality function instead of this enum.
> > 
> > Maybe I could call this OutlinedWinEH or something to make it clearer that it's more of a family?
> I meant more 32-bit vs. 64-bit EH, unless you think those will be implemented by the same backend scheme.
I expect the same scheme can handle both, but I won't be 100% sure until I try. Both schemes are fundamentally similar. The difference is that 64-bit has all this extra unwind information that makes it clear that the filter expression is a first-class function.

http://reviews.llvm.org/D6300






More information about the llvm-commits mailing list