LLVM  3.7.0
Public Types | Public Member Functions | Public Attributes | List of all members
llvm::BlockFrequencyInfoImplBase::LoopData Struct Reference

Data about a loop. More...

#include <BlockFrequencyInfoImpl.h>

Collaboration diagram for llvm::BlockFrequencyInfoImplBase::LoopData:
[legend]

Public Types

typedef SmallVector< std::pair
< BlockNode, BlockMass >, 4 > 
ExitMap
 
typedef SmallVector< BlockNode, 4 > NodeList
 
typedef SmallVector< BlockMass, 1 > HeaderMassList
 

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

LoopDataParent
 The parent loop. More...
 
bool IsPackaged
 Whether this has been packaged. More...
 
uint32_t NumHeaders
 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
 

Detailed Description

Data about a loop.

Contains the data necessary to represent a loop as a pseudo-node once it's packaged.

Definition at line 196 of file BlockFrequencyInfoImpl.h.

Member Typedef Documentation

Definition at line 197 of file BlockFrequencyInfoImpl.h.

Definition at line 199 of file BlockFrequencyInfoImpl.h.

Definition at line 198 of file BlockFrequencyInfoImpl.h.

Constructor & Destructor Documentation

llvm::BlockFrequencyInfoImplBase::LoopData::LoopData ( LoopData Parent,
const BlockNode Header 
)
inline

Definition at line 209 of file BlockFrequencyInfoImpl.h.

template<class It1 , class It2 >
llvm::BlockFrequencyInfoImplBase::LoopData::LoopData ( LoopData Parent,
It1  FirstHeader,
It1  LastHeader,
It2  FirstOther,
It2  LastOther 
)
inline

Member Function Documentation

BlockNode llvm::BlockFrequencyInfoImplBase::LoopData::getHeader ( ) const
inline
HeaderMassList::difference_type llvm::BlockFrequencyInfoImplBase::LoopData::getHeaderIndex ( const BlockNode B)
inline
bool llvm::BlockFrequencyInfoImplBase::LoopData::isHeader ( const BlockNode Node) const
inline
bool llvm::BlockFrequencyInfoImplBase::LoopData::isIrreducible ( ) const
inline
iterator_range<NodeList::const_iterator> llvm::BlockFrequencyInfoImplBase::LoopData::members ( ) const
inline

Definition at line 241 of file BlockFrequencyInfoImpl.h.

References llvm::make_range(), members_begin(), and members_end().

NodeList::const_iterator llvm::BlockFrequencyInfoImplBase::LoopData::members_begin ( ) const
inline
NodeList::const_iterator llvm::BlockFrequencyInfoImplBase::LoopData::members_end ( ) const
inline

Definition at line 240 of file BlockFrequencyInfoImpl.h.

References llvm::SmallVectorTemplateCommon< T, typename >::end(), and Nodes.

Referenced by members().

Member Data Documentation

HeaderMassList llvm::BlockFrequencyInfoImplBase::LoopData::BackedgeMass
ExitMap llvm::BlockFrequencyInfoImplBase::LoopData::Exits
bool llvm::BlockFrequencyInfoImplBase::LoopData::IsPackaged

Whether this has been packaged.

Definition at line 201 of file BlockFrequencyInfoImpl.h.

Referenced by llvm::BlockFrequencyInfoImplBase::packageLoop().

BlockMass llvm::BlockFrequencyInfoImplBase::LoopData::Mass

Definition at line 206 of file BlockFrequencyInfoImpl.h.

NodeList llvm::BlockFrequencyInfoImplBase::LoopData::Nodes
uint32_t llvm::BlockFrequencyInfoImplBase::LoopData::NumHeaders
LoopData* llvm::BlockFrequencyInfoImplBase::LoopData::Parent

The parent loop.

Definition at line 200 of file BlockFrequencyInfoImpl.h.

Referenced by llvm::BlockFrequencyInfoImplBase::WorkingData::getPackagedLoop().

Scaled64 llvm::BlockFrequencyInfoImplBase::LoopData::Scale

The documentation for this struct was generated from the following file: