LLVM 22.0.0git
BlockFrequencyInfoImpl.h File Reference
#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/SparseBitVector.h"
#include "llvm/ADT/Twine.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Support/BlockFrequency.h"
#include "llvm/Support/BranchProbability.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/DOTGraphTraits.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/ScaledNumber.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <deque>
#include <iterator>
#include <limits>
#include <list>
#include <optional>
#include <queue>
#include <string>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  llvm::bfi_detail::BlockMass
 Mass of a block. More...
class  llvm::BlockFrequencyInfoImplBase
 Base class for BlockFrequencyInfoImpl. More...
struct  llvm::BlockFrequencyInfoImplBase::BlockNode
 Representative of a block. More...
struct  llvm::BlockFrequencyInfoImplBase::FrequencyData
 Stats about a block itself. More...
struct  llvm::BlockFrequencyInfoImplBase::LoopData
 Data about a loop. More...
struct  llvm::BlockFrequencyInfoImplBase::WorkingData
 Index of loop information. More...
struct  llvm::BlockFrequencyInfoImplBase::Weight
 Unscaled probability weight. More...
struct  llvm::BlockFrequencyInfoImplBase::Distribution
 Distribution of unscaled probability weight. More...
struct  llvm::bfi_detail::TypeMap< BlockT >
struct  llvm::bfi_detail::TypeMap< BasicBlock >
struct  llvm::bfi_detail::TypeMap< MachineBasicBlock >
struct  llvm::bfi_detail::IrreducibleGraph
 Graph of irreducible control flow. More...
struct  llvm::bfi_detail::IrreducibleGraph::IrrNode
class  llvm::BlockFrequencyInfoImpl< BT >
 Shared implementation for block frequency analysis. More...
class  llvm::bfi_detail::BFICallbackVH< BasicBlock, BFIImplT >
class  llvm::bfi_detail::BFICallbackVH< MachineBasicBlock, BFIImplT >
 Dummy implementation since MachineBasicBlocks aren't Values, so ValueHandles don't apply to them. More...
struct  llvm::BFIDOTGraphTraitsBase< BlockFrequencyInfoT, BranchProbabilityInfoT >

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::bfi_detail

Macros

#define DEBUG_TYPE   "block-freq"

Enumerations

enum  llvm::GVDAGType { llvm::GVDT_None , llvm::GVDT_Fraction , llvm::GVDT_Integer , llvm::GVDT_Count }

Functions

BlockMass llvm::bfi_detail::operator+ (BlockMass L, BlockMass R)
BlockMass llvm::bfi_detail::operator- (BlockMass L, BlockMass R)
BlockMass llvm::bfi_detail::operator* (BlockMass L, BranchProbability R)
BlockMass llvm::bfi_detail::operator* (BranchProbability L, BlockMass R)
raw_ostreamllvm::bfi_detail::operator<< (raw_ostream &OS, BlockMass X)
template<class BlockT>
std::string llvm::bfi_detail::getBlockName (const BlockT *BB)
 Get the name of a MachineBasicBlock.
template<>
std::string llvm::bfi_detail::getBlockName (const BasicBlock *BB)
 Get the name of a BasicBlock.
uint32_t llvm::getWeightFromBranchProb (const BranchProbability Prob)

Variables

llvm::cl::opt< boolllvm::CheckBFIUnknownBlockQueries
llvm::cl::opt< boolllvm::UseIterativeBFIInference
llvm::cl::opt< unsignedllvm::IterativeBFIMaxIterationsPerBlock
llvm::cl::opt< double > llvm::IterativeBFIPrecision

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "block-freq"

Definition at line 52 of file BlockFrequencyInfoImpl.h.