diff options
author | Cong Hou <congh@google.com> | 2015-12-15 10:10:40 +0000 |
---|---|---|
committer | Cong Hou <congh@google.com> | 2015-12-15 10:10:40 +0000 |
commit | 3ba9cf60202476f6a450289c71fe4bfb1453886d (patch) | |
tree | cc67be2759e7481f7b7068e2d14d6ac2c19e970e /llvm/lib/CodeGen/TailDuplication.cpp | |
parent | ec6b1fcf63e124bf4bf28444af7f8809ebb511f7 (diff) | |
download | bcm5719-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.cpp | 12 |
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); } |