From 35499b1dfdaa9dbf510fd53895b005fd3d37b699 Mon Sep 17 00:00:00 2001 From: Cong Hou Date: Tue, 15 Dec 2015 01:21:14 +0000 Subject: [PATCH] Let operator/ with uint32_t rhs operand be a member of BranchProbability and add a new operator /=. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255595 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/BranchProbability.h | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/include/llvm/Support/BranchProbability.h b/include/llvm/Support/BranchProbability.h index 2548384f346..415805ce397 100644 --- a/include/llvm/Support/BranchProbability.h +++ b/include/llvm/Support/BranchProbability.h @@ -117,6 +117,14 @@ public: return *this; } + BranchProbability &operator/=(uint32_t RHS) { + assert(N != UnknownN && + "Unknown probability cannot participate in arithmetics."); + assert(RHS > 0 && "The divider cannot be zero."); + N /= RHS; + return *this; + } + BranchProbability operator+(BranchProbability RHS) const { BranchProbability Prob(*this); return Prob += RHS; @@ -132,6 +140,11 @@ public: return Prob *= RHS; } + BranchProbability operator/(uint32_t RHS) const { + BranchProbability Prob(*this); + return Prob /= RHS; + } + bool operator==(BranchProbability RHS) const { return N == RHS.N; } bool operator!=(BranchProbability RHS) const { return !(*this == RHS); } @@ -164,12 +177,6 @@ inline raw_ostream &operator<<(raw_ostream &OS, BranchProbability Prob) { return Prob.print(OS); } -inline BranchProbability operator/(BranchProbability LHS, uint32_t RHS) { - assert(LHS != BranchProbability::getUnknown() && - "Unknown probability cannot participate in arithmetics."); - return BranchProbability::getRaw(LHS.getNumerator() / RHS); -} - template void BranchProbability::normalizeProbabilities(ProbabilityIter Begin, ProbabilityIter End) { -- 2.11.0