Add more DWARF 5 language constants.
[oota-llvm.git] / lib / CodeGen / WinEHPrepare.cpp
index b5f8463b896d026c10a11c5ada3d9694c8d65911..c608bb0a31e9f235b918cf67acf16af88eba5e73 100644 (file)
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/Analysis/LibCallSemantics.h"
 #include "llvm/IR/Function.h"
+#include "llvm/IR/IRBuilder.h"
 #include "llvm/IR/Instructions.h"
-#include "llvm/IR/Intrinsics.h"
 #include "llvm/Pass.h"
-#include "llvm/Target/TargetLowering.h"
+#include <memory>
+
 using namespace llvm;
 
 #define DEBUG_TYPE "winehprepare"
 
 namespace {
 class WinEHPrepare : public FunctionPass {
-  FunctionPass *DwarfPrepare;
+  std::unique_ptr<FunctionPass> DwarfPrepare;
 
 public:
   static char ID; // Pass identification, replacement for typeid.
   WinEHPrepare(const TargetMachine *TM = nullptr)
-      : FunctionPass(ID), DwarfPrepare(createDwarfEHPass(TM)) {
-    initializeDominatorTreeWrapperPassPass(*PassRegistry::getPassRegistry());
-  }
+      : FunctionPass(ID), DwarfPrepare(createDwarfEHPass(TM)) {}
 
   bool runOnFunction(Function &Fn) override;
 
@@ -82,7 +81,7 @@ bool WinEHPrepare::runOnFunction(Function &Fn) {
   if (!isMSVCPersonality(Pers))
     return DwarfPrepare->runOnFunction(Fn);
 
-  // FIXME: Cleanups are unimplemented. Replace them with calls to @llvm.trap.
+  // FIXME: Cleanups are unimplemented. Replace them with unreachable.
   if (Resumes.empty())
     return false;