diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2024-07-27 23:34:35 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2024-10-23 18:26:01 +0000 |
commit | 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583 (patch) | |
tree | 6cf5ab1f05330c6773b1f3f64799d56a9c7a1faa /contrib/llvm-project/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp | |
parent | 6b9f7133aba44189d9625c352bc2c2a59baf18ef (diff) | |
parent | ac9a064cb179f3425b310fa2847f8764ac970a4d (diff) |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp b/contrib/llvm-project/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp index 1c31eba909e7..039f07f2e5e3 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp @@ -31,6 +31,14 @@ DiagnosticInfoMIROptimization::MachineArgument::MachineArgument( /*SkipDebugLoc=*/true); } +bool MachineOptimizationRemarkEmitter::invalidate( + MachineFunction &MF, const PreservedAnalyses &PA, + MachineFunctionAnalysisManager::Invalidator &Inv) { + // This analysis has no state and so can be trivially preserved but it needs + // a fresh view of BFI if it was constructed with one. + return MBFI && Inv.invalidate<MachineBlockFrequencyAnalysis>(MF, PA); +} + std::optional<uint64_t> MachineOptimizationRemarkEmitter::computeHotness(const MachineBasicBlock &MBB) { if (!MBFI) @@ -86,6 +94,18 @@ void MachineOptimizationRemarkEmitterPass::getAnalysisUsage( MachineFunctionPass::getAnalysisUsage(AU); } +AnalysisKey MachineOptimizationRemarkEmitterAnalysis::Key; + +MachineOptimizationRemarkEmitterAnalysis::Result +MachineOptimizationRemarkEmitterAnalysis::run( + MachineFunction &MF, MachineFunctionAnalysisManager &MFAM) { + MachineBlockFrequencyInfo *MBFI = + MF.getFunction().getContext().getDiagnosticsHotnessRequested() + ? &MFAM.getResult<MachineBlockFrequencyAnalysis>(MF) + : nullptr; + return Result(MF, MBFI); +} + char MachineOptimizationRemarkEmitterPass::ID = 0; static const char ore_name[] = "Machine Optimization Remark Emitter"; #define ORE_NAME "machine-opt-remark-emitter" |