LLVM 22.0.0git
llvm::Region Class Reference

#include "llvm/Analysis/RegionInfo.h"

Inheritance diagram for llvm::Region:
[legend]

Public Member Functions

 Region (BasicBlock *Entry, BasicBlock *Exit, RegionInfo *RI, DominatorTree *DT, Region *Parent=nullptr)
 ~Region ()
bool operator== (const RegionNode &RN) const
Public Member Functions inherited from llvm::RegionBase< RegionTraits< Function > >
 RegionBase (BlockT *Entry, BlockT *Exit, RegionInfoT *RI, DomTreeT *DT, RegionT *Parent=nullptr)
 Create a new region.
RegionBaseoperator= (const RegionBase &)=delete
 ~RegionBase ()
 Delete the Region and all its subregions.
BlockTgetEntry () const
 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.
BlockTgetExit () const
 Get the exit BasicBlock of the Region.
RegionTgetParent () const
 Get the parent of the Region.
RegionNodeT * getNode () const
 Get the RegionNode representing the current Region.
unsigned getDepth () const
 Get the nesting level of this Region.
bool isTopLevelRegion () const
 Check if a Region is the TopLevel region.
RegionTgetExpandedRegion () const
 Return a new (non-canonical) region, that is obtained by joining this region with its predecessors.
BlockTgetEnteringBlock () const
 Return the first block of this region's single entry edge, if existing.
BlockTgetExitingBlock () const
 Return the first block of this region's single exit edge, if existing.
bool getExitingBlocks (SmallVectorImpl< BlockT * > &Exitings) const
 Collect all blocks of this region's single exit edge, if existing.
bool isSimple () const
 Is this a simple region?
std::string getNameStr () const
 Returns the name of the Region.
RegionInfoT * getRegionInfo () const
 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 dump () const
 Print the region to stderr.
bool contains (const BlockT *BB) const
 Check if the region contains a BasicBlock.
LoopT * outermostLoopInRegion (LoopT *L) const
 Get the outermost loop in the region that contains a loop.
RegionTgetSubRegionNode (BlockT *BB) const
 Get the subregion that starts at a BasicBlock.
RegionNodeT * getBBNode (BlockT *BB) const
 Get the BasicBlock RegionNode for a BasicBlock.
void addSubRegion (RegionT *SubRegion, bool moveChildren=false)
 Add a new subregion to this Region.
RegionTremoveSubRegion (RegionT *SubRegion)
 Remove a subregion from this Region.
void transferChildrenTo (RegionT *To)
 Move all direct child nodes of this Region to another Region.
void verifyRegion () const
 Verify if the region is a correct region.
void clearNodeCache ()
 Clear the cache for BB RegionNodes.
iterator begin ()
iterator end ()
block_iterator block_begin ()
block_iterator block_end ()
block_range blocks ()
 Returns a range view of the basic blocks in the region.
element_iterator element_begin ()
element_iterator element_end ()
iterator_range< element_iteratorelements ()
Public Member Functions inherited from llvm::RegionNodeBase< RegionTraits< Function > >
BasicBlockgetNodeAs () const
RegiongetNodeAs () const
MachineBasicBlockgetNodeAs () const
MachineRegiongetNodeAs () const
RegionNodeBaseoperator= (const RegionNodeBase &)=delete
RegionTgetParent () const
 Get the parent Region of this RegionNode.
BlockTgetEntry () const
 Get the entry BasicBlock of this RegionNode.
bool isSubRegion () const
 Is this RegionNode a subregion?

Additional Inherited Members

Public Types inherited from llvm::RegionBase< RegionTraits< Function > >
enum  PrintStyle
 PrintStyle - Print region in difference ways. More...
using iterator
using const_iterator
using block_iterator
using const_block_iterator
using block_range
using const_block_range
using element_iterator
using const_element_iterator
Public Types inherited from llvm::RegionNodeBase< RegionTraits< Function > >
using BlockT
using RegionT
Protected Member Functions inherited from llvm::RegionNodeBase< RegionTraits< Function > >
 RegionNodeBase (RegionT *Parent, BlockT *Entry, bool isSubRegion=false)
 Create a RegionNode.

Detailed Description

Definition at line 887 of file RegionInfo.h.

Constructor & Destructor Documentation

◆ Region()

Region::Region ( BasicBlock * Entry,
BasicBlock * Exit,
RegionInfo * RI,
DominatorTree * DT,
Region * Parent = nullptr )

Definition at line 63 of file RegionInfo.cpp.

References Region(), and llvm::RegionBase< RegionTraits< Function > >::RegionBase().

Referenced by Region().

◆ ~Region()

Region::~Region ( )
default

Member Function Documentation

◆ operator==()

bool llvm::Region::operator== ( const RegionNode & RN) const
inline

Definition at line 893 of file RegionInfo.h.


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