[PATCH] [WinEH] Add an EH registration and state insertion pass for 32-bit x86

Reid Kleckner rnk at google.com
Thu Apr 30 17:02:25 PDT 2015


In http://reviews.llvm.org/D9422#164536, @majnemer wrote:

> What ensures that control dependence will not be violated by SDAG? Should `linkExceptionRegistration` and `unlinkExceptionRegistration` use volatile loads and stores?


First, today we don't support asynch EH, so any legal reordering of memory accesses within the block is fine. Second, if we do support asynch EH eventually, it will likely take the form of invoked intrinsics, which will have to deploy its own defense against load reordering. So, I don't think volatile is really necessary.


================
Comment at: lib/Target/X86/X86WinEHState.cpp:143
@@ +142,3 @@
+///     EHRegistrationNode *Next;
+///     EXCEPTION_DISPOSITION (*Handler)(...);
+///   };
----------------
majnemer wrote:
> We could be more specific, I believe it is a `PEXCEPTION_ROUTINE`.
I deleted the extra type information because it felt like the comment was bloated.

http://reviews.llvm.org/D9422

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list