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().