summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCong Hou <congh@google.com>2015-11-18 01:03:19 +0000
committerCong Hou <congh@google.com>2015-11-18 01:03:19 +0000
commit804c1d81aa5808791059c4f89883f198ef4f8fea (patch)
treecad40fc21a7c390ee19016220b039ba2c74584e4
parent1f4cb4d3d4bcd1f587d42ab2a1359b7aaa6a4741 (diff)
downloadbcm5719-llvm-804c1d81aa5808791059c4f89883f198ef4f8fea.tar.gz
bcm5719-llvm-804c1d81aa5808791059c4f89883f198ef4f8fea.zip
Modify the interface BranchProbability::normalizeProbabilities to let it accept a pair of iterators. NFC.
llvm-svn: 253417
-rw-r--r--llvm/include/llvm/CodeGen/MachineBasicBlock.h2
-rw-r--r--llvm/include/llvm/Support/BranchProbability.h21
2 files changed, 14 insertions, 9 deletions
diff --git a/llvm/include/llvm/CodeGen/MachineBasicBlock.h b/llvm/include/llvm/CodeGen/MachineBasicBlock.h
index 4f76b21fb00..a2b1a850ec7 100644
--- a/llvm/include/llvm/CodeGen/MachineBasicBlock.h
+++ b/llvm/include/llvm/CodeGen/MachineBasicBlock.h
@@ -476,7 +476,7 @@ public:
/// Normalize probabilities of all successors so that the sum of them becomes
/// one.
void normalizeSuccProbs() {
- BranchProbability::normalizeProbabilities(Probs);
+ BranchProbability::normalizeProbabilities(Probs.begin(), Probs.end());
}
/// Remove successor from the successors list of this MachineBasicBlock. The
diff --git a/llvm/include/llvm/Support/BranchProbability.h b/llvm/include/llvm/Support/BranchProbability.h
index e3acb566b73..71c0cf9afea 100644
--- a/llvm/include/llvm/Support/BranchProbability.h
+++ b/llvm/include/llvm/Support/BranchProbability.h
@@ -56,8 +56,9 @@ public:
// Normalize given probabilties so that the sum of them becomes approximate
// one.
- template <class ProbabilityList>
- static void normalizeProbabilities(ProbabilityList &Probs);
+ template <class ProbabilityIter>
+ static void normalizeProbabilities(ProbabilityIter Begin,
+ ProbabilityIter End);
// Normalize a list of weights by scaling them down so that the sum of them
// doesn't exceed UINT32_MAX.
@@ -140,14 +141,18 @@ inline BranchProbability operator/(BranchProbability LHS, uint32_t RHS) {
return BranchProbability::getRaw(LHS.getNumerator() / RHS);
}
-template <class ProbabilityList>
-void BranchProbability::normalizeProbabilities(ProbabilityList &Probs) {
+template <class ProbabilityIter>
+void BranchProbability::normalizeProbabilities(ProbabilityIter Begin,
+ ProbabilityIter End) {
+ if (Begin == End)
+ return;
+
uint64_t Sum = 0;
- for (auto Prob : Probs)
- Sum += Prob.N;
+ for (auto I = Begin; I != End; ++I)
+ Sum += I->N;
assert(Sum > 0);
- for (auto &Prob : Probs)
- Prob.N = (Prob.N * uint64_t(D) + Sum / 2) / Sum;
+ for (auto I = Begin; I != End; ++I)
+ I->N = (I->N * uint64_t(D) + Sum / 2) / Sum;
}
template <class WeightListIter>
OpenPOWER on IntegriCloud