14 #ifndef LLVM_SUPPORT_BRANCHPROBABILITY_H
15 #define LLVM_SUPPORT_BRANCHPROBABILITY_H
17 #include "llvm/Support/DataTypes.h"
34 assert(d > 0 &&
"Denomiator cannot be 0!");
35 assert(n <= d &&
"Probability cannot be bigger than 1!");
54 return (uint64_t)N * RHS.D == (uint64_t)D * RHS.N;
57 return !(*
this == RHS);
60 return (uint64_t)N * RHS.D < (uint64_t)D * RHS.N;
66 return (uint64_t)N * RHS.D <= (uint64_t)D * RHS.N;
73 raw_ostream &
operator<<(raw_ostream &OS,
const BranchProbability &Prob);
uint32_t getNumerator() const
bool operator>(BranchProbability RHS) const
static BranchProbability getOne()
bool operator>=(BranchProbability RHS) const
bool operator==(BranchProbability RHS) const
BranchProbability(uint32_t n, uint32_t d)
void print(raw_ostream &OS) const
bool operator!=(BranchProbability RHS) const
bool operator<=(BranchProbability RHS) const
bool operator<(BranchProbability RHS) const
uint32_t getDenominator() const
raw_ostream & operator<<(raw_ostream &OS, const APInt &I)
static BranchProbability getZero()
BranchProbability getCompl() const