Give SplitBlockAndInsertIfThen the ability to update a domtree.
[oota-llvm.git] / include / llvm / Transforms / Utils / UnifyFunctionExitNodes.h
index 598adfc0bce01bf6a940f9cdc0869b1451ee35db..7ac2572f9af30ff12d815315fb31b0128066d293 100644 (file)
@@ -24,22 +24,25 @@ namespace llvm {
 
 struct UnifyFunctionExitNodes : public FunctionPass {
   BasicBlock *ReturnBlock, *UnwindBlock, *UnreachableBlock;
+
 public:
   static char ID; // Pass identification, replacement for typeid
-  UnifyFunctionExitNodes() : FunctionPass((intptr_t)&ID),
-                             ReturnBlock(0), UnwindBlock(0) {}
+  UnifyFunctionExitNodes() : FunctionPass(ID),
+                             ReturnBlock(nullptr), UnwindBlock(nullptr) {
+    initializeUnifyFunctionExitNodesPass(*PassRegistry::getPassRegistry());
+  }
 
   // We can preserve non-critical-edgeness when we unify function exit nodes
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const;
+  void getAnalysisUsage(AnalysisUsage &AU) const override;
 
-  // getReturn|Unwind|UnreachableBlock - Return the new single (or nonexistant)
+  // getReturn|Unwind|UnreachableBlock - Return the new single (or nonexistent)
   // return, unwind, or unreachable  basic blocks in the CFG.
   //
   BasicBlock *getReturnBlock() const { return ReturnBlock; }
   BasicBlock *getUnwindBlock() const { return UnwindBlock; }
   BasicBlock *getUnreachableBlock() const { return UnreachableBlock; }
 
-  virtual bool runOnFunction(Function &F);
+  bool runOnFunction(Function &F) override;
 };
 
 Pass *createUnifyFunctionExitNodesPass();