LLVM 17.0.0git
|
Sample profile inference pass. More...
#include "llvm/Transforms/Utils/SampleProfileInference.h"
Public Types | |
using | BasicBlockT = typename afdo_detail::TypeMap< BT >::BasicBlockT |
using | FunctionT = typename afdo_detail::TypeMap< BT >::FunctionT |
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 141 of file SampleProfileInference.h.
using llvm::SampleProfileInference< BT >::BasicBlockT = typename afdo_detail::TypeMap<BT>::BasicBlockT |
Definition at line 143 of file SampleProfileInference.h.
using llvm::SampleProfileInference< BT >::BlockEdgeMap = DenseMap<const BasicBlockT *, SmallVector<const BasicBlockT *, 8> > |
Definition at line 148 of file SampleProfileInference.h.
using llvm::SampleProfileInference< BT >::BlockWeightMap = DenseMap<const BasicBlockT *, uint64_t> |
Definition at line 146 of file SampleProfileInference.h.
using llvm::SampleProfileInference< BT >::Edge = std::pair<const BasicBlockT *, const BasicBlockT *> |
Definition at line 145 of file SampleProfileInference.h.
using llvm::SampleProfileInference< BT >::EdgeWeightMap = DenseMap<Edge, uint64_t> |
Definition at line 147 of file SampleProfileInference.h.
using llvm::SampleProfileInference< BT >::FunctionT = typename afdo_detail::TypeMap<BT>::FunctionT |
Definition at line 144 of file SampleProfileInference.h.
|
inline |
Definition at line 151 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 184 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().