LLVM: lib/Support/BlockFrequency.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
18
19using namespace llvm;
20
22 Frequency = Prob.scale(Frequency);
23 return *this;
24}
25
28 Freq *= Prob;
29 return Freq;
30}
31
36
39 Freq /= Prob;
40 return Freq;
41}
42
44 bool Overflow;
46 if (Overflow)
47 return {};
49}
50
54 OS << "0";
55 return;
56 }
58 OS << "";
59 return;
60 }
63 OS << Block / Entry;
64}
LLVM_ABI BlockFrequency operator/(BranchProbability Prob) const
Definition BlockFrequency.cpp:37
LLVM_ABI std::optional< BlockFrequency > mul(uint64_t Factor) const
Multiplies frequency with Factor. Returns nullopt in case of overflow.
Definition BlockFrequency.cpp:43
uint64_t getFrequency() const
Returns the frequency as a fixpoint number scaled by the entry frequency.
LLVM_ABI BlockFrequency operator*(BranchProbability Prob) const
Definition BlockFrequency.cpp:26
LLVM_ABI BlockFrequency & operator*=(BranchProbability Prob)
Multiplies with a branch probability.
Definition BlockFrequency.cpp:21
LLVM_ABI BlockFrequency & operator/=(BranchProbability Prob)
Divide by a non-zero branch probability using saturating arithmetic.
Definition BlockFrequency.cpp:32
LLVM_ABI uint64_t scaleByInverse(uint64_t Num) const
Scale a large integer by the inverse.
LLVM_ABI uint64_t scale(uint64_t Num) const
Scale a large integer.
Simple representation of a scaled number.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
std::enable_if_t< std::is_unsigned_v< T >, T > SaturatingMultiply(T X, T Y, bool *ResultOverflowed=nullptr)
Multiply two unsigned integers, X and Y, of type T.
LLVM_ABI void printRelativeBlockFreq(raw_ostream &OS, BlockFrequency EntryFreq, BlockFrequency Freq)
Definition BlockFrequency.cpp:51