diff options
author | Jun Ma <JunMa@linux.alibaba.com> | 2021-08-20 17:27:00 +0800 |
---|---|---|
committer | Jun Ma <JunMa@linux.alibaba.com> | 2021-09-09 16:53:33 +0800 |
commit | 8ba2adcf9e54b34ba8efa73ac0d81a1192e4f614 (patch) | |
tree | 7b07ecb11e48dc8391109babc89d073d0508dd0a /llvm/lib/Transforms/Utils/SimplifyCFG.cpp | |
parent | d1280f6967db1ca8fa4e0c39414003e717b40feb (diff) | |
download | llvm-8ba2adcf9e54b34ba8efa73ac0d81a1192e4f614.zip llvm-8ba2adcf9e54b34ba8efa73ac0d81a1192e4f614.tar.gz llvm-8ba2adcf9e54b34ba8efa73ac0d81a1192e4f614.tar.bz2 |
Recommit "Revert "[CVP] processSwitch: Remove default case when switch cover all possible values.""
Differential Revision: https://reviews.llvm.org/D106056
Diffstat (limited to 'llvm/lib/Transforms/Utils/SimplifyCFG.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/SimplifyCFG.cpp | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp index 737b4f9..70297e4 100644 --- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp @@ -4743,26 +4743,6 @@ static bool CasesAreContiguous(SmallVectorImpl<ConstantInt *> &Cases) { return true; } -static void createUnreachableSwitchDefault(SwitchInst *Switch, - DomTreeUpdater *DTU) { - LLVM_DEBUG(dbgs() << "SimplifyCFG: switch default is dead.\n"); - auto *BB = Switch->getParent(); - auto *OrigDefaultBlock = Switch->getDefaultDest(); - OrigDefaultBlock->removePredecessor(BB); - BasicBlock *NewDefaultBlock = BasicBlock::Create( - BB->getContext(), BB->getName() + ".unreachabledefault", BB->getParent(), - OrigDefaultBlock); - new UnreachableInst(Switch->getContext(), NewDefaultBlock); - Switch->setDefaultDest(&*NewDefaultBlock); - if (DTU) { - SmallVector<DominatorTree::UpdateType, 2> Updates; - Updates.push_back({DominatorTree::Insert, BB, &*NewDefaultBlock}); - if (!is_contained(successors(BB), OrigDefaultBlock)) - Updates.push_back({DominatorTree::Delete, BB, &*OrigDefaultBlock}); - DTU->applyUpdates(Updates); - } -} - /// Turn a switch with two reachable destinations into an integer range /// comparison and branch. bool SimplifyCFGOpt::TurnSwitchRangeIntoICmp(SwitchInst *SI, |