LLVM 24.0.0git
llvm::BlockFrequencyInfoImplBase::LoopData Struct Reference

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 It>
 LoopData (LoopData *Parent, It FirstHeader, It LastHeader)
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.
bool IsPackaged = false
 Whether this has been packaged.
uint32_t NumHeaders = 1
 Number of headers.
ExitMap Exits
 Successor edges (and weights).
NodeList Nodes
 Header and the members of the loop.
HeaderMassList BackedgeMass
 Mass returned to each loop header.
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 220 of file BlockFrequencyInfoImpl.h.

Member Typedef Documentation

◆ ExitMap

◆ HeaderMassList

◆ NodeList

Constructor & Destructor Documentation

◆ LoopData() [1/3]

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

Definition at line 234 of file BlockFrequencyInfoImpl.h.

References BackedgeMass, LoopData(), Nodes, and Parent.

Referenced by LoopData(), LoopData(), and LoopData().

◆ LoopData() [2/3]

template<class It>
llvm::BlockFrequencyInfoImplBase::LoopData::LoopData ( LoopData * Parent,
It FirstHeader,
It LastHeader )
inline

Definition at line 238 of file BlockFrequencyInfoImpl.h.

References BackedgeMass, LoopData(), Nodes, NumHeaders, and Parent.

◆ LoopData() [3/3]

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

Definition at line 245 of file BlockFrequencyInfoImpl.h.

References BackedgeMass, LoopData(), Nodes, NumHeaders, and Parent.

Member Function Documentation

◆ getHeader()

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

Definition at line 260 of file BlockFrequencyInfoImpl.h.

References Nodes.

Referenced by llvm::bfi_detail::IrreducibleGraph::addNodesInLoop().

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

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

◆ members_begin()

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

Definition at line 271 of file BlockFrequencyInfoImpl.h.

References Nodes, and NumHeaders.

Referenced by members().

◆ members_end()

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

Definition at line 275 of file BlockFrequencyInfoImpl.h.

References Nodes.

Referenced by members().

Member Data Documentation

◆ BackedgeMass

HeaderMassList llvm::BlockFrequencyInfoImplBase::LoopData::BackedgeMass

◆ Exits

ExitMap llvm::BlockFrequencyInfoImplBase::LoopData::Exits

◆ IsPackaged

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

Whether this has been packaged.

Definition at line 226 of file BlockFrequencyInfoImpl.h.

◆ Mass

BlockMass llvm::BlockFrequencyInfoImplBase::LoopData::Mass

Definition at line 231 of file BlockFrequencyInfoImpl.h.

◆ Nodes

◆ NumHeaders

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

Number of headers.

Definition at line 227 of file BlockFrequencyInfoImpl.h.

Referenced by getHeaderIndex(), isHeader(), isIrreducible(), LoopData(), LoopData(), and members_begin().

◆ Parent

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

The parent loop.

Definition at line 225 of file BlockFrequencyInfoImpl.h.

Referenced by LoopData(), LoopData(), and LoopData().

◆ Scale

Scaled64 llvm::BlockFrequencyInfoImplBase::LoopData::Scale

Definition at line 232 of file BlockFrequencyInfoImpl.h.


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