class RegionInfoBase
Declaration
template <class Tr>
class RegionInfoBase { /* full declaration omitted */ };
Description
Analysis that detects all canonical Regions. The RegionInfo pass detects all canonical regions in a function. The Regions are connected using the parent relation. This builds a Program Structure Tree.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:676
Templates
- Tr
Member Variables
- public static bool VerifyRegionInfo
- public static typename RegionT::PrintStyle printStyle
Method Overview
- public RegionInfoBase<RegionTr>(const RegionInfoBase<RegionTr> &)
- public void clearNodeCache()
- public void dump() const
- public llvm::RegionInfoBase::RegionT * getCommonRegion(llvm::RegionInfoBase::RegionT * A, llvm::RegionInfoBase::RegionT * B) const
- public llvm::RegionInfoBase::RegionT * getCommonRegion(llvm::RegionInfoBase::BlockT * A, llvm::RegionInfoBase::BlockT * B) const
- public llvm::RegionInfoBase::RegionT * getCommonRegion(SmallVectorImpl<llvm::RegionInfoBase::RegionT *> & Regions) const
- public llvm::RegionInfoBase::RegionT * getCommonRegion(SmallVectorImpl<llvm::RegionInfoBase::BlockT *> & BBs) const
- public llvm::RegionInfoBase::BlockT * getMaxRegionExit(llvm::RegionInfoBase::BlockT * BB) const
- public llvm::RegionInfoBase::RegionT * getRegionFor(llvm::RegionInfoBase::BlockT * BB) const
- public llvm::RegionInfoBase::RegionT * getTopLevelRegion() const
- public void print(llvm::raw_ostream & OS) const
- public void releaseMemory()
- public void setRegionFor(llvm::RegionInfoBase::BlockT * BB, llvm::RegionInfoBase::RegionT * R)
- protected template <typename TheRegionT>void updateRegionTree(llvm::RegionInfoBase::RegionInfoT & RI, TheRegionT * R)
- public void verifyAnalysis() const
Methods
¶RegionInfoBase<RegionTr>(
const RegionInfoBase<RegionTr>&)
RegionInfoBase<RegionTr>(
const RegionInfoBase<RegionTr>&)
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:801
Parameters
- const RegionInfoBase<RegionTr>&
¶void clearNodeCache()
void clearNodeCache()
Description
Clear the Node Cache for all Regions.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:873
¶void dump() const
void dump() const
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:809
¶llvm::RegionInfoBase::RegionT* getCommonRegion(
llvm::RegionInfoBase::RegionT* A,
llvm::RegionInfoBase::RegionT* B) const
llvm::RegionInfoBase::RegionT* getCommonRegion(
llvm::RegionInfoBase::RegionT* A,
llvm::RegionInfoBase::RegionT* B) const
Description
Find the smallest region that contains two regions.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:845
Parameters
- llvm::RegionInfoBase::RegionT* A
- The first region.
- llvm::RegionInfoBase::RegionT* B
- The second region.
Returns
The smallest region containing A and B.
¶llvm::RegionInfoBase::RegionT* getCommonRegion(
llvm::RegionInfoBase::BlockT* A,
llvm::RegionInfoBase::BlockT* B) const
llvm::RegionInfoBase::RegionT* getCommonRegion(
llvm::RegionInfoBase::BlockT* A,
llvm::RegionInfoBase::BlockT* B) const
Description
Find the smallest region that contains two basic blocks.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:852
Parameters
- llvm::RegionInfoBase::BlockT* A
- The first basic block.
- llvm::RegionInfoBase::BlockT* B
- The second basic block.
Returns
The smallest region that contains A and B.
¶llvm::RegionInfoBase::RegionT* getCommonRegion(
SmallVectorImpl<
llvm::RegionInfoBase::RegionT*>& Regions)
const
llvm::RegionInfoBase::RegionT* getCommonRegion(
SmallVectorImpl<
llvm::RegionInfoBase::RegionT*>& Regions)
const
Description
Find the smallest region that contains a set of regions.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:860
Parameters
- SmallVectorImpl<llvm::RegionInfoBase::RegionT*>& Regions
- A vector of regions.
Returns
The smallest region that contains all regions in Regions.
¶llvm::RegionInfoBase::RegionT* getCommonRegion(
SmallVectorImpl<
llvm::RegionInfoBase::BlockT*>& BBs) const
llvm::RegionInfoBase::RegionT* getCommonRegion(
SmallVectorImpl<
llvm::RegionInfoBase::BlockT*>& BBs) const
Description
Find the smallest region that contains a set of basic blocks.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:866
Parameters
- SmallVectorImpl<llvm::RegionInfoBase::BlockT*>& BBs
- A vector of basic blocks.
Returns
The smallest region that contains all basic blocks in BBS.
¶llvm::RegionInfoBase::BlockT* getMaxRegionExit(
llvm::RegionInfoBase::BlockT* BB) const
llvm::RegionInfoBase::BlockT* getMaxRegionExit(
llvm::RegionInfoBase::BlockT* BB) const
Description
Return the exit of the maximal refined region, that starts at a BasicBlock.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:838
Parameters
- llvm::RegionInfoBase::BlockT* BB
- The BasicBlock the refined region starts.
¶llvm::RegionInfoBase::RegionT* getRegionFor(
llvm::RegionInfoBase::BlockT* BB) const
llvm::RegionInfoBase::RegionT* getRegionFor(
llvm::RegionInfoBase::BlockT* BB) const
Description
Get the smallest region that contains a BasicBlock.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:819
Parameters
- llvm::RegionInfoBase::BlockT* BB
- The basic block.
Returns
The smallest region, that contains BB or NULL, if there is no region containing BB.
¶llvm::RegionInfoBase::RegionT* getTopLevelRegion()
const
llvm::RegionInfoBase::RegionT* getTopLevelRegion()
const
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:868
¶void print(llvm::raw_ostream& OS) const
void print(llvm::raw_ostream& OS) const
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:807
Parameters
¶void releaseMemory()
void releaseMemory()
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:812
¶void setRegionFor(
llvm::RegionInfoBase::BlockT* BB,
llvm::RegionInfoBase::RegionT* R)
void setRegionFor(
llvm::RegionInfoBase::BlockT* BB,
llvm::RegionInfoBase::RegionT* R)
Description
Set the smallest region that surrounds a basic block.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:825
Parameters
- llvm::RegionInfoBase::BlockT* BB
- The basic block surrounded by a region.
- llvm::RegionInfoBase::RegionT* R
- The smallest region that surrounds BB.
¶template <typename TheRegionT>
void updateRegionTree(
llvm::RegionInfoBase::RegionInfoT& RI,
TheRegionT* R)
template <typename TheRegionT>
void updateRegionTree(
llvm::RegionInfoBase::RegionInfoT& RI,
TheRegionT* R)
Description
Update refences to a RegionInfoT held by the RegionT managed here This is a post-move helper. Regions hold references to the owning RegionInfo object. After a move these need to be fixed.
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:733
Templates
- TheRegionT
Parameters
- llvm::RegionInfoBase::RegionInfoT& RI
- TheRegionT* R
¶void verifyAnalysis() const
void verifyAnalysis() const
Declared at: llvm/include/llvm/Analysis/RegionInfo.h:878