From: Cong Hou Date: Mon, 14 Dec 2015 19:11:54 +0000 (+0000) Subject: Remove the successor probabilities normalization in tail duplication pass. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=3808efa2e6e2da057c29c4fdc4ef083a244f9371;hp=8e0e5a579d8753dc2045a47c2f155787e32fee55;ds=sidebyside Remove the successor probabilities normalization in tail duplication pass. The normalization may cause assertion failures on SystemZ and some out-of-tree tests. The root cause is that unknown probabilities are materialized into known ones by calling getSuccProbability(), which is then used to add another successor to the same MBB which results in mixed known and unknown probabilities. But currently those mixed probabilities cannot be normalized. I will compose another patch to fix the root issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255530 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/TailDuplication.cpp b/lib/CodeGen/TailDuplication.cpp index 9bd15dd6ec7..1f5b54866ac 100644 --- a/lib/CodeGen/TailDuplication.cpp +++ b/lib/CodeGen/TailDuplication.cpp @@ -751,7 +751,6 @@ TailDuplicatePass::duplicateSimpleBB(MachineBasicBlock *TailBB, assert(NumSuccessors <= 1); if (NumSuccessors == 0 || *PredBB->succ_begin() != NewTarget) PredBB->addSuccessor(NewTarget, Prob); - PredBB->normalizeSuccProbs(); TDBBs.push_back(PredBB); }