struct BlockFrequencyInfoImplBase::WorkingData
Declaration
struct BlockFrequencyInfoImplBase::WorkingData { /* full declaration omitted */ };
Description
Index of loop information.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:269
Member Variables
- public llvm::BlockFrequencyInfoImplBase::BlockNode Node
- This node.
- public llvm::BlockFrequencyInfoImplBase::LoopData* Loop = nullptr
- The loop this block is inside.
- public llvm::BlockFrequencyInfoImplBase::BlockMass Mass
- Mass distribution from the entry block.
Method Overview
- public WorkingData(const llvm::BlockFrequencyInfoImplBase::BlockNode & Node)
- public llvm::BlockFrequencyInfoImplBase::LoopData * getContainingLoop() const
- public llvm::BlockFrequencyInfoImplBase::BlockMass & getMass()
- public llvm::BlockFrequencyInfoImplBase::LoopData * getPackagedLoop() const
- public llvm::BlockFrequencyInfoImplBase::BlockNode getResolvedNode() const
- public bool isADoublePackage() const
- public bool isAPackage() const
- public bool isDoubleLoopHeader() const
- public bool isLoopHeader() const
- public bool isPackaged() const
Methods
¶WorkingData(
const llvm::BlockFrequencyInfoImplBase::
BlockNode& Node)
WorkingData(
const llvm::BlockFrequencyInfoImplBase::
BlockNode& Node)
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:274
Parameters
- const llvm::BlockFrequencyInfoImplBase::BlockNode& Node
¶llvm::BlockFrequencyInfoImplBase::LoopData*
getContainingLoop() const
llvm::BlockFrequencyInfoImplBase::LoopData*
getContainingLoop() const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:283
¶llvm::BlockFrequencyInfoImplBase::BlockMass&
getMass()
llvm::BlockFrequencyInfoImplBase::BlockMass&
getMass()
Description
Get the appropriate mass for a node. Get appropriate mass for Node. If Node is a loop-header (whose loop has been packaged), returns the mass of its pseudo-node. If it's a node inside a packaged loop, it returns the loop's mass.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:323
¶llvm::BlockFrequencyInfoImplBase::LoopData*
getPackagedLoop() const
llvm::BlockFrequencyInfoImplBase::LoopData*
getPackagedLoop() const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:309
¶llvm::BlockFrequencyInfoImplBase::BlockNode
getResolvedNode() const
llvm::BlockFrequencyInfoImplBase::BlockNode
getResolvedNode() const
Description
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.
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:304
¶bool isADoublePackage() const
bool isADoublePackage() const
Description
Has Loop been packaged up twice?
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:338
¶bool isAPackage() const
bool isAPackage() const
Description
Has Loop been packaged up?
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:335
¶bool isDoubleLoopHeader() const
bool isDoubleLoopHeader() const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:278
¶bool isLoopHeader() const
bool isLoopHeader() const
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:276
¶bool isPackaged() const
bool isPackaged() const
Description
Has ContainingLoop been packaged up?
Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:332