[PATCH] D90980: [BranchProbabilityInfo] Simplify getEdgeProbability (NFC)
Kazu Hirata via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 6 15:10:39 PST 2020
kazu created this revision.
kazu added reviewers: MaskRay, yrouban.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
kazu requested review of this revision.
The patch simplifies BranchProbabilityInfo::getEdgeProbability by
handling two cases separately, depending on whether we have edge
probabilities.
- If we have edge probabilities, then add up probabilities for successors being equal to Dst.
- Otherwise, return the number of ocurrences divided by the total number of successors.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D90980
Files:
llvm/lib/Analysis/BranchProbabilityInfo.cpp
Index: llvm/lib/Analysis/BranchProbabilityInfo.cpp
===================================================================
--- llvm/lib/Analysis/BranchProbabilityInfo.cpp
+++ llvm/lib/Analysis/BranchProbabilityInfo.cpp
@@ -1114,19 +1114,15 @@
BranchProbability
BranchProbabilityInfo::getEdgeProbability(const BasicBlock *Src,
const BasicBlock *Dst) const {
+ if (!Probs.count(std::make_pair(Src, 0)))
+ return BranchProbability(llvm::count(successors(Src), Dst), succ_size(Src));
+
auto Prob = BranchProbability::getZero();
- bool FoundProb = false;
- uint32_t EdgeCount = 0;
for (const_succ_iterator I = succ_begin(Src), E = succ_end(Src); I != E; ++I)
- if (*I == Dst) {
- ++EdgeCount;
- auto MapI = Probs.find(std::make_pair(Src, I.getSuccessorIndex()));
- if (MapI != Probs.end()) {
- FoundProb = true;
- Prob += MapI->second;
- }
- }
- return FoundProb ? Prob : BranchProbability(EdgeCount, succ_size(Src));
+ if (*I == Dst)
+ Prob += Probs.find(std::make_pair(Src, I.getSuccessorIndex()))->second;
+
+ return Prob;
}
/// Set the edge probability for all edges at once.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90980.303565.patch
Type: text/x-patch
Size: 1182 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201106/54ed45a8/attachment.bin>
More information about the llvm-commits
mailing list