From 0686d1ae4170c0656f24d5971750beddd7d781ae Mon Sep 17 00:00:00 2001 From: Max Kazantsev Date: Tue, 12 Feb 2019 06:14:27 +0000 Subject: [NFC] Add parameter for keeping one-input Phis in DeleteDeadBlock(s) llvm-svn: 353799 --- llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'llvm/lib/Transforms/Utils/BasicBlockUtils.cpp') diff --git a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp index 2410f652fd7..c0148b94cba 100644 --- a/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp +++ b/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp @@ -49,13 +49,14 @@ using namespace llvm; void llvm::DetatchDeadBlocks( ArrayRef BBs, - SmallVectorImpl *Updates) { + SmallVectorImpl *Updates, + bool DontDeleteUselessPHIs) { for (auto *BB : BBs) { // Loop through all of our successors and make sure they know that one // of their predecessors is going away. SmallPtrSet UniqueSuccessors; for (BasicBlock *Succ : successors(BB)) { - Succ->removePredecessor(BB); + Succ->removePredecessor(BB, DontDeleteUselessPHIs); if (Updates && UniqueSuccessors.insert(Succ).second) Updates->push_back({DominatorTree::Delete, BB, Succ}); } @@ -80,12 +81,13 @@ void llvm::DetatchDeadBlocks( } } -void llvm::DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU) { - DeleteDeadBlocks({BB}, DTU); +void llvm::DeleteDeadBlock(BasicBlock *BB, DomTreeUpdater *DTU, + bool DontDeleteUselessPHIs) { + DeleteDeadBlocks({BB}, DTU, DontDeleteUselessPHIs); } -void llvm::DeleteDeadBlocks(ArrayRef BBs, - DomTreeUpdater *DTU) { +void llvm::DeleteDeadBlocks(ArrayRef BBs, DomTreeUpdater *DTU, + bool DontDeleteUselessPHIs) { #ifndef NDEBUG // Make sure that all predecessors of each dead block is also dead. SmallPtrSet Dead(BBs.begin(), BBs.end()); @@ -96,7 +98,7 @@ void llvm::DeleteDeadBlocks(ArrayRef BBs, #endif SmallVector Updates; - DetatchDeadBlocks(BBs, DTU ? &Updates : nullptr); + DetatchDeadBlocks(BBs, DTU ? &Updates : nullptr, DontDeleteUselessPHIs); if (DTU) DTU->applyUpdates(Updates, /*ForceRemoveDuplicates*/ true); -- cgit v1.2.3