LLVM API Documentation

Public Member Functions | Public Attributes
llvm::BlockFrequencyInfoImplBase::WorkingData Struct Reference

Index of loop information. More...

#include <BlockFrequencyInfoImpl.h>

Collaboration diagram for llvm::BlockFrequencyInfoImplBase::WorkingData:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 WorkingData (const BlockNode &Node)
bool isLoopHeader () const
bool isDoubleLoopHeader () const
LoopDatagetContainingLoop () const
BlockNode getResolvedNode () const
 Resolve a node to its representative.
LoopDatagetPackagedLoop () const
BlockMassgetMass ()
 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.
LoopDataLoop
 The loop this block is inside.
BlockMass Mass
 Mass distribution from the entry block.

Detailed Description

Index of loop information.

Definition at line 236 of file BlockFrequencyInfoImpl.h.


Constructor & Destructor Documentation

Definition at line 241 of file BlockFrequencyInfoImpl.h.


Member Function Documentation

Definition at line 249 of file BlockFrequencyInfoImpl.h.

References isDoubleLoopHeader(), isLoopHeader(), and Loop.

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

References isADoublePackage(), isAPackage(), and Mass.

Definition at line 274 of file BlockFrequencyInfoImpl.h.

References Loop, and llvm::BlockFrequencyInfoImplBase::LoopData::Parent.

Referenced by getResolvedNode().

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 irreducilbe 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 270 of file BlockFrequencyInfoImpl.h.

References getPackagedLoop(), and Node.

Referenced by isPackaged().

Has Loop been packaged up twice?

Definition at line 301 of file BlockFrequencyInfoImpl.h.

References isDoubleLoopHeader().

Referenced by getMass().

Has Loop been packaged up?

Definition at line 299 of file BlockFrequencyInfoImpl.h.

References isLoopHeader().

Referenced by getMass().

Definition at line 244 of file BlockFrequencyInfoImpl.h.

References isLoopHeader(), and Node.

Referenced by getContainingLoop(), and isADoublePackage().

Definition at line 243 of file BlockFrequencyInfoImpl.h.

References Node.

Referenced by getContainingLoop(), isAPackage(), and isDoubleLoopHeader().

Has ContainingLoop been packaged up?

Definition at line 297 of file BlockFrequencyInfoImpl.h.

References getResolvedNode(), and Node.


Member Data Documentation

The loop this block is inside.

Definition at line 238 of file BlockFrequencyInfoImpl.h.

Referenced by getContainingLoop(), and getPackagedLoop().

Mass distribution from the entry block.

Definition at line 239 of file BlockFrequencyInfoImpl.h.

Referenced by getMass().

This node.

Definition at line 237 of file BlockFrequencyInfoImpl.h.

Referenced by getResolvedNode(), isDoubleLoopHeader(), isLoopHeader(), and isPackaged().


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