diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-10-03 23:43:43 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-10-03 23:43:43 +0000 |
| commit | 4c3b2b536cd8e0b4989c0bcbc598081f33e31bf3 (patch) | |
| tree | 56fceed4ec85af2b8fc03edf5b8d1c8517d540da /llvm/lib/Transforms/Utils | |
| parent | a6e98f2e85a31ff5994881e654cafd91350a8b57 (diff) | |
| download | bcm5719-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.cpp | 12 |
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; } } |

