class BranchProbabilityInfo::SccInfo
Declaration
class BranchProbabilityInfo::SccInfo { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:205
Member Variables
- private llvm::BranchProbabilityInfo::SccInfo::SccMap SccNums
- private llvm::BranchProbabilityInfo::SccInfo:: SccBlockTypeMaps SccBlocks
Method Overview
- public SccInfo(const llvm::Function & F)
- private void calculateSccBlockType(const llvm::BasicBlock * BB, int SccNum)
- public int getSCCNum(const llvm::BasicBlock * BB) const
- private uint32_t getSccBlockType(const llvm::BasicBlock * BB, int SccNum) const
- public void getSccEnterBlocks(int SccNum, SmallVectorImpl<llvm::BasicBlock *> & Enters) const
- public void getSccExitBlocks(int SccNum, SmallVectorImpl<llvm::BasicBlock *> & Exits) const
- public bool isSCCExitingBlock(const llvm::BasicBlock * BB, int SccNum) const
- public bool isSCCHeader(const llvm::BasicBlock * BB, int SccNum) const
Methods
¶SccInfo(const llvm::Function& F)
SccInfo(const llvm::Function& F)
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:231
Parameters
- const llvm::Function& F
¶void calculateSccBlockType(
const llvm::BasicBlock* BB,
int SccNum)
void calculateSccBlockType(
const llvm::BasicBlock* BB,
int SccNum)
Description
Calculates \p BB's type and stores it in internal data structures for future use. Please note that \p BB must belong to SSC with \p SccNum ID.
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:264
Parameters
- const llvm::BasicBlock* BB
- int SccNum
¶int getSCCNum(const llvm::BasicBlock* BB) const
int getSCCNum(const llvm::BasicBlock* BB) const
Description
If \p BB belongs to some SCC then ID of that SCC is returned, otherwise -1 is returned. If \p BB belongs to more than one SCC at the same time result is undefined.
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:236
Parameters
- const llvm::BasicBlock* BB
¶uint32_t getSccBlockType(
const llvm::BasicBlock* BB,
int SccNum) const
uint32_t getSccBlockType(
const llvm::BasicBlock* BB,
int SccNum) const
Description
Returns \p BB's type according to classification given by SccBlockType enum. Please note that \p BB must belong to SSC with \p SccNum ID.
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:261
Parameters
- const llvm::BasicBlock* BB
- int SccNum
¶void getSccEnterBlocks(
int SccNum,
SmallVectorImpl<llvm::BasicBlock*>& Enters)
const
void getSccEnterBlocks(
int SccNum,
SmallVectorImpl<llvm::BasicBlock*>& Enters)
const
Description
Fills in \p Enters vector with all such blocks that don't belong to SCC with \p SccNum ID but there is an edge to a block belonging to the SCC.
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:250
Parameters
- int SccNum
- SmallVectorImpl<llvm::BasicBlock*>& Enters
¶void getSccExitBlocks(
int SccNum,
SmallVectorImpl<llvm::BasicBlock*>& Exits)
const
void getSccExitBlocks(
int SccNum,
SmallVectorImpl<llvm::BasicBlock*>& Exits)
const
Description
Fills in \p Exits vector with all such blocks that don't belong to SCC with \p SccNum ID but there is an edge from a block belonging to the SCC.
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:255
Parameters
- int SccNum
- SmallVectorImpl<llvm::BasicBlock*>& Exits
¶bool isSCCExitingBlock(const llvm::BasicBlock* BB,
int SccNum) const
bool isSCCExitingBlock(const llvm::BasicBlock* BB,
int SccNum) const
Description
Returns true if \p BB is an 'exiting' block in SCC with \p SccNum ID, false otherwise.
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:244
Parameters
- const llvm::BasicBlock* BB
- int SccNum
¶bool isSCCHeader(const llvm::BasicBlock* BB,
int SccNum) const
bool isSCCHeader(const llvm::BasicBlock* BB,
int SccNum) const
Description
Returns true if \p BB is a 'header' block in SCC with \p SccNum ID, false otherwise.
Declared at: llvm/include/llvm/Analysis/BranchProbabilityInfo.h:239
Parameters
- const llvm::BasicBlock* BB
- int SccNum