13#ifndef LLVM_CODEGEN_BASIC_BLOCK_AND_INFERENCE_H
14#define LLVM_CODEGEN_BASIC_BLOCK_AND_INFERENCE_H
28 using Edge = std::pair<const MachineBasicBlock *, const MachineBasicBlock *>;
36 BlockWeightMap BlockWeights;
38 EdgeWeightMap EdgeWeights;
46 return "Basic Block Matching and Inference";
53 std::optional<WeightInfo> getWeightInfo(
StringRef FuncName)
const;
62 WeightInfo &MatchWeight);
This file provides the interface for the profile inference algorithm, profi.
Represent the analysis usage information of a pass.
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
BasicBlockMatchingAndInference()
MachineFunctionPass(char &ID)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI cl::opt< bool > PropellerMatchBBID
Whether to match basic blocks using BBIDs instead of hashes for Propeller inference.