Cleanup implementation a bit + comments
authorChris Lattner <sabre@nondot.org>
Tue, 7 May 2002 18:51:44 +0000 (18:51 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 7 May 2002 18:51:44 +0000 (18:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2527 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h

index 6281c8aa4a761dc2d5cb5ef7a31675de9be4d6d7..0d54aca657b58da473e1ed1db8d6624f8d378e86 100644 (file)
@@ -1,8 +1,9 @@
 //===-- UnifyFunctionExitNodes.h - Ensure fn's have one return ---*- C++ -*--=//
 //
 // This pass is used to ensure that functions have at most one return
-// instruction in them.  It also holds onto the return instruction of the last
-// unified function.
+// instruction in them.  Additionally, it keeps track of which node is the new
+// exit node of the CFG.  If there are no exit nodes in the CFG, the getExitNode
+// method will return a null pointer.
 //
 //===----------------------------------------------------------------------===//
 
@@ -17,26 +18,13 @@ public:
   static AnalysisID ID;            // Pass ID
   UnifyFunctionExitNodes(AnalysisID id = ID) : ExitNode(0) { assert(ID == id); }
 
-  virtual const char *getPassName() const { return "Unify Function Exit Nodes";}
-
-  // UnifyAllExitNodes - Unify all exit nodes of the CFG by creating a new
-  // BasicBlock, and converting all returns to unconditional branches to this
-  // new basic block.  The singular exit node is returned in ExitNode.
+  // getExitNode - Return the new single (or nonexistant) exit node of the CFG.
   //
-  // If there are no return stmts in the function, a null pointer is returned.
-  //
-  static bool doit(Function *F, BasicBlock *&ExitNode);
-
-
-  virtual bool runOnFunction(Function *F) {
-    return doit(F, ExitNode);
-  }
-
   BasicBlock *getExitNode() const { return ExitNode; }
 
-  virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-    AU.addProvided(ID);  // Provide self!
-  }
+  virtual const char *getPassName() const { return "Unify Function Exit Nodes";}
+  virtual bool runOnFunction(Function *F);
+  virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addProvided(ID); }
 };
 
 static inline Pass *createUnifyFunctionExitNodesPass() {