LLVM: llvm::MachineRegion Class Reference (original) (raw)
Public Member Functions
MachineRegion (MachineBasicBlock *Entry, MachineBasicBlock *Exit, MachineRegionInfo *RI, MachineDominatorTree *DT, MachineRegion *Parent=nullptr)
operator== (const MachineRegionNode &RN) const
Public Member Functions inherited from llvm::RegionBase< RegionTraits< MachineFunction > >
RegionBase (BlockT *Entry, BlockT *Exit, RegionInfoT *RI, DomTreeT *DT, RegionT *Parent=nullptr)
Create a new region.
RegionBase (const RegionBase &)=delete
operator= (const RegionBase &)=delete
~RegionBase ()
Delete the Region and all its subregions.
BlockT *
Get the entry BasicBlock of the Region.
void
replaceEntry (BlockT *BB)
Replace the entry basic block of the region with the new basic block.
void
replaceExit (BlockT *BB)
Replace the exit basic block of the region with the new basic block.
void
replaceEntryRecursive (BlockT *NewEntry)
Recursively replace the entry basic block of the region.
void
replaceExitRecursive (BlockT *NewExit)
Recursively replace the exit basic block of the region.
BlockT *
Get the exit BasicBlock of the Region.
RegionT *
Get the parent of the Region.
RegionNodeT *
Get the RegionNode representing the current Region.
RegionNodeT *
Get the RegionNode for a BasicBlock.
Get the nesting level of this Region.
Check if a Region is the TopLevel region.
RegionT *
Return a new (non-canonical) region, that is obtained by joining this region with its predecessors.
BlockT *
Return the first block of this region's single entry edge, if existing.
BlockT *
Return the first block of this region's single exit edge, if existing.
getExitingBlocks (SmallVectorImpl< BlockT * > &Exitings) const
Collect all blocks of this region's single exit edge, if existing.
Is this a simple region?
std::string
getNameStr () const
Returns the name of the Region.
RegionInfoT *
Return the RegionInfo object, that belongs to this Region.
void
print (raw_ostream &OS, bool printTree=true, unsigned level=0, PrintStyle Style=PrintNone) const
Print the region.
void
Print the region to stderr.
contains (const BlockT *BB) const
Check if the region contains a BasicBlock.
contains (const RegionT *SubRegion) const
Check if the region contains another region.
contains (const InstT *Inst) const
Check if the region contains an Instruction.
contains (const LoopT *L) const
Check if the region contains a loop.
LoopT *
outermostLoopInRegion (LoopT *L) const
Get the outermost loop in the region that contains a loop.
LoopT *
outermostLoopInRegion (LoopInfoT *LI, BlockT *BB) const
Get the outermost loop in the region that contains a basic block.
RegionT *
getSubRegionNode (BlockT *BB) const
Get the subregion that starts at a BasicBlock.
RegionNodeT *
Get the BasicBlock RegionNode for a BasicBlock.
void
addSubRegion (RegionT *SubRegion, bool moveChildren=false)
Add a new subregion to this Region.
RegionT *
removeSubRegion (RegionT *SubRegion)
Remove a subregion from this Region.
void
transferChildrenTo (RegionT *To)
Move all direct child nodes of this Region to another Region.
void
Verify if the region is a correct region.
void
Clear the cache for BB RegionNodes.
begin ()
end ()
block_begin ()
block_begin () const
block_end ()
blocks ()
Returns a range view of the basic blocks in the region.
Returns a range view of the basic blocks in the region.
element_end ()
element_end () const
iterator_range< element_iterator >
elements ()
iterator_range< const_element_iterator >
Public Member Functions inherited from llvm::RegionNodeBase< Tr >
RegionNodeBase (const RegionNodeBase &)=delete
operator= (const RegionNodeBase &)=delete
RegionT *
Get the parent Region of this RegionNode.
BlockT *
Get the entry BasicBlock of this RegionNode.
template<class T >
T *
Get the content of this RegionNode.
isSubRegion () const
Is this RegionNode a subregion?
Region *
Definition at line 61 of file MachineRegionInfo.h.