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>

Public Member Functions

 LoopData (LoopData *Parent, const BlockNode &Header)
 LoopData (LoopData *Parent, NodeList &&Members)
 An irreducible SCC.
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_iteratormembers () const

Public Attributes

LoopDataParent
 The parent loop.
bool IsPackaged = false
 Whether this has been packaged.
bool ContainsIrreducible = false
bool IsIrreducible = false
ExitMap Exits
 Successor edges (and weights).
NodeList Nodes
 Header and the members of the loop.
BlockMass BackedgeMass
 Mass that circulates, not exits.
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 221 of file BlockFrequencyInfoImpl.h.

Member Typedef Documentation

◆ ExitMap

◆ NodeList

Constructor & Destructor Documentation

◆ LoopData() [1/2]

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

Definition at line 237 of file BlockFrequencyInfoImpl.h.

References LoopData(), Nodes, and Parent.

Referenced by LoopData(), and LoopData().

◆ LoopData() [2/2]

llvm::BlockFrequencyInfoImplBase::LoopData::LoopData ( LoopData * Parent,
NodeList && Members )
inline

An irreducible SCC.

Its entries are equivalent as far as the enclosing region is concerned, so the lowest-RPO member stands for the package and solveIrreducibleMass distributes mass among them all.

Definition at line 243 of file BlockFrequencyInfoImpl.h.

References IsIrreducible, LoopData(), llvm::move(), Nodes, and Parent.

Member Function Documentation

◆ getHeader()

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

Definition at line 248 of file BlockFrequencyInfoImpl.h.

References Nodes.

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

◆ isHeader()

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

◆ isIrreducible()

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

Definition at line 249 of file BlockFrequencyInfoImpl.h.

References IsIrreducible.

◆ members()

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

Definition at line 254 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 251 of file BlockFrequencyInfoImpl.h.

References Nodes.

Referenced by members().

◆ members_end()

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

Definition at line 253 of file BlockFrequencyInfoImpl.h.

References Nodes.

Referenced by members().

Member Data Documentation

◆ BackedgeMass

BlockMass llvm::BlockFrequencyInfoImplBase::LoopData::BackedgeMass

Mass that circulates, not exits.

Definition at line 233 of file BlockFrequencyInfoImpl.h.

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

◆ ContainsIrreducible

bool llvm::BlockFrequencyInfoImplBase::LoopData::ContainsIrreducible = false

Definition at line 228 of file BlockFrequencyInfoImpl.h.

◆ Exits

ExitMap llvm::BlockFrequencyInfoImplBase::LoopData::Exits

Successor edges (and weights).

Definition at line 231 of file BlockFrequencyInfoImpl.h.

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

◆ IsIrreducible

bool llvm::BlockFrequencyInfoImplBase::LoopData::IsIrreducible = false

Definition at line 230 of file BlockFrequencyInfoImpl.h.

Referenced by isIrreducible(), and LoopData().

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

◆ Nodes

NodeList llvm::BlockFrequencyInfoImplBase::LoopData::Nodes

◆ Parent

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

The parent loop.

Definition at line 225 of file BlockFrequencyInfoImpl.h.

Referenced by LoopData(), and LoopData().

◆ Scale

Scaled64 llvm::BlockFrequencyInfoImplBase::LoopData::Scale

Definition at line 235 of file BlockFrequencyInfoImpl.h.


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