diff options
author | Chris Lattner <sabre@nondot.org> | 2002-05-07 18:51:44 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-05-07 18:51:44 +0000 |
commit | 96bcfc30dc594cbd527779e0966ee85d65b729fd (patch) | |
tree | 7e9d49c98a7a165efc645a66a7100d735167be17 | |
parent | b444a1fff47162591933e00197375bbbd255f595 (diff) | |
download | external_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.h | 26 |
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() { |