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