summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/TailDuplication.cpp
diff options
context:
space:
mode:
authorCong Hou <congh@google.com>2015-12-15 10:10:40 +0000
committerCong Hou <congh@google.com>2015-12-15 10:10:40 +0000
commit3ba9cf60202476f6a450289c71fe4bfb1453886d (patch)
treecc67be2759e7481f7b7068e2d14d6ac2c19e970e /llvm/lib/CodeGen/TailDuplication.cpp
parentec6b1fcf63e124bf4bf28444af7f8809ebb511f7 (diff)
downloadbcm5719-llvm-3ba9cf60202476f6a450289c71fe4bfb1453886d.tar.gz
bcm5719-llvm-3ba9cf60202476f6a450289c71fe4bfb1453886d.zip
Improve the successor list update in TailDuplication.cpp.
This patch improves a temporary fix in r255530 so that we can normalize successor list without trigger assertion failures in tail duplication pass. llvm-svn: 255638
Diffstat (limited to 'llvm/lib/CodeGen/TailDuplication.cpp')
-rw-r--r--llvm/lib/CodeGen/TailDuplication.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/TailDuplication.cpp b/llvm/lib/CodeGen/TailDuplication.cpp
index 1f5b54866ac..132c069d69e 100644
--- a/llvm/lib/CodeGen/TailDuplication.cpp
+++ b/llvm/lib/CodeGen/TailDuplication.cpp
@@ -745,12 +745,12 @@ TailDuplicatePass::duplicateSimpleBB(MachineBasicBlock *TailBB,
if (PredTBB)
TII->InsertBranch(*PredBB, PredTBB, PredFBB, PredCond, DebugLoc());
- auto Prob = MBPI->getEdgeProbability(PredBB, TailBB);
- PredBB->removeSuccessor(TailBB);
- unsigned NumSuccessors = PredBB->succ_size();
- assert(NumSuccessors <= 1);
- if (NumSuccessors == 0 || *PredBB->succ_begin() != NewTarget)
- PredBB->addSuccessor(NewTarget, Prob);
+ if (!PredBB->isSuccessor(NewTarget))
+ PredBB->replaceSuccessor(TailBB, NewTarget);
+ else {
+ PredBB->removeSuccessor(TailBB, 0);
+ assert(PredBB->succ_size() <= 1);
+ }
TDBBs.push_back(PredBB);
}
OpenPOWER on IntegriCloud