diff options
author | Max Kazantsev <max.kazantsev@azul.com> | 2019-02-06 06:00:02 +0000 |
---|---|---|
committer | Max Kazantsev <max.kazantsev@azul.com> | 2019-02-06 06:00:02 +0000 |
commit | 61e6ffc398e9b1e25488ea5b0dda546f18ef61e4 (patch) | |
tree | 5cc1c2430bcdf376131d63c0f30703c178716442 /llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | |
parent | bad4db8b1a16545d601ac26fc7e2dd040af23135 (diff) | |
download | llvm-61e6ffc398e9b1e25488ea5b0dda546f18ef61e4.zip llvm-61e6ffc398e9b1e25488ea5b0dda546f18ef61e4.tar.gz llvm-61e6ffc398e9b1e25488ea5b0dda546f18ef61e4.tar.bz2 |
[NFC] Extend API of DeleteDeadBlock(s) to collect updates without DTU
llvm-svn: 353274
Diffstat (limited to 'llvm/lib/Transforms/Utils/BasicBlockUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp index cb8614f..82b9979 100644 --- a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -47,12 +47,15 @@ using namespace llvm; -void llvm::DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU) { - DeleteDeadBlocks({BB}, DTU); +void llvm::DeleteDeadBlock( + BasicBlock *BB, DomTreeUpdater *DTU, + SmallVectorImpl<DominatorTree::UpdateType> *DTUpdates) { + DeleteDeadBlocks({BB}, DTU, DTUpdates); } -void llvm::DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, - DomTreeUpdater *DTU) { +void llvm::DeleteDeadBlocks( + ArrayRef<BasicBlock *> BBs, DomTreeUpdater *DTU, + SmallVectorImpl<DominatorTree::UpdateType> *DTUpdates) { #ifndef NDEBUG // Make sure that all predecessors of each dead block is also dead. SmallPtrSet<BasicBlock *, 4> Dead(BBs.begin(), BBs.end()); @@ -68,7 +71,7 @@ void llvm::DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, // of their predecessors is going away. for (BasicBlock *Succ : successors(BB)) { Succ->removePredecessor(BB); - if (DTU) + if (DTU || DTUpdates) Updates.push_back({DominatorTree::Delete, BB, Succ}); } @@ -92,6 +95,8 @@ void llvm::DeleteDeadBlocks(ArrayRef <BasicBlock *> BBs, } if (DTU) DTU->applyUpdates(Updates, /*ForceRemoveDuplicates*/ true); + if (DTUpdates) + DTUpdates->append(Updates.begin(), Updates.end()); for (BasicBlock *BB : BBs) if (DTU) |