LLVM
8.0.1
|
#include "llvm/Analysis/RegionInfo.h"
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 | |
RegionBase & | operator= (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_iterator > | elements () |
iterator_range< const_element_iterator > | elements () const |
Public Member Functions inherited from llvm::RegionNodeBase< RegionTraits< Function > > | |
RegionNodeBase (const RegionNodeBase &)=delete | |
RegionNodeBase & | operator= (const RegionNodeBase &)=delete |
RegionT * | getParent () const |
Get the parent Region of this RegionNode. More... | |
BlockT * | getEntry () const |
Get the entry BasicBlock of this RegionNode. More... | |
T * | getNodeAs () const |
Get the content of this RegionNode. More... | |
BasicBlock * | getNodeAs () const |
Region * | getNodeAs () const |
MachineBasicBlock * | getNodeAs () const |
MachineRegion * | getNodeAs () 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... | |
Definition at line 894 of file RegionInfo.h.
Region::Region | ( | BasicBlock * | Entry, |
BasicBlock * | Exit, | ||
RegionInfo * | RI, | ||
DominatorTree * | DT, | ||
Region * | Parent = nullptr |
||
) |
Definition at line 64 of file RegionInfo.cpp.
References llvm::RegionInfo::RegionInfo(), ~Region(), and llvm::RegionInfo::~RegionInfo().
Referenced by llvm::RegionInfo::recalculate().
|
default |
Referenced by Region().
|
inline |
Definition at line 900 of file RegionInfo.h.