LLVM 19.0.0git
Classes | Namespaces | Macros | Enumerations | Functions | Variables
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::bfi_detail::BlockEdgesAdder< BT >
 
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_ostream & llvm::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.