class BlockFrequencyInfo
Declaration
class BlockFrequencyInfo { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:37
Method Overview
- public BlockFrequencyInfo(const llvm::Function & F, const llvm::BranchProbabilityInfo & BPI, const llvm::LoopInfo & LI)
- public BlockFrequencyInfo(const llvm::BlockFrequencyInfo &)
- public BlockFrequencyInfo(llvm::BlockFrequencyInfo && Arg)
- public BlockFrequencyInfo()
- public void calculate(const llvm::Function & F, const llvm::BranchProbabilityInfo & BPI, const llvm::LoopInfo & LI)
- public const llvm::BranchProbabilityInfo * getBPI() const
- public llvm::BlockFrequency getBlockFreq(const llvm::BasicBlock * BB) const
- public Optional<uint64_t> getBlockProfileCount(const llvm::BasicBlock * BB, bool AllowSynthetic = false) const
- public uint64_t getEntryFreq() const
- public const llvm::Function * getFunction() const
- public Optional<uint64_t> getProfileCountFromFreq(uint64_t Freq) const
- public bool invalidate(llvm::Function & F, const llvm::PreservedAnalyses & PA, int &)
- public bool isIrrLoopHeader(const llvm::BasicBlock * BB)
- public void print(llvm::raw_ostream & OS) const
- public llvm::raw_ostream & printBlockFreq(llvm::raw_ostream & OS, const llvm::BlockFrequency Freq) const
- public llvm::raw_ostream & printBlockFreq(llvm::raw_ostream & OS, const llvm::BasicBlock * BB) const
- public void releaseMemory()
- public void setBlockFreq(const llvm::BasicBlock * BB, uint64_t Freq)
- public void setBlockFreqAndScale(const llvm::BasicBlock * ReferenceBB, uint64_t Freq, SmallPtrSetImpl<llvm::BasicBlock *> & BlocksToScale)
- public void view(llvm::StringRef = "BlockFrequencyDAGs") const
- public ~BlockFrequencyInfo()
Methods
¶BlockFrequencyInfo(
const llvm::Function& F,
const llvm::BranchProbabilityInfo& BPI,
const llvm::LoopInfo& LI)
BlockFrequencyInfo(
const llvm::Function& F,
const llvm::BranchProbabilityInfo& BPI,
const llvm::LoopInfo& LI)
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:44
Parameters
- const llvm::Function& F
- const llvm::BranchProbabilityInfo& BPI
- const llvm::LoopInfo& LI
¶BlockFrequencyInfo(
const llvm::BlockFrequencyInfo&)
BlockFrequencyInfo(
const llvm::BlockFrequencyInfo&)
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:46
Parameters
- const llvm::BlockFrequencyInfo&
¶BlockFrequencyInfo(llvm::BlockFrequencyInfo&& Arg)
BlockFrequencyInfo(llvm::BlockFrequencyInfo&& Arg)
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:48
Parameters
- llvm::BlockFrequencyInfo&& Arg
¶BlockFrequencyInfo()
BlockFrequencyInfo()
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:43
¶void calculate(
const llvm::Function& F,
const llvm::BranchProbabilityInfo& BPI,
const llvm::LoopInfo& LI)
void calculate(
const llvm::Function& F,
const llvm::BranchProbabilityInfo& BPI,
const llvm::LoopInfo& LI)
Description
calculate - compute block frequency info for the given function.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:92
Parameters
- const llvm::Function& F
- const llvm::BranchProbabilityInfo& BPI
- const llvm::LoopInfo& LI
¶const llvm::BranchProbabilityInfo* getBPI() const
const llvm::BranchProbabilityInfo* getBPI() const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:57
¶llvm::BlockFrequency getBlockFreq(
const llvm::BasicBlock* BB) const
llvm::BlockFrequency getBlockFreq(
const llvm::BasicBlock* BB) const
Description
getblockFreq - Return block frequency. Return 0 if we don't have the information. Please note that initial frequency is equal to ENTRY_FREQ. It means that we should not rely on the value itself, but only on the comparison to the other block frequencies. We do this to avoid using of floating points.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:65
Parameters
- const llvm::BasicBlock* BB
¶Optional<uint64_t> getBlockProfileCount(
const llvm::BasicBlock* BB,
bool AllowSynthetic = false) const
Optional<uint64_t> getBlockProfileCount(
const llvm::BasicBlock* BB,
bool AllowSynthetic = false) const
Description
Returns the estimated profile count of \p BB. This computes the relative block frequency of \p BB and multiplies it by the enclosing function's count (if available) and returns the value.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:70
Parameters
- const llvm::BasicBlock* BB
- bool AllowSynthetic = false
¶uint64_t getEntryFreq() const
uint64_t getEntryFreq() const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:103
¶const llvm::Function* getFunction() const
const llvm::Function* getFunction() const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:56
¶Optional<uint64_t> getProfileCountFromFreq(
uint64_t Freq) const
Optional<uint64_t> getProfileCountFromFreq(
uint64_t Freq) const
Description
Returns the estimated profile count of \p Freq. This uses the frequency \p Freq and multiplies it by the enclosing function's count (if available) and returns the value.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:76
Parameters
- uint64_t Freq
¶bool invalidate(llvm::Function& F,
const llvm::PreservedAnalyses& PA,
int&)
bool invalidate(llvm::Function& F,
const llvm::PreservedAnalyses& PA,
int&)
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:53
Parameters
- llvm::Function& F
- const llvm::PreservedAnalyses& PA
- int&
¶bool isIrrLoopHeader(const llvm::BasicBlock* BB)
bool isIrrLoopHeader(const llvm::BasicBlock* BB)
Description
Returns true if \p BB is an irreducible loop header block. Otherwise false.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:80
Parameters
- const llvm::BasicBlock* BB
¶void print(llvm::raw_ostream& OS) const
void print(llvm::raw_ostream& OS) const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:105
Parameters
¶llvm::raw_ostream& printBlockFreq(
llvm::raw_ostream& OS,
const llvm::BlockFrequency Freq) const
llvm::raw_ostream& printBlockFreq(
llvm::raw_ostream& OS,
const llvm::BlockFrequency Freq) const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:97
Parameters
- llvm::raw_ostream& OS
- const llvm::BlockFrequency Freq
¶llvm::raw_ostream& printBlockFreq(
llvm::raw_ostream& OS,
const llvm::BasicBlock* BB) const
llvm::raw_ostream& printBlockFreq(
llvm::raw_ostream& OS,
const llvm::BasicBlock* BB) const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:101
Parameters
- llvm::raw_ostream& OS
- const llvm::BasicBlock* BB
¶void releaseMemory()
void releaseMemory()
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:104
¶void setBlockFreq(const llvm::BasicBlock* BB,
uint64_t Freq)
void setBlockFreq(const llvm::BasicBlock* BB,
uint64_t Freq)
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:83
Parameters
- const llvm::BasicBlock* BB
- uint64_t Freq
¶void setBlockFreqAndScale(
const llvm::BasicBlock* ReferenceBB,
uint64_t Freq,
SmallPtrSetImpl<llvm::BasicBlock*>&
BlocksToScale)
void setBlockFreqAndScale(
const llvm::BasicBlock* ReferenceBB,
uint64_t Freq,
SmallPtrSetImpl<llvm::BasicBlock*>&
BlocksToScale)
Description
Set the frequency of \p ReferenceBB to \p Freq and scale the frequencies of the blocks in \p BlocksToScale such that their frequencies relative to \p ReferenceBB remain unchanged.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:88
Parameters
- const llvm::BasicBlock* ReferenceBB
- uint64_t Freq
- SmallPtrSetImpl<llvm::BasicBlock*>& BlocksToScale
¶void view(
llvm::StringRef = "BlockFrequencyDAGs") const
void view(
llvm::StringRef = "BlockFrequencyDAGs") const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:58
Parameters
- llvm::StringRef = "BlockFrequencyDAGs"
¶~BlockFrequencyInfo()
~BlockFrequencyInfo()
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:50