LLVM
8.0.1
|
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. More... | |
bool | IsPackaged = false |
Whether this has been packaged. More... | |
uint32_t | NumHeaders = 1 |
Number of headers. More... | |
ExitMap | Exits |
Successor edges (and weights). More... | |
NodeList | Nodes |
Header and the members of the loop. More... | |
HeaderMassList | BackedgeMass |
Mass returned to each loop header. More... | |
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 219 of file BlockFrequencyInfoImpl.h.
using llvm::BlockFrequencyInfoImplBase::LoopData::ExitMap = SmallVector<std::pair<BlockNode, BlockMass>, 4> |
Definition at line 220 of file BlockFrequencyInfoImpl.h.
Definition at line 222 of file BlockFrequencyInfoImpl.h.
Definition at line 221 of file BlockFrequencyInfoImpl.h.
|
inline |
Definition at line 233 of file BlockFrequencyInfoImpl.h.
|
inline |
Definition at line 237 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SmallVectorImpl< T >::insert(), llvm::SmallVectorImpl< T >::resize(), and llvm::SmallVectorBase::size().
|
inline |
Definition at line 252 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::addLoopSuccessorsToDist(), and llvm::BlockFrequencyInfoImplBase::getLoopName().
|
inline |
Definition at line 255 of file BlockFrequencyInfoImpl.h.
References assert(), B, llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::lower_bound().
Referenced by llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass(), and llvm::BlockFrequencyInfoImplBase::distributeMass().
Definition at line 245 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::bfi_detail::IrreducibleGraph::addEdge(), llvm::BlockFrequencyInfoImplBase::WorkingData::isDoubleLoopHeader(), and llvm::BlockFrequencyInfoImplBase::WorkingData::isLoopHeader().
|
inline |
Definition at line 253 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass(), llvm::BlockFrequencyInfoImplBase::getLoopName(), and llvm::BlockFrequencyInfoImplBase::WorkingData::isDoubleLoopHeader().
|
inline |
Definition at line 268 of file BlockFrequencyInfoImpl.h.
References llvm::make_range().
|
inline |
Definition at line 263 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin().
|
inline |
Definition at line 267 of file BlockFrequencyInfoImpl.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end().
HeaderMassList llvm::BlockFrequencyInfoImplBase::LoopData::BackedgeMass |
Mass returned to each loop header.
Definition at line 229 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass(), llvm::BlockFrequencyInfoImplBase::computeLoopScale(), llvm::BlockFrequencyInfoImplBase::distributeMass(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
ExitMap llvm::BlockFrequencyInfoImplBase::LoopData::Exits |
Successor edges (and weights).
Definition at line 227 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 225 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::WorkingData::getPackagedLoop(), llvm::BlockFrequencyInfoImplBase::WorkingData::isADoublePackage(), llvm::BlockFrequencyInfoImplBase::WorkingData::isAPackage(), and llvm::BlockFrequencyInfoImplBase::packageLoop().
BlockMass llvm::BlockFrequencyInfoImplBase::LoopData::Mass |
Definition at line 230 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::WorkingData::getMass().
NodeList llvm::BlockFrequencyInfoImplBase::LoopData::Nodes |
Header and the members of the loop.
Definition at line 228 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass(), llvm::bfi_detail::IrreducibleGraph::initialize(), llvm::BlockFrequencyInfoImplBase::packageLoop(), and llvm::BlockFrequencyInfoImplBase::updateLoopWithIrreducible().
uint32_t llvm::BlockFrequencyInfoImplBase::LoopData::NumHeaders = 1 |
Number of headers.
Definition at line 226 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::adjustLoopHeaderMass().
LoopData* llvm::BlockFrequencyInfoImplBase::LoopData::Parent |
The parent loop.
Definition at line 224 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::WorkingData::getContainingLoop(), llvm::BlockFrequencyInfoImplBase::WorkingData::getMass(), llvm::BlockFrequencyInfoImplBase::WorkingData::getPackagedLoop(), llvm::BlockFrequencyInfoImplBase::WorkingData::isADoublePackage(), and llvm::BlockFrequencyInfoImplBase::WorkingData::isDoubleLoopHeader().
Scaled64 llvm::BlockFrequencyInfoImplBase::LoopData::Scale |
Definition at line 231 of file BlockFrequencyInfoImpl.h.
Referenced by llvm::BlockFrequencyInfoImplBase::computeLoopScale().