[BranchProbabilityInfo] Make MaxSuccIdx[Src] efficient and add a comment about the subtle eraseBlock. NFC

Follow-up to D90272.
This commit is contained in:
Fangrui Song 2020-10-27 16:29:10 -07:00
parent c09d10437f
commit d69ada30e2
1 changed files with 4 additions and 4 deletions

View File

@ -1138,10 +1138,8 @@ void BranchProbabilityInfo::setEdgeProbability(const BasicBlock *Src,
<< IndexInSuccessors << " successor probability to " << Prob
<< "\n");
if (MaxSuccIdx.find(Src) == MaxSuccIdx.end())
MaxSuccIdx[Src] = IndexInSuccessors;
else
MaxSuccIdx[Src] = std::max(MaxSuccIdx[Src], IndexInSuccessors);
unsigned &SuccIdx = MaxSuccIdx[Src];
SuccIdx = std::max(SuccIdx, IndexInSuccessors);
}
/// Set the edge probability for all edges at once.
@ -1179,6 +1177,8 @@ BranchProbabilityInfo::printEdgeProbability(raw_ostream &OS,
}
void BranchProbabilityInfo::eraseBlock(const BasicBlock *BB) {
// Note that we cannot use successors of BB because the terminator of BB may
// have changed when eraseBlock is called as a BasicBlockCallbackVH callback.
auto It = MaxSuccIdx.find(BB);
if (It == MaxSuccIdx.end())
return;