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

Data about a loop. More...

#include "llvm/Analysis/BlockFrequencyInfoImpl.h"

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

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_iteratormembers () const
 

Public Attributes

LoopDataParent
 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
 

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 219 of file BlockFrequencyInfoImpl.h.

Member Typedef Documentation

◆ ExitMap

Definition at line 220 of file BlockFrequencyInfoImpl.h.

◆ HeaderMassList

Definition at line 222 of file BlockFrequencyInfoImpl.h.

◆ NodeList

Definition at line 221 of file BlockFrequencyInfoImpl.h.

Constructor & Destructor Documentation

◆ LoopData() [1/2]

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

Definition at line 233 of file BlockFrequencyInfoImpl.h.

◆ LoopData() [2/2]

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

Member Function Documentation

◆ getHeader()

BlockNode llvm::BlockFrequencyInfoImplBase::LoopData::getHeader ( ) const
inline

◆ getHeaderIndex()

HeaderMassList::difference_type llvm::BlockFrequencyInfoImplBase::LoopData::getHeaderIndex ( const BlockNode B)
inline

◆ isHeader()

bool llvm::BlockFrequencyInfoImplBase::LoopData::isHeader ( const BlockNode Node) const
inline

◆ isIrreducible()

bool llvm::BlockFrequencyInfoImplBase::LoopData::isIrreducible ( ) const
inline

◆ members()

iterator_range<NodeList::const_iterator> llvm::BlockFrequencyInfoImplBase::LoopData::members ( ) const
inline

Definition at line 268 of file BlockFrequencyInfoImpl.h.

References llvm::make_range().

◆ members_begin()

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

◆ members_end()

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

Member Data Documentation

◆ BackedgeMass

HeaderMassList llvm::BlockFrequencyInfoImplBase::LoopData::BackedgeMass

◆ Exits

ExitMap llvm::BlockFrequencyInfoImplBase::LoopData::Exits

◆ IsPackaged

bool llvm::BlockFrequencyInfoImplBase::LoopData::IsPackaged = false

◆ Mass

BlockMass llvm::BlockFrequencyInfoImplBase::LoopData::Mass

◆ Nodes

NodeList llvm::BlockFrequencyInfoImplBase::LoopData::Nodes

◆ NumHeaders

uint32_t llvm::BlockFrequencyInfoImplBase::LoopData::NumHeaders = 1

Number of headers.

Definition at line 226 of file BlockFrequencyInfoImpl.h.

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

◆ Parent

LoopData* llvm::BlockFrequencyInfoImplBase::LoopData::Parent

◆ Scale

Scaled64 llvm::BlockFrequencyInfoImplBase::LoopData::Scale

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