LLVM 22.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 221 of file BlockFrequencyInfoImpl.h.
using llvm::BlockFrequencyInfoImplBase::LoopData::ExitMap = SmallVector<std::pair<BlockNode, BlockMass>, 4> |
Definition at line 222 of file BlockFrequencyInfoImpl.h.
Definition at line 224 of file BlockFrequencyInfoImpl.h.
Definition at line 223 of file BlockFrequencyInfoImpl.h.
|
inline |
Definition at line 235 of file BlockFrequencyInfoImpl.h.
References BackedgeMass, LoopData(), Nodes, and Parent.
Referenced by LoopData(), and LoopData().
|
inline |
Definition at line 239 of file BlockFrequencyInfoImpl.h.
References BackedgeMass, LoopData(), Nodes, NumHeaders, and Parent.
|
inline |
Definition at line 254 of file BlockFrequencyInfoImpl.h.
References Nodes.
Referenced by llvm::bfi_detail::IrreducibleGraph::addNodesInLoop().
|
inline |
Definition at line 257 of file BlockFrequencyInfoImpl.h.
References assert(), B(), isHeader(), isIrreducible(), Nodes, and NumHeaders.
Referenced by llvm::BlockFrequencyInfoImplBase::distributeMass().
Definition at line 247 of file BlockFrequencyInfoImpl.h.
References isIrreducible(), Nodes, and NumHeaders.
Referenced by llvm::bfi_detail::IrreducibleGraph::addEdge(), llvm::BlockFrequencyInfoImplBase::addToDist(), and getHeaderIndex().
|
inline |
Definition at line 255 of file BlockFrequencyInfoImpl.h.
References NumHeaders.
Referenced by llvm::BlockFrequencyInfoImplBase::addToDist(), getHeaderIndex(), and isHeader().
|
inline |
Definition at line 270 of file BlockFrequencyInfoImpl.h.
References llvm::make_range(), members_begin(), and members_end().
|
inline |
Definition at line 265 of file BlockFrequencyInfoImpl.h.
References Nodes, and NumHeaders.
Referenced by members().
|
inline |
HeaderMassList llvm::BlockFrequencyInfoImplBase::LoopData::BackedgeMass |
Mass returned to each loop header.
Definition at line 231 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::distributeMass(), LoopData(), LoopData(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
ExitMap llvm::BlockFrequencyInfoImplBase::LoopData::Exits |
Successor edges (and weights).
Definition at line 229 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 227 of file BlockFrequencyInfoImpl.h.
BlockMass llvm::BlockFrequencyInfoImplBase::LoopData::Mass |
Definition at line 232 of file BlockFrequencyInfoImpl.h.
NodeList llvm::BlockFrequencyInfoImplBase::LoopData::Nodes |
Header and the members of the loop.
Definition at line 230 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::bfi_detail::IrreducibleGraph::addNodesInLoop(), getHeader(), getHeaderIndex(), llvm::bfi_detail::IrreducibleGraph::initialize(), isHeader(), LoopData(), LoopData(), members_begin(), members_end(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
uint32_t llvm::BlockFrequencyInfoImplBase::LoopData::NumHeaders = 1 |
Number of headers.
Definition at line 228 of file BlockFrequencyInfoImpl.h.
Referenced by getHeaderIndex(), isHeader(), isIrreducible(), LoopData(), and members_begin().
LoopData* llvm::BlockFrequencyInfoImplBase::LoopData::Parent |
The parent loop.
Definition at line 226 of file BlockFrequencyInfoImpl.h.
Referenced by LoopData(), and LoopData().
Scaled64 llvm::BlockFrequencyInfoImplBase::LoopData::Scale |
Definition at line 233 of file BlockFrequencyInfoImpl.h.