|
LLVM
8.0.1
|
#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"


Public Member Functions | |
| MachineBranchProbabilityInfo () | |
| void | getAnalysisUsage (AnalysisUsage &AU) const override |
| getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. More... | |
| BranchProbability | getEdgeProbability (const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const |
| BranchProbability | getEdgeProbability (const MachineBasicBlock *Src, MachineBasicBlock::const_succ_iterator Dst) const |
| bool | isEdgeHot (const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const |
| MachineBasicBlock * | getHotSucc (MachineBasicBlock *MBB) const |
| raw_ostream & | printEdgeProbability (raw_ostream &OS, const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const |
Public Member Functions inherited from llvm::ImmutablePass | |
| ImmutablePass (char &pid) | |
| ~ImmutablePass () override | |
| virtual void | initializePass () |
| initializePass - This method may be overriden by immutable passes to allow them to perform various initialization actions they require. More... | |
| ImmutablePass * | getAsImmutablePass () override |
| bool | runOnModule (Module &) override |
| ImmutablePasses are never run. More... | |
Public Member Functions inherited from llvm::ModulePass | |
| ModulePass (char &pid) | |
| ~ModulePass () override | |
| Pass * | createPrinterPass (raw_ostream &OS, const std::string &Banner) const override |
| createPrinterPass - Get a module printer pass. More... | |
| void | assignPassManager (PMStack &PMS, PassManagerType T) override |
| Find appropriate Module Pass Manager in the PM Stack and add self into that manager. More... | |
| PassManagerType | getPotentialPassManagerType () const override |
| Return what kind of Pass Manager can manage this pass. More... | |
Public Member Functions inherited from llvm::Pass | |
| Pass (PassKind K, char &pid) | |
| Pass (const Pass &)=delete | |
| Pass & | operator= (const Pass &)=delete |
| virtual | ~Pass () |
| PassKind | getPassKind () const |
| virtual StringRef | getPassName () const |
| getPassName - Return a nice clean name for a pass. More... | |
| AnalysisID | getPassID () const |
| getPassID - Return the PassID number that corresponds to this pass. More... | |
| virtual bool | doInitialization (Module &) |
| doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run. More... | |
| virtual bool | doFinalization (Module &) |
| doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run. More... | |
| virtual void | print (raw_ostream &OS, const Module *M) const |
| print - Print out the internal state of the pass. More... | |
| void | dump () const |
| virtual void | preparePassManager (PMStack &) |
| Check if available pass managers are suitable for this pass or not. More... | |
| void | setResolver (AnalysisResolver *AR) |
| AnalysisResolver * | getResolver () const |
| virtual void | releaseMemory () |
| 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. More... | |
| virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
| getAdjustedAnalysisPointer - This method is used when a pass implements an analysis interface through multiple inheritance. More... | |
| virtual PMDataManager * | getAsPMDataManager () |
| virtual void | verifyAnalysis () const |
| verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information. More... | |
| virtual void | dumpPassStructure (unsigned Offset=0) |
| template<typename AnalysisType > | |
| AnalysisType * | getAnalysisIfAvailable () const |
| getAnalysisIfAvailable<AnalysisType>() - Subclasses use this function to get analysis information that might be around, for example to update it. More... | |
| bool | mustPreserveAnalysisID (char &AID) const |
| mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID. More... | |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysis () const |
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. More... | |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysis (Function &F) |
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. More... | |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysisID (AnalysisID PI) const |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysisID (AnalysisID PI, Function &F) |
Static Public Attributes | |
| static char | ID = 0 |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::Pass | |
| static const PassInfo * | lookupPassInfo (const void *TI) |
| static const PassInfo * | lookupPassInfo (StringRef Arg) |
| static Pass * | createPass (AnalysisID ID) |
Protected Member Functions inherited from llvm::ModulePass | |
| bool | skipModule (Module &M) const |
| Optional passes call this function to check whether the pass should be skipped. More... | |
Definition at line 25 of file MachineBranchProbabilityInfo.h.
|
inline |
Definition at line 39 of file MachineBranchProbabilityInfo.h.
References llvm::PassRegistry::getPassRegistry(), and llvm::initializeMachineBranchProbabilityInfoPass().
|
inlineoverridevirtual |
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 44 of file MachineBranchProbabilityInfo.h.
References getEdgeProbability(), getHotSucc(), isEdgeHot(), printEdgeProbability(), and llvm::AnalysisUsage::setPreservesAll().
| BranchProbability MachineBranchProbabilityInfo::getEdgeProbability | ( | const MachineBasicBlock * | Src, |
| const MachineBasicBlock * | Dst | ||
| ) | const |
Definition at line 49 of file MachineBranchProbabilityInfo.cpp.
References llvm::find(), and llvm::MachineBasicBlock::successors().
Referenced by llvm::TailDuplicator::canTailDuplicate(), llvm::RegBankSelect::EdgeInsertPoint::frequency(), getAnalysisUsage(), getBlockName(), llvm::HexagonInstrInfo::getDotNewPredJumpOp(), getHotSucc(), getLayoutSuccessorProbThreshold(), getNewValueJumpOpcode(), greaterWithBias(), isEdgeHot(), MaySpeculate(), mergeOperations(), parseCond(), printEdgeProbability(), splitMBB(), and UpdatePredRedefs().
| BranchProbability MachineBranchProbabilityInfo::getEdgeProbability | ( | const MachineBasicBlock * | Src, |
| MachineBasicBlock::const_succ_iterator | Dst | ||
| ) | const |
Definition at line 43 of file MachineBranchProbabilityInfo.cpp.
| MachineBasicBlock * MachineBranchProbabilityInfo::getHotSucc | ( | MachineBasicBlock * | MBB | ) | const |
Definition at line 63 of file MachineBranchProbabilityInfo.cpp.
References E, getEdgeProbability(), llvm::BranchProbability::getZero(), I, StaticLikelyProb(), llvm::MachineBasicBlock::succ_begin(), and llvm::MachineBasicBlock::succ_end().
Referenced by getAnalysisUsage().
| bool MachineBranchProbabilityInfo::isEdgeHot | ( | const MachineBasicBlock * | Src, |
| const MachineBasicBlock * | Dst | ||
| ) | const |
Definition at line 56 of file MachineBranchProbabilityInfo.cpp.
References getEdgeProbability(), and StaticLikelyProb().
Referenced by getAnalysisUsage(), and printEdgeProbability().
| raw_ostream & MachineBranchProbabilityInfo::printEdgeProbability | ( | raw_ostream & | OS, |
| const MachineBasicBlock * | Src, | ||
| const MachineBasicBlock * | Dst | ||
| ) | const |
Definition at line 82 of file MachineBranchProbabilityInfo.cpp.
References getEdgeProbability(), isEdgeHot(), and llvm::printMBBReference().
Referenced by getAnalysisUsage().
|
static |
Definition at line 37 of file MachineBranchProbabilityInfo.h.
1.8.13