LLVM: llvm::Region Class Reference (original) (raw)

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.

RegionBase &

operator= (const RegionBase &)=delete

~RegionBase ()

Delete the Region and all its subregions.

BlockT *

getEntry () 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.

BlockT *

getExit () const

Get the exit BasicBlock of the Region.

RegionT *

getParent () 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.

RegionT *

getExpandedRegion () const

Return a new (non-canonical) region, that is obtained by joining this region with its predecessors.

BlockT *

getEnteringBlock () const

Return the first block of this region's single entry edge, if existing.

BlockT *

getExitingBlock () 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.

RegionT *

getSubRegionNode (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.

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

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_iterator >

elements ()

Public Member Functions inherited from llvm::RegionNodeBase< RegionTraits< Function > >

BasicBlock *

getNodeAs () const

Region *

getNodeAs () const

MachineBasicBlock *

getNodeAs () const

MachineRegion *

getNodeAs () const

RegionNodeBase &

operator= (const RegionNodeBase &)=delete

RegionT *

getParent () const

Get the parent Region of this RegionNode.

BlockT *

getEntry () const

Get the entry BasicBlock of this RegionNode.

bool

isSubRegion () const

Is this RegionNode a subregion?

Definition at line 887 of file RegionInfo.h.