LLVM: llvm::BlockFrequencyInfo Class Reference (original) (raw)

BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequencies. More...

#include "[llvm/Analysis/BlockFrequencyInfo.h](BlockFrequencyInfo%5F8h%5Fsource.html)"

Public Member Functions
LLVM_ABI BlockFrequencyInfo ()
LLVM_ABI BlockFrequencyInfo (const Function &F, const BranchProbabilityInfo &BPI, const LoopInfo &LI)
BlockFrequencyInfo (const BlockFrequencyInfo &)=delete
BlockFrequencyInfo & operator= (const BlockFrequencyInfo &)=delete
LLVM_ABI BlockFrequencyInfo (BlockFrequencyInfo &&Arg)
LLVM_ABI BlockFrequencyInfo & operator= (BlockFrequencyInfo &&RHS)
LLVM_ABI ~BlockFrequencyInfo ()
LLVM_ABI bool invalidate (Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &)
Handle invalidation explicitly.
LLVM_ABI const Function * getFunction () const
LLVM_ABI const BranchProbabilityInfo * getBPI () const
LLVM_ABI void view (StringRef="BlockFrequencyDAGs") const
Pop up a ghostview window with the current block frequency propagation rendered using dot.
LLVM_ABI BlockFrequency getBlockFreq (const BasicBlock *BB) const
getblockFreq - Return block frequency.
LLVM_ABI std::optional< uint64_t > getBlockProfileCount (const BasicBlock *BB, bool AllowSynthetic=false) const
Returns the estimated profile count of BB.
LLVM_ABI std::optional< uint64_t > getProfileCountFromFreq (BlockFrequency Freq) const
Returns the estimated profile count of Freq.
LLVM_ABI bool isIrrLoopHeader (const BasicBlock *BB)
Returns true if BB is an irreducible loop header block.
LLVM_ABI void setBlockFreq (const BasicBlock *BB, BlockFrequency Freq)
LLVM_ABI void setBlockFreqAndScale (const BasicBlock *ReferenceBB, BlockFrequency Freq, SmallPtrSetImpl< BasicBlock * > &BlocksToScale)
Set the frequency of ReferenceBB to Freq and scale the frequencies of the blocks in BlocksToScale such that their frequencies relative to ReferenceBB remain unchanged.
LLVM_ABI void calculate (const Function &F, const BranchProbabilityInfo &BPI, const LoopInfo &LI)
calculate - compute block frequency info for the given function.
LLVM_ABI BlockFrequency getEntryFreq () const
LLVM_ABI void releaseMemory ()
LLVM_ABI void print (raw_ostream &OS) const
LLVM_ABI void verifyMatch (BlockFrequencyInfo &Other) const

BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequencies.

Definition at line 38 of file BlockFrequencyInfo.h.

BlockFrequencyInfo::BlockFrequencyInfo ( ) default

BlockFrequencyInfo() [2/4]

BlockFrequencyInfo() [3/4]

References BlockFrequencyInfo().

BlockFrequencyInfo() [4/4]

~BlockFrequencyInfo()

BlockFrequencyInfo::~BlockFrequencyInfo ( ) default

calculate()

getBlockFreq()

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.

Definition at line 200 of file BlockFrequencyInfo.cpp.

Referenced by adjustedSumFreq(), computeFunctionSummary(), findBBsToSinkInto(), findBestInsertionSet(), llvm::getMaxFreq(), llvm::InlineFunctionImpl(), isColdCallSite(), llvm::printBlockFreq(), sinkLoopInvariantInstructions(), llvm::SplitIndirectBrCriticalEdges(), and updateCallerBFI().

getBlockProfileCount()

getBPI()

getEntryFreq()

getFunction()

getProfileCountFromFreq()

Returns the estimated profile count of Freq.

This uses the frequency Freq and multiplies it by the enclosing function's count (if available) and returns the value.

Definition at line 214 of file BlockFrequencyInfo.cpp.

References getFunction().

invalidate()

isIrrLoopHeader()

operator=() [1/2]

operator=() [2/2]

print()

void BlockFrequencyInfo::print ( raw_ostream & OS ) const

releaseMemory()

void BlockFrequencyInfo::releaseMemory ( )

setBlockFreq()

setBlockFreqAndScale()

verifyMatch()

view()

void BlockFrequencyInfo::view ( StringRef title = "BlockFrequencyDAGs" ) const

The documentation for this class was generated from the following files: