LLVM
8.0.1
|
Index of loop information. More...
#include "llvm/Analysis/BlockFrequencyInfoImpl.h"
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. More... | |
LoopData * | getPackagedLoop () const |
BlockMass & | getMass () |
Get the appropriate mass for a node. More... | |
bool | isPackaged () const |
Has ContainingLoop been packaged up? More... | |
bool | isAPackage () const |
Has Loop been packaged up? More... | |
bool | isADoublePackage () const |
Has Loop been packaged up twice? More... | |
Public Attributes | |
BlockNode | Node |
This node. More... | |
LoopData * | Loop = nullptr |
The loop this block is inside. More... | |
BlockMass | Mass |
Mass distribution from the entry block. More... | |
Index of loop information.
Definition at line 274 of file BlockFrequencyInfoImpl.h.
Definition at line 279 of file BlockFrequencyInfoImpl.h.
|
inline |
Definition at line 288 of file BlockFrequencyInfoImpl.h.
References llvm::BlockFrequencyInfoImplBase::LoopData::Parent.
|
inline |
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.
Definition at line 328 of file BlockFrequencyInfoImpl.h.
References llvm::BlockFrequencyInfoImplBase::LoopData::Mass, and llvm::BlockFrequencyInfoImplBase::LoopData::Parent.
|
inline |
Definition at line 314 of file BlockFrequencyInfoImpl.h.
References llvm::BlockFrequencyInfoImplBase::LoopData::IsPackaged, and llvm::BlockFrequencyInfoImplBase::LoopData::Parent.
|
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 309 of file BlockFrequencyInfoImpl.h.
|
inline |
Has Loop been packaged up twice?
Definition at line 343 of file BlockFrequencyInfoImpl.h.
References llvm::BlockFrequencyInfoImplBase::LoopData::IsPackaged, and llvm::BlockFrequencyInfoImplBase::LoopData::Parent.
|
inline |
Has Loop been packaged up?
Definition at line 340 of file BlockFrequencyInfoImpl.h.
References llvm::BlockFrequencyInfoImplBase::LoopData::IsPackaged.
|
inline |
Definition at line 283 of file BlockFrequencyInfoImpl.h.
References llvm::BlockFrequencyInfoImplBase::LoopData::isHeader(), llvm::BlockFrequencyInfoImplBase::LoopData::isIrreducible(), and llvm::BlockFrequencyInfoImplBase::LoopData::Parent.
|
inline |
Definition at line 281 of file BlockFrequencyInfoImpl.h.
References llvm::BlockFrequencyInfoImplBase::LoopData::isHeader().
|
inline |
Has ContainingLoop been packaged up?
Definition at line 337 of file BlockFrequencyInfoImpl.h.
LoopData* llvm::BlockFrequencyInfoImplBase::WorkingData::Loop = nullptr |
The loop this block is inside.
Definition at line 276 of file BlockFrequencyInfoImpl.h.
BlockMass llvm::BlockFrequencyInfoImplBase::WorkingData::Mass |
Mass distribution from the entry block.
Definition at line 277 of file BlockFrequencyInfoImpl.h.
BlockNode llvm::BlockFrequencyInfoImplBase::WorkingData::Node |
This node.
Definition at line 275 of file BlockFrequencyInfoImpl.h.