diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/BasicBlockUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp index a44746d040e..606bd8bacca 100644 --- a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -45,22 +45,16 @@ using namespace llvm; -void llvm::DeleteDeadBlock(BasicBlock *BB, DeferredDominance *DDT) { +void llvm::DeleteDeadBlock(BasicBlock *BB) { assert((pred_begin(BB) == pred_end(BB) || // Can delete self loop. BB->getSinglePredecessor() == BB) && "Block is not dead!"); TerminatorInst *BBTerm = BB->getTerminator(); - std::vector<DominatorTree::UpdateType> Updates; // Loop through all of our successors and make sure they know that one // of their predecessors is going away. - if (DDT) - Updates.reserve(BBTerm->getNumSuccessors()); - for (BasicBlock *Succ : BBTerm->successors()) { + for (BasicBlock *Succ : BBTerm->successors()) Succ->removePredecessor(BB); - if (DDT) - Updates.push_back({DominatorTree::Delete, BB, Succ}); - } // Zap all the instructions in the block. while (!BB->empty()) { @@ -75,12 +69,8 @@ void llvm::DeleteDeadBlock(BasicBlock *BB, DeferredDominance *DDT) { BB->getInstList().pop_back(); } - if (DDT) { - DDT->applyUpdates(Updates); - DDT->deleteBB(BB); // Deferred deletion of BB. - } else { - BB->eraseFromParent(); // Zap the block! - } + // Zap the block! + BB->eraseFromParent(); } void llvm::FoldSingleEntryPHINodes(BasicBlock *BB, |