class MachineOptimizationRemarkEmitter

Declaration

class MachineOptimizationRemarkEmitter { /* full declaration omitted */ };

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.

Declared at: llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h:144

Method Overview

  • public MachineOptimizationRemarkEmitter(llvm::MachineFunction & MF, llvm::MachineBlockFrequencyInfo * MBFI)
  • public bool allowExtraAnalysis(llvm::StringRef PassName) const
  • public void emit(llvm::DiagnosticInfoOptimizationBase & OptDiag)
  • public template <typename T>void emit(T RemarkBuilder, decltype(RemarkBuilder()) * = nullptr)
  • public llvm::MachineBlockFrequencyInfo * getBFI()

Methods

MachineOptimizationRemarkEmitter(
    llvm::MachineFunction& MF,
    llvm::MachineBlockFrequencyInfo* MBFI)

Declared at: llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h:146

Parameters

llvm::MachineFunction& MF
llvm::MachineBlockFrequencyInfo* MBFI

bool allowExtraAnalysis(
    llvm::StringRef PassName) const

Description

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.

Declared at: llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h:160

Parameters

llvm::StringRef PassName

void emit(
    llvm::DiagnosticInfoOptimizationBase& OptDiag)

Description

Emit an optimization remark.

Declared at: llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h:151

Parameters

llvm::DiagnosticInfoOptimizationBase& OptDiag

template <typename T>
void emit(T RemarkBuilder,
          decltype(RemarkBuilder())* = nullptr)

Description

Take a lambda that returns a remark which will be emitted. Second argument is only used to restrict this to functions.

Declared at: llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h:170

Templates

T

Parameters

T RemarkBuilder
decltype(RemarkBuilder())* = nullptr

llvm::MachineBlockFrequencyInfo* getBFI()

Declared at: llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h:185