MachineBlockFrequencyInfo.h [plain text]
#ifndef LLVM_CODEGEN_MACHINEBLOCKFREQUENCYINFO_H
#define LLVM_CODEGEN_MACHINEBLOCKFREQUENCYINFO_H
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/Support/BlockFrequency.h"
#include <climits>
namespace llvm {
class MachineBasicBlock;
class MachineBranchProbabilityInfo;
template <class BlockT> class BlockFrequencyInfoImpl;
class MachineBlockFrequencyInfo : public MachineFunctionPass {
typedef BlockFrequencyInfoImpl<MachineBasicBlock> ImplType;
std::unique_ptr<ImplType> MBFI;
public:
static char ID;
MachineBlockFrequencyInfo();
~MachineBlockFrequencyInfo() override;
void getAnalysisUsage(AnalysisUsage &AU) const override;
bool runOnMachineFunction(MachineFunction &F) override;
void releaseMemory() override;
BlockFrequency getBlockFreq(const MachineBasicBlock *MBB) const;
const MachineFunction *getFunction() const;
void view() const;
raw_ostream &printBlockFreq(raw_ostream &OS, const BlockFrequency Freq) const;
raw_ostream &printBlockFreq(raw_ostream &OS,
const MachineBasicBlock *MBB) const;
uint64_t getEntryFreq() const;
};
}
#endif