Let operator/ with uint32_t rhs operand be a member of BranchProbability and add...
authorCong Hou <congh@google.com>
Tue, 15 Dec 2015 01:21:14 +0000 (01:21 +0000)
committerCong Hou <congh@google.com>
Tue, 15 Dec 2015 01:21:14 +0000 (01:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255595 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/BranchProbability.h

index 2548384f346b6a0c7b52c1060ca43c2950d8d668..415805ce3971c20622b563db8957bf4616bb3fd9 100644 (file)
@@ -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 <class ProbabilityIter>
 void BranchProbability::normalizeProbabilities(ProbabilityIter Begin,
                                                ProbabilityIter End) {