diff options
Diffstat (limited to 'llvm/include/llvm/Support/BranchProbability.h')
| -rw-r--r-- | llvm/include/llvm/Support/BranchProbability.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/include/llvm/Support/BranchProbability.h b/llvm/include/llvm/Support/BranchProbability.h index b7dddd56af7..cd9d369b4f4 100644 --- a/llvm/include/llvm/Support/BranchProbability.h +++ b/llvm/include/llvm/Support/BranchProbability.h @@ -118,6 +118,13 @@ public: return *this; } + BranchProbability &operator/=(BranchProbability RHS) { + assert(N != UnknownN && RHS.N != UnknownN && + "Unknown probability cannot participate in arithmetics."); + N = (static_cast<uint64_t>(N) * D + RHS.N / 2) / RHS.N; + return *this; + } + BranchProbability &operator/=(uint32_t RHS) { assert(N != UnknownN && "Unknown probability cannot participate in arithmetics."); @@ -150,6 +157,12 @@ public: return Prob; } + BranchProbability operator/(BranchProbability RHS) const { + BranchProbability Prob(*this); + Prob /= RHS; + return Prob; + } + BranchProbability operator/(uint32_t RHS) const { BranchProbability Prob(*this); Prob /= RHS; |

