13#ifndef LLVM_CODEGEN_BASIC_BLOCK_AND_INFERENCE_H
14#define LLVM_CODEGEN_BASIC_BLOCK_AND_INFERENCE_H
24 using Edge = std::pair<const MachineBasicBlock *, const MachineBasicBlock *>;
32 BlockWeightMap BlockWeights;
34 EdgeWeightMap EdgeWeights;
42 return "Basic Block Matching and Inference";
57 WeightInfo &MatchWeight);
This file provides the interface for the profile inference algorithm, profi.
Represent the analysis usage information of a pass.
std::optional< WeightInfo > getWeightInfo(StringRef FuncName) const
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
bool runOnMachineFunction(MachineFunction &F) override
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
BasicBlockMatchingAndInference()
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
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",...
StringRef - Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.