summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-10-03 23:43:43 +0000
committerChris Lattner <sabre@nondot.org>2005-10-03 23:43:43 +0000
commit4c3b2b536cd8e0b4989c0bcbc598081f33e31bf3 (patch)
tree56fceed4ec85af2b8fc03edf5b8d1c8517d540da /llvm/lib/Transforms/Utils
parenta6e98f2e85a31ff5994881e654cafd91350a8b57 (diff)
downloadbcm5719-llvm-4c3b2b536cd8e0b4989c0bcbc598081f33e31bf3.tar.gz
bcm5719-llvm-4c3b2b536cd8e0b4989c0bcbc598081f33e31bf3.zip
Clean up the code a bit. Use isInstructionTriviallyDead to be more aggressive
and more correct than use_empty(). This fixes PR635 and SimplifyCFG/2005-10-02-InvokeSimplify.ll llvm-svn: 23616
Diffstat (limited to 'llvm/lib/Transforms/Utils')
-rw-r--r--llvm/lib/Transforms/Utils/SimplifyCFG.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
index ba6ce17087b..6b5914365bb 100644
--- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -1284,12 +1284,16 @@ bool llvm::SimplifyCFG(BasicBlock *BB) {
FalseValue, "retval", BI);
else
NewRetVal = TrueValue;
+
+ DEBUG(std::cerr << "\nCHANGING BRANCH TO TWO RETURNS INTO SELECT:"
+ << "\n " << *BI << "Select = " << *NewRetVal
+ << "TRUEBLOCK: " << *TrueSucc << "FALSEBLOCK: "<< *FalseSucc);
new ReturnInst(NewRetVal, BI);
- BI->getParent()->getInstList().erase(BI);
- if (BrCond->use_empty())
- if (Instruction *BrCondI = dyn_cast<Instruction>(BrCond))
- BrCondI->getParent()->getInstList().erase(BrCondI);
+ BI->eraseFromParent();
+ if (Instruction *BrCondI = dyn_cast<Instruction>(BrCond))
+ if (isInstructionTriviallyDead(BrCondI))
+ BrCondI->eraseFromParent();
return true;
}
}
OpenPOWER on IntegriCloud