LLVM API Documentation
Analysis that detects all canonical Regions. More...
#include <RegionInfo.h>
Public Member Functions | |
void | print (raw_ostream &OS) const |
void | dump () const |
void | releaseMemory () |
RegionT * | getRegionFor (BlockT *BB) const |
Get the smallest region that contains a BasicBlock. | |
void | setRegionFor (BlockT *BB, RegionT *R) |
Set the smallest region that surrounds a basic block. | |
RegionT * | operator[] (BlockT *BB) const |
A shortcut for getRegionFor(). | |
BlockT * | getMaxRegionExit (BlockT *BB) const |
Return the exit of the maximal refined region, that starts at a BasicBlock. | |
RegionT * | getCommonRegion (RegionT *A, RegionT *B) const |
Find the smallest region that contains two regions. | |
RegionT * | getCommonRegion (BlockT *A, BlockT *B) const |
Find the smallest region that contains two basic blocks. | |
RegionT * | getCommonRegion (SmallVectorImpl< RegionT * > &Regions) const |
Find the smallest region that contains a set of regions. | |
RegionT * | getCommonRegion (SmallVectorImpl< BlockT * > &BBs) const |
Find the smallest region that contains a set of basic blocks. | |
RegionT * | getTopLevelRegion () const |
void | splitBlock (BlockT *NewBB, BlockT *OldBB) |
Update RegionInfo after a basic block was split. | |
void | clearNodeCache () |
Clear the Node Cache for all Regions. | |
void | verifyAnalysis () const |
Static Public Attributes | |
static bool | VerifyRegionInfo = false |
static RegionT::PrintStyle | printStyle |
Friends | |
class | RegionInfo |
class | MachineRegionInfo |
Analysis that detects all canonical Regions.
The RegionInfo pass detects all canonical regions in a function. The Regions are connected using the parent relation. This builds a Program Structure Tree.
Definition at line 652 of file RegionInfo.h.
void llvm::RegionInfoBase< Tr >::clearNodeCache | ( | ) | [inline] |
Clear the Node Cache for all Regions.
Definition at line 804 of file RegionInfo.h.
Referenced by llvm::RGPassManager::runOnFunction().
void llvm::RegionInfoBase< Tr >::dump | ( | ) | const |
Definition at line 778 of file RegionInfoImpl.h.
References llvm::dbgs().
Referenced by llvm::MachineRegionInfoPass::dump(), llvm::RegionInfoPass::dump(), and llvm::RGPassManager::runOnFunction().
Tr::RegionT * llvm::RegionInfoBase< Tr >::getCommonRegion | ( | RegionT * | A, |
RegionT * | B | ||
) | const |
Find the smallest region that contains two regions.
A | The first region. |
B | The second region. |
Definition at line 854 of file RegionInfoImpl.h.
Referenced by llvm::RegionInfoBase< RegionTraits< Function > >::getCommonRegion().
RegionT* llvm::RegionInfoBase< Tr >::getCommonRegion | ( | BlockT * | A, |
BlockT * | B | ||
) | const [inline] |
Find the smallest region that contains two basic blocks.
A | The first basic block. |
B | The second basic block. |
Definition at line 777 of file RegionInfo.h.
Tr::RegionT * llvm::RegionInfoBase< Tr >::getCommonRegion | ( | SmallVectorImpl< RegionT * > & | Regions | ) | const |
Find the smallest region that contains a set of regions.
Regions | A vector of regions. |
Definition at line 869 of file RegionInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T >::back(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::pop_back().
Tr::RegionT * llvm::RegionInfoBase< Tr >::getCommonRegion | ( | SmallVectorImpl< BlockT * > & | BBs | ) | const |
Find the smallest region that contains a set of basic blocks.
BBs | A vector of basic blocks. |
Definition at line 881 of file RegionInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T >::back(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::pop_back().
RegionInfoBase< Tr >::BlockT * llvm::RegionInfoBase< Tr >::getMaxRegionExit | ( | BlockT * | BB | ) | const |
Return the exit of the maximal refined region, that starts at a BasicBlock.
BB | The BasicBlock the refined region starts. |
Definition at line 813 of file RegionInfoImpl.h.
Tr::RegionT * llvm::RegionInfoBase< Tr >::getRegionFor | ( | BlockT * | BB | ) | const |
Get the smallest region that contains a BasicBlock.
BB | The basic block. |
Definition at line 796 of file RegionInfoImpl.h.
References I.
Referenced by llvm::RegionInfoBase< RegionTraits< Function > >::getCommonRegion(), llvm::DOTGraphTraits< RegionInfoPass * >::getEdgeAttributes(), and llvm::DOTGraphTraits< RegionInfoPass * >::printRegionCluster().
RegionT* llvm::RegionInfoBase< Tr >::getTopLevelRegion | ( | ) | const [inline] |
Definition at line 793 of file RegionInfo.h.
Referenced by llvm::DOTGraphTraits< RegionInfoPass * >::addCustomGraphFeatures(), llvm::GraphTraits< MachineRegionInfo * >::getEntryNode(), llvm::GraphTraits< RegionInfo * >::getEntryNode(), llvm::DOTGraphTraits< RegionInfoPass * >::getNodeLabel(), llvm::DOTGraphTraits< RegionInfoPass * >::printRegionCluster(), and llvm::RGPassManager::runOnFunction().
Tr::RegionT * llvm::RegionInfoBase< Tr >::operator[] | ( | BlockT * | BB | ) | const |
A shortcut for getRegionFor().
BB | The basic block. |
Definition at line 807 of file RegionInfoImpl.h.
void llvm::RegionInfoBase< Tr >::print | ( | raw_ostream & | OS | ) | const |
Definition at line 770 of file RegionInfoImpl.h.
Referenced by llvm::MachineRegionInfoPass::print(), and llvm::RegionInfoPass::print().
void llvm::RegionInfoBase< Tr >::releaseMemory | ( | ) |
Definition at line 782 of file RegionInfoImpl.h.
Referenced by llvm::MachineRegionInfoPass::releaseMemory(), and llvm::RegionInfoPass::releaseMemory().
void llvm::RegionInfoBase< Tr >::setRegionFor | ( | BlockT * | BB, |
RegionT * | R | ||
) |
Set the smallest region that surrounds a basic block.
BB | The basic block surrounded by a region. |
R | The smallest region that surrounds BB. |
Definition at line 802 of file RegionInfoImpl.h.
void llvm::RegionInfoBase< Tr >::splitBlock | ( | BlockT * | NewBB, |
BlockT * | OldBB | ||
) |
Update RegionInfo after a basic block was split.
NewBB | The basic block that was created before OldBB. |
OldBB | The old basic block. |
Definition at line 892 of file RegionInfoImpl.h.
void llvm::RegionInfoBase< Tr >::verifyAnalysis | ( | ) | const |
Definition at line 790 of file RegionInfoImpl.h.
Referenced by llvm::MachineRegionInfoPass::verifyAnalysis(), and llvm::RegionInfoPass::verifyAnalysis().
friend class MachineRegionInfo [friend] |
Definition at line 667 of file RegionInfo.h.
friend class RegionInfo [friend] |
Definition at line 666 of file RegionInfo.h.
Tr::RegionT::PrintStyle llvm::RegionInfoBase< Tr >::printStyle [static] |
RegionBase<Tr>::PrintNone
Definition at line 732 of file RegionInfo.h.
bool llvm::RegionInfoBase< Tr >::VerifyRegionInfo = false [static] |
Definition at line 731 of file RegionInfo.h.