From 7a66e686fe1406ea704e71e18cf99d4745d0b43d Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 3 Oct 2005 23:43:43 +0000 Subject: [PATCH] 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23616 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Utils/SimplifyCFG.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index ba6ce17087b..6b5914365bb 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/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(BrCond)) - BrCondI->getParent()->getInstList().erase(BrCondI); + BI->eraseFromParent(); + if (Instruction *BrCondI = dyn_cast(BrCond)) + if (isInstructionTriviallyDead(BrCondI)) + BrCondI->eraseFromParent(); return true; } } -- 2.34.1