LLVM 22.0.0git
Public Member Functions | List of all members
llvm::MachineOptimizationRemarkEmitter Class Reference

The optimization diagnostic interface. More...

#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"

Public Member Functions

 MachineOptimizationRemarkEmitter (MachineFunction &MF, MachineBlockFrequencyInfo *MBFI)
 
 MachineOptimizationRemarkEmitter (MachineOptimizationRemarkEmitter &&)=default
 
LLVM_ABI bool invalidate (MachineFunction &MF, const PreservedAnalyses &PA, MachineFunctionAnalysisManager::Invalidator &Inv)
 Handle invalidation events in the new pass manager.
 
LLVM_ABI void emit (DiagnosticInfoOptimizationBase &OptDiag)
 Emit an optimization remark.
 
bool allowExtraAnalysis (StringRef PassName) const
 Whether we allow for extra compile-time budget to perform more analysis to be more informative.
 
template<typename T >
void emit (T RemarkBuilder, decltype(RemarkBuilder()) *=nullptr)
 Take a lambda that returns a remark which will be emitted.
 
MachineBlockFrequencyInfogetBFI ()
 

Detailed Description

The optimization diagnostic interface.

It allows reporting when optimizations are performed and when they are not along with the reasons for it. Hotness information of the corresponding code region can be included in the remark if DiagnosticsHotnessRequested is enabled in the LLVM context.

Definition at line 154 of file MachineOptimizationRemarkEmitter.h.

Constructor & Destructor Documentation

◆ MachineOptimizationRemarkEmitter() [1/2]

llvm::MachineOptimizationRemarkEmitter::MachineOptimizationRemarkEmitter ( MachineFunction MF,
MachineBlockFrequencyInfo MBFI 
)
inline

Definition at line 156 of file MachineOptimizationRemarkEmitter.h.

◆ MachineOptimizationRemarkEmitter() [2/2]

llvm::MachineOptimizationRemarkEmitter::MachineOptimizationRemarkEmitter ( MachineOptimizationRemarkEmitter &&  )
default

Member Function Documentation

◆ allowExtraAnalysis()

bool llvm::MachineOptimizationRemarkEmitter::allowExtraAnalysis ( StringRef  PassName) const
inline

Whether we allow for extra compile-time budget to perform more analysis to be more informative.

This is useful to enable additional missed optimizations to be reported that are normally too noisy. In this mode, we can use the extra analysis (1) to filter trivial false positives or (2) to provide more context so that non-trivial false positives can be quickly detected by the user.

Definition at line 177 of file MachineOptimizationRemarkEmitter.h.

References llvm::Function::getContext(), llvm::LLVMContext::getDiagHandlerPtr(), llvm::MachineFunction::getFunction(), llvm::LLVMContext::getLLVMRemarkStreamer(), llvm::DiagnosticHandler::isAnyRemarkEnabled(), and PassName.

Referenced by llvm::AsmPrinter::emitFunctionBody().

◆ emit() [1/2]

void MachineOptimizationRemarkEmitter::emit ( DiagnosticInfoOptimizationBase OptDiag)

◆ emit() [2/2]

template<typename T >
void llvm::MachineOptimizationRemarkEmitter::emit ( T  RemarkBuilder,
decltype(RemarkBuilder()) *  = nullptr 
)
inline

Take a lambda that returns a remark which will be emitted.

Second argument is only used to restrict this to functions.

Definition at line 187 of file MachineOptimizationRemarkEmitter.h.

References emit(), llvm::Function::getContext(), llvm::LLVMContext::getDiagHandlerPtr(), llvm::MachineFunction::getFunction(), llvm::LLVMContext::getLLVMRemarkStreamer(), and llvm::DiagnosticHandler::isAnyRemarkEnabled().

◆ getBFI()

MachineBlockFrequencyInfo * llvm::MachineOptimizationRemarkEmitter::getBFI ( )
inline

Definition at line 202 of file MachineOptimizationRemarkEmitter.h.

◆ invalidate()

bool MachineOptimizationRemarkEmitter::invalidate ( MachineFunction MF,
const PreservedAnalyses PA,
MachineFunctionAnalysisManager::Invalidator Inv 
)

Handle invalidation events in the new pass manager.

Definition at line 34 of file MachineOptimizationRemarkEmitter.cpp.

References llvm::AnalysisManager< IRUnitT, ExtraArgTs >::Invalidator::invalidate().


The documentation for this class was generated from the following files: