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)

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&)

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:46

Parameters

const llvm::BlockFrequencyInfo&

BlockFrequencyInfo(llvm::BlockFrequencyInfo&& Arg)

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:48

Parameters

llvm::BlockFrequencyInfo&& Arg

BlockFrequencyInfo()

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:43

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

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:57

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

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

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:103

const llvm::Function* getFunction() const

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:56

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&)

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:53

Parameters

llvm::Function& F
const llvm::PreservedAnalyses& PA
int&

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

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:105

Parameters

llvm::raw_ostream& OS

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

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:101

Parameters

llvm::raw_ostream& OS
const llvm::BasicBlock* BB

void releaseMemory()

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:104

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)

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

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:58

Parameters

llvm::StringRef = "BlockFrequencyDAGs"

~BlockFrequencyInfo()

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfo.h:50