llvm::BlockFrequencyInfoImplBase

Base class for BlockFrequencyInfoImpl

Synopsis

Declared in <llvm/Analysis/BlockFrequencyInfoImpl.h>

class BlockFrequencyInfoImplBase;

Description

BlockFrequencyInfoImplBase has supporting data structures and some algorithms for BlockFrequencyInfoImplBase. Only algorithms that depend on the block type (or that call such algorithms) are skipped here.

Nevertheless, the majority of the overall algorithm documentation lives with BlockFrequencyInfoImpl. See there for details.

Types

NameDescription
BlockNode Representative of a block.
Distribution Distribution of unscaled probability weight.
FrequencyData Stats about a block itself.
LoopData Data about a loop.
Weight Unscaled probability weight.
WorkingData Index of loop information.

Type Aliases

NameDescription
BlockMass Fixed-point probability mass in [0, 1].
Scaled64 64-bit scaled floating-point frequency.

Member Functions

NameDescription
~BlockFrequencyInfoImplBase [destructor] [virtual]Virtual destructor.
addLoopSuccessorsToDist Add all edges out of a packaged loop to the distribution.
addToDist Add an edge to the distribution.
analyzeIrreducible Analyze irreducible SCCs.
clear Clear all memory.
computeLoopScale Compute the loop scale for a loop.
distributeMass Distribute mass according to a distribution.
dump Dump frequency metrics to the debug stream.
finalizeMetrics Finalize frequency metrics.
getBlockFreq Return the integer frequency of Node.
getBlockName [virtual]Return a debug name for Node.
getBlockProfileCount Return the estimated profile count of Node in F, if available.
getEntryFreq Return the frequency of the function entry block.
getFloatingBlockFreq Return the floating-point frequency of Node.
getLoopName Return a debug name for Loop.
getProfileCountFromFreq Scale Freq by F's entry count into an estimated profile count.
isIrrLoopHeader Return true if Node is an irreducible loop header.
packageLoop Package up a loop.
print [virtual]Print frequency metrics to OS.
setBlockFreq Set the frequency of Node to Freq.
unwrapLoops Unwrap loops.

Data Members

NameDescription
Freqs Data about each block. This is used downstream.
IsIrrLoopHeader Whether each block is an irreducible loop header. This is used downstream.
Loops Indexed information about loops.
TopContainsIrreducible Has an irreducible SCC outside every loop.
Working Loop data: see initializeLoops().