struct BlockFrequencyInfoImplBase::WorkingData

Declaration

struct BlockFrequencyInfoImplBase::WorkingData { /* full declaration omitted */ };

Description

Index of loop information.

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:278

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

Methods

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

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:283

Parameters

const llvm::BlockFrequencyInfoImplBase::BlockNode& Node

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

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:292

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:332

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

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:318

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:313

bool isADoublePackage() const

Description

Has Loop been packaged up twice?

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:347

bool isAPackage() const

Description

Has Loop been packaged up?

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:344

bool isDoubleLoopHeader() const

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:287

bool isLoopHeader() const

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:285

bool isPackaged() const

Description

Has ContainingLoop been packaged up?

Declared at: llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h:341