13#ifndef LLVM_EXECUTIONENGINE_ORC_SPECULATEANALYSES_H
14#define LLVM_EXECUTIONENGINE_ORC_SPECULATEANALYSES_H
32 using ResultTy = std::optional<DenseMap<StringRef, DenseSet<StringRef>>>;
37 size_t numBBToGet(
size_t);
49 struct WalkDirection {
50 bool Upward =
true, Downward =
true;
52 bool CallerBlock =
false;
64 std::size_t getHottestBlocks(std::size_t TotalBlocks);
LLVM Basic Block Representation.
Analysis providing branch probability information.
Implements a dense probed hash-table based set.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
LLVM_ABI ResultTy operator()(Function &F)
LLVM_ABI ResultTy operator()(Function &F)
SmallVector< std::pair< const BasicBlock *, uint64_t >, 8 > BlockFreqInfoTy
DenseMap< const BasicBlock *, WalkDirection > VisitedBlocksInfoTy
SmallVector< const BasicBlock *, 8 > BlockListTy
SmallVector< std::pair< const BasicBlock *, const BasicBlock * >, 8 > BackEdgesInfoTy
std::optional< DenseMap< StringRef, DenseSet< StringRef > > > ResultTy
LLVM_ABI bool isStraightLine(const Function &F)
LLVM_ABI void findCalles(const BasicBlock *, DenseSet< StringRef > &)
This is an optimization pass for GlobalISel generic memory operations.