LLVM 20.0.0git
|
Sample profile inference pass. More...
#include "llvm/Transforms/Utils/SampleProfileInference.h"
Public Types | |
using | NodeRef = typename GraphTraits< FT * >::NodeRef |
using | BasicBlockT = std::remove_pointer_t< NodeRef > |
using | FunctionT = FT |
using | Edge = std::pair< const BasicBlockT *, const BasicBlockT * > |
using | BlockWeightMap = DenseMap< const BasicBlockT *, uint64_t > |
using | EdgeWeightMap = DenseMap< Edge, uint64_t > |
using | BlockEdgeMap = DenseMap< const BasicBlockT *, SmallVector< const BasicBlockT *, 8 > > |
Public Member Functions | |
SampleProfileInference (FunctionT &F, BlockEdgeMap &Successors, BlockWeightMap &SampleBlockWeights) | |
void | apply (BlockWeightMap &BlockWeights, EdgeWeightMap &EdgeWeights) |
Apply the profile inference algorithm for a given function. | |
Sample profile inference pass.
Definition at line 119 of file SampleProfileInference.h.
using llvm::SampleProfileInference< FT >::BasicBlockT = std::remove_pointer_t<NodeRef> |
Definition at line 122 of file SampleProfileInference.h.
using llvm::SampleProfileInference< FT >::BlockEdgeMap = DenseMap<const BasicBlockT *, SmallVector<const BasicBlockT *, 8> > |
Definition at line 127 of file SampleProfileInference.h.
using llvm::SampleProfileInference< FT >::BlockWeightMap = DenseMap<const BasicBlockT *, uint64_t> |
Definition at line 125 of file SampleProfileInference.h.
using llvm::SampleProfileInference< FT >::Edge = std::pair<const BasicBlockT *, const BasicBlockT *> |
Definition at line 124 of file SampleProfileInference.h.
using llvm::SampleProfileInference< FT >::EdgeWeightMap = DenseMap<Edge, uint64_t> |
Definition at line 126 of file SampleProfileInference.h.
using llvm::SampleProfileInference< FT >::FunctionT = FT |
Definition at line 123 of file SampleProfileInference.h.
using llvm::SampleProfileInference< FT >::NodeRef = typename GraphTraits<FT *>::NodeRef |
Definition at line 121 of file SampleProfileInference.h.
|
inline |
Definition at line 130 of file SampleProfileInference.h.
References F.
void llvm::SampleProfileInference< BT >::apply | ( | BlockWeightMap & | BlockWeights, |
EdgeWeightMap & | EdgeWeights | ||
) |
Apply the profile inference algorithm for a given function.
Definition at line 163 of file SampleProfileInference.h.
References llvm::applyFlowInference(), assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), llvm::SmallPtrSetImpl< PtrType >::contains(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::depth_first_ext(), E, F, I, llvm::inverse_depth_first_ext(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::reserve(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), and llvm::SmallPtrSetImplBase::size().