LLVM API Documentation
A RegionNode represents a subregion or a BasicBlock that is part of a Region. More...
#include <RegionInfo.h>
Public Types | |
typedef Tr::BlockT | BlockT |
typedef Tr::RegionT | RegionT |
Public Member Functions | |
RegionT * | getParent () const |
Get the parent Region of this RegionNode. | |
BlockT * | getEntry () const |
Get the entry BasicBlock of this RegionNode. | |
template<class T > | |
T * | getNodeAs () const |
Get the content of this RegionNode. | |
bool | isSubRegion () const |
Is this RegionNode a subregion? | |
template<> | |
BasicBlock * | getNodeAs () const |
template<> | |
Region * | getNodeAs () const |
template<> | |
MachineBasicBlock * | getNodeAs () const |
template<> | |
MachineRegion * | getNodeAs () const |
Protected Member Functions | |
RegionNodeBase (RegionT *Parent, BlockT *Entry, bool isSubRegion=false) | |
Create a RegionNode. | |
Friends | |
class | RegionBase< Tr > |
A RegionNode represents a subregion or a BasicBlock that is part of a Region.
Definition at line 110 of file RegionInfo.h.
typedef Tr::BlockT llvm::RegionNodeBase< Tr >::BlockT |
Definition at line 114 of file RegionInfo.h.
typedef Tr::RegionT llvm::RegionNodeBase< Tr >::RegionT |
Definition at line 115 of file RegionInfo.h.
llvm::RegionNodeBase< Tr >::RegionNodeBase | ( | RegionT * | Parent, |
BlockT * | Entry, | ||
bool | isSubRegion = false |
||
) | [inline, protected] |
Create a RegionNode.
Parent | The parent of this RegionNode. |
Entry | The entry BasicBlock of the RegionNode. If this RegionNode represents a BasicBlock, this is the BasicBlock itself. If it represents a subregion, this is the entry BasicBlock of the subregion. |
isSubRegion | If this RegionNode represents a SubRegion. |
Definition at line 146 of file RegionInfo.h.
BlockT* llvm::RegionNodeBase< Tr >::getEntry | ( | ) | const [inline] |
Get the entry BasicBlock of this RegionNode.
If this RegionNode represents a BasicBlock this is just the BasicBlock itself, otherwise we return the entry BasicBlock of the Subregion
Reimplemented in llvm::RegionBase< Tr >, llvm::RegionBase< RegionTraits< MachineFunction > >, and llvm::RegionBase< RegionTraits< Function > >.
Definition at line 167 of file RegionInfo.h.
MachineBasicBlock * llvm::RegionNodeBase< RegionTraits< MachineFunction > >::getNodeAs< MachineBasicBlock > | ( | ) | const [inline] |
Definition at line 125 of file MachineRegionInfo.h.
References getEntry().
MachineRegion * llvm::RegionNodeBase< RegionTraits< MachineFunction > >::getNodeAs< MachineRegion > | ( | ) | const [inline] |
Definition at line 132 of file MachineRegionInfo.h.
Get the content of this RegionNode.
This can be either a BasicBlock or a subregion. Before calling getNodeAs() check the type of the content with the isSubRegion() function call.
Referenced by buildExtractionBlockSet(), llvm::DOTGraphTraits< RegionInfoPass * >::getEdgeAttributes(), and llvm::DOTGraphTraits< RegionNode * >::getNodeLabel().
BasicBlock * llvm::RegionNodeBase< RegionTraits< Function > >::getNodeAs< BasicBlock > | ( | ) | const [inline] |
Definition at line 877 of file RegionInfo.h.
References getEntry().
Region * llvm::RegionNodeBase< RegionTraits< Function > >::getNodeAs< Region > | ( | ) | const [inline] |
Definition at line 885 of file RegionInfo.h.
RegionT* llvm::RegionNodeBase< Tr >::getParent | ( | ) | const [inline] |
Get the parent Region of this RegionNode.
The parent Region is the Region this RegionNode belongs to. If for example a BasicBlock is element of two Regions, there exist two RegionNodes for this BasicBlock. Each with the getParent() function pointing to the Region this RegionNode belongs to.
Reimplemented in llvm::RegionBase< Tr >, llvm::RegionBase< RegionTraits< MachineFunction > >, and llvm::RegionBase< RegionTraits< Function > >.
Definition at line 159 of file RegionInfo.h.
bool llvm::RegionNodeBase< Tr >::isSubRegion | ( | ) | const [inline] |
Is this RegionNode a subregion?
Definition at line 181 of file RegionInfo.h.
Referenced by buildExtractionBlockSet(), llvm::DOTGraphTraits< RegionInfoPass * >::getEdgeAttributes(), llvm::DOTGraphTraits< RegionNode * >::getNodeLabel(), and llvm::operator<<().
friend class RegionBase< Tr > [friend] |
Definition at line 111 of file RegionInfo.h.