summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-05-07 18:51:44 +0000
committerChris Lattner <sabre@nondot.org>2002-05-07 18:51:44 +0000
commit96bcfc30dc594cbd527779e0966ee85d65b729fd (patch)
tree7e9d49c98a7a165efc645a66a7100d735167be17
parentb444a1fff47162591933e00197375bbbd255f595 (diff)
downloadexternal_llvm-96bcfc30dc594cbd527779e0966ee85d65b729fd.zip
external_llvm-96bcfc30dc594cbd527779e0966ee85d65b729fd.tar.gz
external_llvm-96bcfc30dc594cbd527779e0966ee85d65b729fd.tar.bz2
Cleanup implementation a bit + comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2527 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h26
1 files changed, 7 insertions, 19 deletions
diff --git a/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h b/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
index 6281c8a..0d54aca 100644
--- a/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
+++ b/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
@@ -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() {