LLVM API Documentation
Data about a loop. More...
#include <BlockFrequencyInfoImpl.h>
Public Types | |
typedef SmallVector< std::pair < BlockNode, BlockMass >, 4 > | ExitMap |
typedef SmallVector< BlockNode, 4 > | NodeList |
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 |
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 |
Whether this has been packaged. | |
uint32_t | NumHeaders |
Number of headers. | |
ExitMap | Exits |
Successor edges (and weights). | |
NodeList | Nodes |
Header and the members of the loop. | |
BlockMass | BackedgeMass |
Mass returned to loop header. | |
BlockMass | Mass |
Scaled64 | Scale |
Data about a loop.
Contains the data necessary to represent represent a loop as a pseudo-node once it's packaged.
Definition at line 196 of file BlockFrequencyInfoImpl.h.
typedef SmallVector<std::pair<BlockNode, BlockMass>, 4> llvm::BlockFrequencyInfoImplBase::LoopData::ExitMap |
Definition at line 197 of file BlockFrequencyInfoImpl.h.
Definition at line 198 of file BlockFrequencyInfoImpl.h.
llvm::BlockFrequencyInfoImplBase::LoopData::LoopData | ( | LoopData * | Parent, |
const BlockNode & | Header | ||
) | [inline] |
Definition at line 208 of file BlockFrequencyInfoImpl.h.
llvm::BlockFrequencyInfoImplBase::LoopData::LoopData | ( | LoopData * | Parent, |
It1 | FirstHeader, | ||
It1 | LastHeader, | ||
It2 | FirstOther, | ||
It2 | LastOther | ||
) | [inline] |
Definition at line 211 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::insert(), Nodes, NumHeaders, and llvm::SmallVectorTemplateCommon< T, typename >::size().
BlockNode llvm::BlockFrequencyInfoImplBase::LoopData::getHeader | ( | ) | const [inline] |
Definition at line 223 of file BlockFrequencyInfoImpl.h.
References Nodes.
Referenced by llvm::BlockFrequencyInfoImplBase::addLoopSuccessorsToDist(), llvm::bfi_detail::IrreducibleGraph::addNodesInLoop(), llvm::BlockFrequencyInfoImplBase::addToDist(), and llvm::BlockFrequencyInfoImplBase::getLoopName().
bool llvm::BlockFrequencyInfoImplBase::LoopData::isHeader | ( | const BlockNode & | Node | ) | const [inline] |
Definition at line 217 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), isIrreducible(), Node, Nodes, and NumHeaders.
Referenced by llvm::bfi_detail::IrreducibleGraph::addEdge(), and llvm::BlockFrequencyInfoImplBase::addToDist().
bool llvm::BlockFrequencyInfoImplBase::LoopData::isIrreducible | ( | ) | const [inline] |
Definition at line 224 of file BlockFrequencyInfoImpl.h.
References NumHeaders.
Referenced by llvm::BlockFrequencyInfoImplBase::addToDist(), llvm::BlockFrequencyInfoImplBase::getLoopName(), and isHeader().
iterator_range<NodeList::const_iterator> llvm::BlockFrequencyInfoImplBase::LoopData::members | ( | ) | const [inline] |
Definition at line 230 of file BlockFrequencyInfoImpl.h.
References llvm::make_range(), members_begin(), and members_end().
NodeList::const_iterator llvm::BlockFrequencyInfoImplBase::LoopData::members_begin | ( | ) | const [inline] |
Definition at line 226 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), Nodes, and NumHeaders.
Referenced by members().
NodeList::const_iterator llvm::BlockFrequencyInfoImplBase::LoopData::members_end | ( | ) | const [inline] |
Definition at line 229 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), and Nodes.
Referenced by members().
Mass returned to loop header.
Definition at line 204 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::computeLoopScale(), llvm::BlockFrequencyInfoImplBase::distributeMass(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
Successor edges (and weights).
Definition at line 202 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::addLoopSuccessorsToDist(), llvm::BlockFrequencyInfoImplBase::distributeMass(), llvm::BlockFrequencyInfoImplBase::packageLoop(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
Whether this has been packaged.
Definition at line 200 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::packageLoop().
Definition at line 205 of file BlockFrequencyInfoImpl.h.
Header and the members of the loop.
Definition at line 203 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::bfi_detail::IrreducibleGraph::addNodesInLoop(), getHeader(), llvm::bfi_detail::IrreducibleGraph::initialize(), isHeader(), LoopData(), members_begin(), members_end(), llvm::BlockFrequencyInfoImplBase::packageLoop(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
Number of headers.
Definition at line 201 of file BlockFrequencyInfoImpl.h.
Referenced by isHeader(), isIrreducible(), LoopData(), and members_begin().
The parent loop.
Definition at line 199 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::WorkingData::getPackagedLoop().
Definition at line 206 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::computeLoopScale().