LLVM 20.0.0git
|
Analysis that detects all canonical Regions. More...
#include "llvm/Analysis/RegionInfo.h"
Public Member Functions | |
RegionInfoBase (const RegionInfoBase &)=delete | |
RegionInfoBase & | operator= (const RegionInfoBase &)=delete |
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 | clearNodeCache () |
Clear the Node Cache for all Regions. | |
void | verifyAnalysis () const |
Static Public Attributes | |
static bool | VerifyRegionInfo = false |
static RegionT::PrintStyle | printStyle |
Protected Member Functions | |
template<typename TheRegionT > | |
void | updateRegionTree (RegionInfoT &RI, TheRegionT *R) |
Update refences to a RegionInfoT held by the RegionT managed here. | |
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 672 of file RegionInfo.h.
|
delete |
|
inline |
Clear the Node Cache for all Regions.
Definition at line 869 of file RegionInfo.h.
Referenced by llvm::RGPassManager::runOnFunction().
void llvm::RegionInfoBase< Tr >::dump |
Definition at line 761 of file RegionInfoImpl.h.
References llvm::dbgs(), and llvm::print().
Referenced by llvm::RegionInfoPass::dump(), llvm::MachineRegionInfoPass::dump(), llvm::RGPassManager::runOnFunction(), and llvm::MachineRegionInfoPass::runOnMachineFunction().
|
inline |
Find the smallest region that contains two basic blocks.
A | The first basic block. |
B | The second basic block. |
Definition at line 848 of file RegionInfo.h.
References A, B, llvm::RegionInfoBase< Tr >::getCommonRegion(), and llvm::RegionInfoBase< Tr >::getRegionFor().
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 842 of file RegionInfoImpl.h.
References A, assert(), and B.
Referenced by llvm::RegionInfoBase< Tr >::getCommonRegion().
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 868 of file RegionInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), and llvm::SmallVectorTemplateBase< T, bool >::pop_back().
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 857 of file RegionInfoImpl.h.
References llvm::SmallVectorImpl< T >::pop_back_val().
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 802 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 786 of file RegionInfoImpl.h.
Referenced by llvm::RegionInfoBase< Tr >::getCommonRegion(), and llvm::DOTGraphTraits< RegionInfo * >::printRegionCluster().
|
inline |
|
delete |
Tr::RegionT * llvm::RegionInfoBase< Tr >::operator[] | ( | BlockT * | BB | ) | const |
A shortcut for getRegionFor().
BB | The basic block. |
Definition at line 796 of file RegionInfoImpl.h.
void llvm::RegionInfoBase< Tr >::print | ( | raw_ostream & | OS | ) | const |
Definition at line 753 of file RegionInfoImpl.h.
References OS.
Referenced by llvm::RegionInfoPass::print(), and llvm::MachineRegionInfoPass::print().
void llvm::RegionInfoBase< Tr >::releaseMemory |
Definition at line 764 of file RegionInfoImpl.h.
Referenced by llvm::RegionInfoPass::releaseMemory(), and llvm::MachineRegionInfoPass::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 791 of file RegionInfoImpl.h.
|
inlineprotected |
Update refences to a RegionInfoT held by the RegionT managed here.
This is a post-move helper. Regions hold references to the owning RegionInfo object. After a move these need to be fixed.
Definition at line 729 of file RegionInfo.h.
References llvm::RegionInfoBase< Tr >::updateRegionTree().
Referenced by llvm::RegionInfoBase< Tr >::updateRegionTree().
void llvm::RegionInfoBase< Tr >::verifyAnalysis |
Definition at line 773 of file RegionInfoImpl.h.
Referenced by llvm::RegionInfoPass::verifyAnalysis(), and llvm::MachineRegionInfoPass::verifyAnalysis().
|
friend |
Definition at line 674 of file RegionInfo.h.
|
friend |
Definition at line 673 of file RegionInfo.h.
|
static |
Definition at line 801 of file RegionInfo.h.
|
static |
Definition at line 800 of file RegionInfo.h.