LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::Region Class Reference

#include "llvm/Analysis/RegionInfo.h"

Inheritance diagram for llvm::Region:
Inheritance graph
[legend]
Collaboration diagram for llvm::Region:
Collaboration graph
[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. More...
 
 RegionBase (const RegionBase &)=delete
 
RegionBaseoperator= (const RegionBase &)=delete
 
 ~RegionBase ()
 Delete the Region and all its subregions. More...
 
BlockT * getEntry () const
 Get the entry BasicBlock of the Region. More...
 
void replaceEntry (BlockT *BB)
 Replace the entry basic block of the region with the new basic block. More...
 
void replaceExit (BlockT *BB)
 Replace the exit basic block of the region with the new basic block. More...
 
void replaceEntryRecursive (BlockT *NewEntry)
 Recursively replace the entry basic block of the region. More...
 
void replaceExitRecursive (BlockT *NewExit)
 Recursively replace the exit basic block of the region. More...
 
BlockT * getExit () const
 Get the exit BasicBlock of the Region. More...
 
RegionT * getParent () const
 Get the parent of the Region. More...
 
RegionNodeT * getNode () const
 Get the RegionNode representing the current Region. More...
 
RegionNodeT * getNode (BlockT *BB) const
 Get the RegionNode for a BasicBlock. More...
 
unsigned getDepth () const
 Get the nesting level of this Region. More...
 
bool isTopLevelRegion () const
 Check if a Region is the TopLevel region. More...
 
RegionT * getExpandedRegion () const
 Return a new (non-canonical) region, that is obtained by joining this region with its predecessors. More...
 
BlockT * getEnteringBlock () const
 Return the first block of this region's single entry edge, if existing. More...
 
BlockT * getExitingBlock () const
 Return the first block of this region's single exit edge, if existing. More...
 
bool getExitingBlocks (SmallVectorImpl< BlockT * > &Exitings) const
 Collect all blocks of this region's single exit edge, if existing. More...
 
bool isSimple () const
 Is this a simple region? More...
 
std::string getNameStr () const
 Returns the name of the Region. More...
 
RegionInfoT * getRegionInfo () const
 Return the RegionInfo object, that belongs to this Region. More...
 
void print (raw_ostream &OS, bool printTree=true, unsigned level=0, PrintStyle Style=PrintNone) const
 Print the region. More...
 
void dump () const
 Print the region to stderr. More...
 
bool contains (const BlockT *BB) const
 Check if the region contains a BasicBlock. More...
 
bool contains (const RegionT *SubRegion) const
 Check if the region contains another region. More...
 
bool contains (const InstT *Inst) const
 Check if the region contains an Instruction. More...
 
bool contains (const LoopT *L) const
 Check if the region contains a loop. More...
 
LoopT * outermostLoopInRegion (LoopT *L) const
 Get the outermost loop in the region that contains a loop. More...
 
LoopT * outermostLoopInRegion (LoopInfoT *LI, BlockT *BB) const
 Get the outermost loop in the region that contains a basic block. More...
 
RegionT * getSubRegionNode (BlockT *BB) const
 Get the subregion that starts at a BasicBlock. More...
 
RegionNodeT * getBBNode (BlockT *BB) const
 Get the BasicBlock RegionNode for a BasicBlock. More...
 
void addSubRegion (RegionT *SubRegion, bool moveChildren=false)
 Add a new subregion to this Region. More...
 
RegionT * removeSubRegion (RegionT *SubRegion)
 Remove a subregion from this Region. More...
 
void transferChildrenTo (RegionT *To)
 Move all direct child nodes of this Region to another Region. More...
 
void verifyRegion () const
 Verify if the region is a correct region. More...
 
void clearNodeCache ()
 Clear the cache for BB RegionNodes. More...
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
block_iterator block_begin ()
 
const_block_iterator block_begin () const
 
block_iterator block_end ()
 
const_block_iterator block_end () const
 
block_range blocks ()
 Returns a range view of the basic blocks in the region. More...
 
const_block_range blocks () const
 Returns a range view of the basic blocks in the region. More...
 
element_iterator element_begin ()
 
const_element_iterator element_begin () const
 
element_iterator element_end ()
 
const_element_iterator element_end () const
 
iterator_range< element_iteratorelements ()
 
iterator_range< const_element_iteratorelements () const
 
- Public Member Functions inherited from llvm::RegionNodeBase< RegionTraits< Function > >
 RegionNodeBase (const RegionNodeBase &)=delete
 
RegionNodeBaseoperator= (const RegionNodeBase &)=delete
 
RegionTgetParent () const
 Get the parent Region of this RegionNode. More...
 
BlockTgetEntry () const
 Get the entry BasicBlock of this RegionNode. More...
 
TgetNodeAs () const
 Get the content of this RegionNode. More...
 
BasicBlockgetNodeAs () const
 
RegiongetNodeAs () const
 
MachineBasicBlockgetNodeAs () const
 
MachineRegiongetNodeAs () const
 
bool isSubRegion () const
 Is this RegionNode a subregion? More...
 

Additional Inherited Members

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

Detailed Description

Definition at line 893 of file RegionInfo.h.

Constructor & Destructor Documentation

◆ Region()

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

◆ ~Region()

Region::~Region ( )
default

Referenced by Region().

Member Function Documentation

◆ operator==()

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

Definition at line 899 of file RegionInfo.h.


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