diff options
author | Chris Lattner <sabre@nondot.org> | 2002-06-25 16:12:52 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-06-25 16:12:52 +0000 |
commit | 18961504fc2b299578dba817900a0696cf3ccc4d (patch) | |
tree | c34853ffc064b841932d0897e25305c81c3a7338 /lib/Transforms/Utils/UnifyFunctionExitNodes.cpp | |
parent | a2204e1ff25265a1da00ecbb3ebb22c05acf7194 (diff) |
*** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2777 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/UnifyFunctionExitNodes.cpp')
-rw-r--r-- | lib/Transforms/Utils/UnifyFunctionExitNodes.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp index 64ae2e3ed5..9a65fcecf4 100644 --- a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp +++ b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp @@ -24,14 +24,14 @@ AnalysisID UnifyFunctionExitNodes::ID(AnalysisID::create<UnifyFunctionExitNodes> // // If there are no return stmts in the Function, a null pointer is returned. // -bool UnifyFunctionExitNodes::runOnFunction(Function *M) { +bool UnifyFunctionExitNodes::runOnFunction(Function &F) { // Loop over all of the blocks in a function, tracking all of the blocks that // return. // vector<BasicBlock*> ReturningBlocks; - for(Function::iterator I = M->begin(), E = M->end(); I != E; ++I) - if (isa<ReturnInst>((*I)->getTerminator())) - ReturningBlocks.push_back(*I); + for(Function::iterator I = F.begin(), E = F.end(); I != E; ++I) + if (isa<ReturnInst>(I->getTerminator())) + ReturningBlocks.push_back(I); if (ReturningBlocks.empty()) { ExitNode = 0; @@ -45,11 +45,11 @@ bool UnifyFunctionExitNodes::runOnFunction(Function *M) { // node (if the function returns a value), and convert all of the return // instructions into unconditional branches. // - BasicBlock *NewRetBlock = new BasicBlock("UnifiedExitNode", M); + BasicBlock *NewRetBlock = new BasicBlock("UnifiedExitNode", &F); - if (M->getReturnType() != Type::VoidTy) { + if (F.getReturnType() != Type::VoidTy) { // If the function doesn't return void... add a PHI node to the block... - PHINode *PN = new PHINode(M->getReturnType(), "UnifiedRetVal"); + PHINode *PN = new PHINode(F.getReturnType(), "UnifiedRetVal"); NewRetBlock->getInstList().push_back(PN); // Add an incoming element to the PHI node for every return instruction that @@ -70,7 +70,7 @@ bool UnifyFunctionExitNodes::runOnFunction(Function *M) { // for (vector<BasicBlock*>::iterator I = ReturningBlocks.begin(), E = ReturningBlocks.end(); I != E; ++I) { - delete (*I)->getInstList().pop_back(); // Remove the return insn + (*I)->getInstList().pop_back(); // Remove the return insn (*I)->getInstList().push_back(new BranchInst(NewRetBlock)); } ExitNode = NewRetBlock; |