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

David Majnemer david.majnemer at gmail.com
Thu Apr 30 16:48:09 PDT 2015


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


================
Comment at: lib/Target/X86/X86WinEHState.cpp:132
@@ +131,3 @@
+
+  F.dump();
+
----------------
Debug leftovers?

================
Comment at: lib/Target/X86/X86WinEHState.cpp:143
@@ +142,3 @@
+///     EHRegistrationNode *Next;
+///     EXCEPTION_DISPOSITION (*Handler)(...);
+///   };
----------------
We could be more specific, I believe it is a `PEXCEPTION_ROUTINE`.

================
Comment at: lib/Target/X86/X86WinEHState.cpp:173
@@ +172,3 @@
+  };
+  CXXEH3RegistrationTy = StructType::create(FieldTys, "CXXExceptionRegistration");
+  return CXXEH3RegistrationTy;
----------------
clang-format?

================
Comment at: lib/Target/X86/X86WinEHState.cpp:181
@@ +180,3 @@
+///     void *ScopeTable;
+///     int32_t TryLevel
+///   };
----------------
The other fields trailed with a ';', what format do you want to use?

================
Comment at: lib/Target/X86/X86WinEHState.cpp:197
@@ +196,3 @@
+/// The _except_handler4 registration node:
+///   EH4ExceptionRegistration {
+///     void *SavedESP
----------------
The other pseudo-types started with 'struct'.  We should be consistent and have all of them or none of them start with it.

http://reviews.llvm.org/D9422

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






More information about the llvm-commits mailing list