LLVM API Documentation

Public Member Functions | Static Public Attributes
llvm::BlockFrequencyInfo Class Reference

#include <BlockFrequencyInfo.h>

Inheritance diagram for llvm::BlockFrequencyInfo:
Inheritance graph
[legend]
Collaboration diagram for llvm::BlockFrequencyInfo:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 BlockFrequencyInfo ()
 ~BlockFrequencyInfo ()
void getAnalysisUsage (AnalysisUsage &AU) const override
bool runOnFunction (Function &F) override
void releaseMemory () override
void print (raw_ostream &O, const Module *M) const override
const FunctiongetFunction () const
void view () const
BlockFrequency getBlockFreq (const BasicBlock *BB) const
raw_ostreamprintBlockFreq (raw_ostream &OS, const BlockFrequency Freq) const
raw_ostreamprintBlockFreq (raw_ostream &OS, const BasicBlock *BB) const
uint64_t getEntryFreq () const

Static Public Attributes

static char ID = 0

Detailed Description

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

Definition at line 28 of file BlockFrequencyInfo.h.


Constructor & Destructor Documentation

Definition at line 122 of file BlockFrequencyInfo.cpp.


Member Function Documentation

void BlockFrequencyInfo::getAnalysisUsage ( AnalysisUsage ) const [override, virtual]

getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.

Reimplemented from llvm::Pass.

Definition at line 124 of file BlockFrequencyInfo.cpp.

References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().

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 149 of file BlockFrequencyInfo.cpp.

References llvm::ARMISD::BFI.

Referenced by llvm::DOTGraphTraits< BlockFrequencyInfo * >::getNodeLabel().

Definition at line 180 of file BlockFrequencyInfo.cpp.

References llvm::ARMISD::BFI.

void BlockFrequencyInfo::print ( raw_ostream O,
const Module M 
) const [override, virtual]

print - Print out the internal state of the pass. This is called by Analyze to print out the contents of an analysis. Otherwise it is not necessary to implement this method. Beware that the module pointer MAY be null. This automatically forwards to a virtual function that does not provide the Module* in case the analysis doesn't need it it can just be ignored.

Reimplemented from llvm::Pass.

Definition at line 145 of file BlockFrequencyInfo.cpp.

References llvm::ARMISD::BFI.

Definition at line 175 of file BlockFrequencyInfo.cpp.

References llvm::ARMISD::BFI.

void BlockFrequencyInfo::releaseMemory ( ) [override, virtual]

releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. The default behavior of passes is to hold onto memory for the entire duration of their lifetime (which is the entire compile time). For pipelined passes, this is not a big deal because that memory gets recycled every time the pass is invoked on another program unit. For IP passes, it is more important to free memory when it is unused.

Optionally implement this function to release pass memory when it is no longer used.

Reimplemented from llvm::Pass.

Definition at line 143 of file BlockFrequencyInfo.cpp.

References llvm::ARMISD::BFI.

bool BlockFrequencyInfo::runOnFunction ( Function F) [override, virtual]

runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.

Implements llvm::FunctionPass.

Definition at line 130 of file BlockFrequencyInfo.cpp.

References llvm::ARMISD::BFI, GVDT_None, LI, view(), and ViewBlockFreqPropagationDAG.

void BlockFrequencyInfo::view ( ) const

Pop up a ghostview window with the current block frequency propagation rendered using dot.

Definition at line 155 of file BlockFrequencyInfo.cpp.

References llvm::errs(), and llvm::ViewGraph().

Referenced by runOnFunction().


Member Data Documentation

block Block Frequency true char BlockFrequencyInfo::ID = 0 [static]

Definition at line 33 of file BlockFrequencyInfo.h.


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