LLVM 20.0.0git
|
#include "llvm/Analysis/BlockFrequencyInfo.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/iterator.h"
#include "llvm/Analysis/BlockFrequencyInfoImpl.h"
#include "llvm/Analysis/BranchProbabilityInfo.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/IR/CFG.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/PassManager.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/GraphWriter.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <optional>
#include <string>
Go to the source code of this file.
Classes | |
struct | llvm::GraphTraits< BlockFrequencyInfo * > |
struct | llvm::DOTGraphTraits< BlockFrequencyInfo * > |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "block-freq" |
Typedefs | |
using | llvm::BFIDOTGTraitsBase = BFIDOTGraphTraitsBase< BlockFrequencyInfo, BranchProbabilityInfo > |
Functions | |
static GVDAGType | llvm::getGVDT () |
INITIALIZE_PASS_BEGIN (BlockFrequencyInfoWrapperPass, "block-freq", "Block Frequency Analysis", true, true) INITIALIZE_PASS_END(BlockFrequencyInfoWrapperPass | |
Variables | |
static cl::opt< GVDAGType > | ViewBlockFreqPropagationDAG ("view-block-freq-propagation-dags", cl::Hidden, cl::desc("Pop up a window to show a dag displaying how block " "frequencies propagation through the CFG."), cl::values(clEnumValN(GVDT_None, "none", "do not display graphs."), clEnumValN(GVDT_Fraction, "fraction", "display a graph using the " "fractional block frequency representation."), clEnumValN(GVDT_Integer, "integer", "display a graph using the raw " "integer fractional block frequency representation."), clEnumValN(GVDT_Count, "count", "display a graph using the real " "profile count if available."))) |
cl::opt< std::string > | llvm::ViewBlockFreqFuncName ("view-bfi-func-name", cl::Hidden, cl::desc("The option to specify " "the name of the function " "whose CFG will be displayed.")) |
cl::opt< unsigned > | llvm::ViewHotFreqPercent ("view-hot-freq-percent", cl::init(10), cl::Hidden, cl::desc("An integer in percent used to specify " "the hot blocks/edges to be displayed " "in red: a block or edge whose frequency " "is no less than the max frequency of the " "function multiplied by this percent.")) |
cl::opt< PGOViewCountsType > | llvm::PGOViewCounts ("pgo-view-counts", cl::Hidden, cl::desc("A boolean option to show CFG dag or text with " "block profile counts and branch probabilities " "right after PGO profile annotation step. The " "profile counts are computed using branch " "probabilities from the runtime profile data and " "block frequency propagation algorithm. To view " "the raw counts from the profile, use option " "-pgo-view-raw-counts instead. To limit graph " "display to only one function, use filtering option " "-view-bfi-func-name."), cl::values(clEnumValN(PGOVCT_None, "none", "do not show."), clEnumValN(PGOVCT_Graph, "graph", "show a graph."), clEnumValN(PGOVCT_Text, "text", "show in text."))) |
static cl::opt< bool > | llvm::PrintBFI ("print-bfi", cl::init(false), cl::Hidden, cl::desc("Print the block frequency info.")) |
cl::opt< std::string > | llvm::PrintBFIFuncName ("print-bfi-func-name", cl::Hidden, cl::desc("The option to specify the name of the function " "whose block frequency info is printed.")) |
block | freq |
block Block Frequency | Analysis |
block Block Frequency | true |
#define DEBUG_TYPE "block-freq" |
Definition at line 33 of file BlockFrequencyInfo.cpp.
INITIALIZE_PASS_BEGIN | ( | BlockFrequencyInfoWrapperPass | , |
"block-freq" | , | ||
"Block Frequency Analysis" | , | ||
true | , | ||
true | |||
) |
Definition at line 300 of file BlockFrequencyInfo.cpp.
Referenced by llvm::AMDGPUTargetLowering::computeNumSignBitsForTargetInstr(), llvm::AnalysisGetter::getAnalysis(), llvm::PassInstrumentation::runAfterAnalysis(), llvm::PassInstrumentation::runAnalysisInvalidated(), llvm::PassInstrumentation::runBeforeAnalysis(), llvm::DOTGraphTraitsViewerWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), and llvm::DOTGraphTraitsPrinterWrapperPass< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction().
block freq |
Definition at line 299 of file BlockFrequencyInfo.cpp.
Referenced by llvm::SpillPlacement::Node::addBias(), llvm::getHeatColor(), and llvm::DOTGraphTraits< CallGraphDOTInfo * >::getNodeAttributes().
block Block Frequency true |
Definition at line 300 of file BlockFrequencyInfo.cpp.
|
static |
Referenced by llvm::BlockFrequencyInfo::calculate(), and llvm::getGVDT().