diff options
author | Cong Hou <congh@google.com> | 2015-11-18 01:03:19 +0000 |
---|---|---|
committer | Cong Hou <congh@google.com> | 2015-11-18 01:03:19 +0000 |
commit | 804c1d81aa5808791059c4f89883f198ef4f8fea (patch) | |
tree | cad40fc21a7c390ee19016220b039ba2c74584e4 | |
parent | 1f4cb4d3d4bcd1f587d42ab2a1359b7aaa6a4741 (diff) | |
download | bcm5719-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.h | 2 | ||||
-rw-r--r-- | llvm/include/llvm/Support/BranchProbability.h | 21 |
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> |