LLVM: llvm::BlockFrequencyInfoImplBase::WorkingData Struct Reference (original) (raw)

Index of loop information. More...

#include "[llvm/Analysis/BlockFrequencyInfoImpl.h](BlockFrequencyInfoImpl%5F8h%5Fsource.html)"

Public Member Functions
WorkingData (const BlockNode &Node)
bool isLoopHeader () const
bool isDoubleLoopHeader () const
LoopData * getContainingLoop () const
BlockNode getResolvedNode () const
Resolve a node to its representative.
LoopData * getPackagedLoop () const
BlockMass & getMass ()
Get the appropriate mass for a node.
bool isPackaged () const
Has ContainingLoop been packaged up?
bool isAPackage () const
Has Loop been packaged up?
bool isADoublePackage () const
Has Loop been packaged up twice?
Public Attributes
BlockNode Node
This node.
LoopData * Loop = nullptr
The loop this block is inside.
BlockMass Mass
Mass distribution from the entry block.

Index of loop information.

Definition at line 276 of file BlockFrequencyInfoImpl.h.

llvm::BlockFrequencyInfoImplBase::WorkingData::WorkingData ( const BlockNode & Node) inline

getContainingLoop()

LoopData * llvm::BlockFrequencyInfoImplBase::WorkingData::getContainingLoop ( ) const inline

getMass()

BlockMass & llvm::BlockFrequencyInfoImplBase::WorkingData::getMass ( ) inline

getPackagedLoop()

LoopData * llvm::BlockFrequencyInfoImplBase::WorkingData::getPackagedLoop ( ) const inline

getResolvedNode()

BlockNode llvm::BlockFrequencyInfoImplBase::WorkingData::getResolvedNode ( ) const inline

Resolve a node to its representative.

Get the node currently representing Node, which could be a containing loop.

This function should only be called when distributing mass. As long as there are no irreducible edges to Node, then it will have complexity O(1) in this context.

In general, the complexity is O(L), where L is the number of loop headers Node has been packaged into. Since this method is called in the context of distributing mass, L will be the number of loop headers an early exit edge jumps out of.

Definition at line 311 of file BlockFrequencyInfoImpl.h.

References getPackagedLoop(), and Node.

Referenced by isPackaged().

isADoublePackage()

bool llvm::BlockFrequencyInfoImplBase::WorkingData::isADoublePackage ( ) const inline

isAPackage()

bool llvm::BlockFrequencyInfoImplBase::WorkingData::isAPackage ( ) const inline

isDoubleLoopHeader()

bool llvm::BlockFrequencyInfoImplBase::WorkingData::isDoubleLoopHeader ( ) const inline

isLoopHeader()

bool llvm::BlockFrequencyInfoImplBase::WorkingData::isLoopHeader ( ) const inline

isPackaged()

bool llvm::BlockFrequencyInfoImplBase::WorkingData::isPackaged ( ) const inline

Loop

LoopData* llvm::BlockFrequencyInfoImplBase::WorkingData::Loop = nullptr

Mass

BlockMass llvm::BlockFrequencyInfoImplBase::WorkingData::Mass

Node

BlockNode llvm::BlockFrequencyInfoImplBase::WorkingData::Node


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