LLVM 20.0.0git
|
Data about a loop. More...
#include "llvm/Analysis/BlockFrequencyInfoImpl.h"
Public Types | |
using | ExitMap = SmallVector< std::pair< BlockNode, BlockMass >, 4 > |
using | NodeList = SmallVector< BlockNode, 4 > |
using | HeaderMassList = SmallVector< BlockMass, 1 > |
Public Member Functions | |
LoopData (LoopData *Parent, const BlockNode &Header) | |
template<class It1 , class It2 > | |
LoopData (LoopData *Parent, It1 FirstHeader, It1 LastHeader, It2 FirstOther, It2 LastOther) | |
bool | isHeader (const BlockNode &Node) const |
BlockNode | getHeader () const |
bool | isIrreducible () const |
HeaderMassList::difference_type | getHeaderIndex (const BlockNode &B) |
NodeList::const_iterator | members_begin () const |
NodeList::const_iterator | members_end () const |
iterator_range< NodeList::const_iterator > | members () const |
Public Attributes | |
LoopData * | Parent |
The parent loop. | |
bool | IsPackaged = false |
Whether this has been packaged. | |
uint32_t | NumHeaders = 1 |
Number of headers. | |
ExitMap | Exits |
Successor edges (and weights). | |
NodeList | Nodes |
Header and the members of the loop. | |
HeaderMassList | BackedgeMass |
Mass returned to each loop header. | |
BlockMass | Mass |
Scaled64 | Scale |
Data about a loop.
Contains the data necessary to represent a loop as a pseudo-node once it's packaged.
Definition at line 224 of file BlockFrequencyInfoImpl.h.
using llvm::BlockFrequencyInfoImplBase::LoopData::ExitMap = SmallVector<std::pair<BlockNode, BlockMass>, 4> |
Definition at line 225 of file BlockFrequencyInfoImpl.h.
Definition at line 227 of file BlockFrequencyInfoImpl.h.
Definition at line 226 of file BlockFrequencyInfoImpl.h.
|
inline |
Definition at line 238 of file BlockFrequencyInfoImpl.h.
|
inline |
Definition at line 242 of file BlockFrequencyInfoImpl.h.
References BackedgeMass, llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::insert(), Nodes, NumHeaders, llvm::SmallVectorImpl< T >::resize(), and llvm::SmallVectorBase< Size_T >::size().
|
inline |
Definition at line 257 of file BlockFrequencyInfoImpl.h.
References Nodes.
Referenced by llvm::bfi_detail::IrreducibleGraph::addNodesInLoop().
|
inline |
Definition at line 260 of file BlockFrequencyInfoImpl.h.
References assert(), B, llvm::SmallVectorTemplateCommon< T, typename >::begin(), isHeader(), isIrreducible(), Nodes, and NumHeaders.
Referenced by llvm::BlockFrequencyInfoImplBase::distributeMass().
Definition at line 250 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), isIrreducible(), Nodes, and NumHeaders.
Referenced by llvm::bfi_detail::IrreducibleGraph::addEdge(), llvm::BlockFrequencyInfoImplBase::addToDist(), and getHeaderIndex().
|
inline |
Definition at line 258 of file BlockFrequencyInfoImpl.h.
References NumHeaders.
Referenced by llvm::BlockFrequencyInfoImplBase::addToDist(), getHeaderIndex(), and isHeader().
|
inline |
Definition at line 273 of file BlockFrequencyInfoImpl.h.
References llvm::make_range(), members_begin(), and members_end().
|
inline |
Definition at line 268 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), Nodes, and NumHeaders.
Referenced by members().
|
inline |
Definition at line 272 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), and Nodes.
Referenced by members().
HeaderMassList llvm::BlockFrequencyInfoImplBase::LoopData::BackedgeMass |
Mass returned to each loop header.
Definition at line 234 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::distributeMass(), LoopData(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
ExitMap llvm::BlockFrequencyInfoImplBase::LoopData::Exits |
Successor edges (and weights).
Definition at line 232 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::distributeMass(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
bool llvm::BlockFrequencyInfoImplBase::LoopData::IsPackaged = false |
Whether this has been packaged.
Definition at line 230 of file BlockFrequencyInfoImpl.h.
BlockMass llvm::BlockFrequencyInfoImplBase::LoopData::Mass |
Definition at line 235 of file BlockFrequencyInfoImpl.h.
NodeList llvm::BlockFrequencyInfoImplBase::LoopData::Nodes |
Header and the members of the loop.
Definition at line 233 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::bfi_detail::IrreducibleGraph::addNodesInLoop(), getHeader(), getHeaderIndex(), llvm::bfi_detail::IrreducibleGraph::initialize(), isHeader(), LoopData(), members_begin(), members_end(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
uint32_t llvm::BlockFrequencyInfoImplBase::LoopData::NumHeaders = 1 |
Number of headers.
Definition at line 231 of file BlockFrequencyInfoImpl.h.
Referenced by getHeaderIndex(), isHeader(), isIrreducible(), LoopData(), and members_begin().
LoopData* llvm::BlockFrequencyInfoImplBase::LoopData::Parent |
The parent loop.
Definition at line 229 of file BlockFrequencyInfoImpl.h.
Scaled64 llvm::BlockFrequencyInfoImplBase::LoopData::Scale |
Definition at line 236 of file BlockFrequencyInfoImpl.h.