LLVM: llvm::DiagnosticInfoIROptimization Class Reference (original) (raw)

Common features for diagnostics dealing with optimization remarks that are used by IR passes. More...

#include "[llvm/IR/DiagnosticInfo.h](DiagnosticInfo%5F8h%5Fsource.html)"

Public Member Functions
DiagnosticInfoIROptimization (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const char *PassName, StringRef RemarkName, const Function &Fn, const DiagnosticLocation &Loc, const BasicBlock *CodeRegion=nullptr)
PassName is the name of the pass emitting this diagnostic.
DiagnosticInfoIROptimization (const char *PassName, StringRef Prepend, const DiagnosticInfoIROptimization &Orig)
This is ctor variant allows a pass to build an optimization remark from an existing remark.
DiagnosticInfoIROptimization (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const char *PassName, const Function &Fn, const DiagnosticLocation &Loc, const Twine &Msg)
Legacy interface.
const BasicBlock * getCodeRegion () const
Public Member Functions inherited from llvm::DiagnosticInfoOptimizationBase
DiagnosticInfoOptimizationBase (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const char *PassName, StringRef RemarkName, const Function &Fn, const DiagnosticLocation &Loc)
PassName is the name of the pass emitting this diagnostic.
void insert (StringRef S)
void insert (Argument A)
void insert (setIsVerbose V)
void insert (setExtraArgs EA)
void print (DiagnosticPrinter &DP) const override
virtual bool isEnabled () const =0
Return true if this optimization remark is enabled by one of of the LLVM command line flags (-pass-remarks, -pass-remarks-missed, or -pass-remarks-analysis).
StringRef getPassName () const
StringRef getRemarkName () const
std::string getMsg () const
std::optional< uint64_t > getHotness () const
void setHotness (std::optional< uint64_t > H)
bool isVerbose () const
ArrayRef< Argument > getArgs () const
bool isPassed () const
bool isMissed () const
bool isAnalysis () const
Public Member Functions inherited from llvm::DiagnosticInfoWithLocationBase
DiagnosticInfoWithLocationBase (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const Function &Fn, const DiagnosticLocation &Loc)
Fn is the function where the diagnostic is being emitted.
bool isLocationAvailable () const
Return true if location information is available for this diagnostic.
std::string getLocationStr () const
Return a string with the location information for this diagnostic in the format "file:line:col".
void getLocation (StringRef &RelativePath, unsigned &Line, unsigned &Column) const
Return location information for this diagnostic in three parts: the relative source file path, line number and column.
std::string getAbsolutePath () const
Return the absolute path tot the file.
const Function & getFunction () const
DiagnosticLocation getLocation () const
Public Member Functions inherited from llvm::DiagnosticInfo
DiagnosticInfo (int Kind, DiagnosticSeverity Severity)
virtual ~DiagnosticInfo ()=default
int getKind () const
DiagnosticSeverity getSeverity () const
Additional Inherited Members
Protected Attributes inherited from llvm::DiagnosticInfoOptimizationBase
const char * PassName
Name of the pass that triggers this report.
StringRef RemarkName
Textual identifier for the remark (single-word, CamelCase).
std::optional< uint64_t > Hotness
If profile information is available, this is the number of times the corresponding code was executed in a profile instrumentation run.
SmallVector< Argument, 4 > Args
Arguments collected via the streaming interface.
bool IsVerbose = false
The remark is expected to be noisy.
int FirstExtraArgIndex = -1
If positive, the index of the first argument that only appear in the optimization records and not in the remark printed in the compiler output.

Common features for diagnostics dealing with optimization remarks that are used by IR passes.

Definition at line 697 of file DiagnosticInfo.h.

PassName is the name of the pass emitting this diagnostic.

RemarkName is a textual identifier for the remark (single-word, CamelCase). Fn is the function where the diagnostic is being emitted. [Loc](namespacellvm%5F1%5F1Loc.html) is the location information to use in the diagnostic. If line table information is available, the diagnostic will include the source code location. CodeRegion is IR value that the optimization operates on. This is currently used to provide run-time hotness information with PGO.

Definition at line 708 of file DiagnosticInfo.h.

References llvm::DiagnosticInfoOptimizationBase::DiagnosticInfoOptimizationBase(), llvm::DiagnosticInfoOptimizationBase::PassName, and llvm::DiagnosticInfoOptimizationBase::RemarkName.

Referenced by DiagnosticInfoIROptimization(), llvm::DiagnosticInfoOptimizationFailure::DiagnosticInfoOptimizationFailure(), llvm::DiagnosticInfoOptimizationFailure::DiagnosticInfoOptimizationFailure(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkMissed::OptimizationRemarkMissed(), llvm::OptimizationRemarkMissed::OptimizationRemarkMissed(), and llvm::OptimizationRemarkMissed::OptimizationRemarkMissed().

DiagnosticInfoIROptimization() [2/3]

This is ctor variant allows a pass to build an optimization remark from an existing remark.

This is useful when a transformation pass (e.g LV) wants to emit a remark (Orig) generated by one of its analyses (e.g. LAA) as its own analysis remark. The string Prepend will be emitted before the original message.

Definition at line 725 of file DiagnosticInfo.h.

References llvm::append_range(), llvm::DiagnosticInfoOptimizationBase::Args, DiagnosticInfoIROptimization(), llvm::DiagnosticInfoOptimizationBase::DiagnosticInfoOptimizationBase(), getCodeRegion(), llvm::DiagnosticInfoWithLocationBase::getFunction(), llvm::DiagnosticInfo::getKind(), llvm::DiagnosticInfoWithLocationBase::getLocation(), llvm::DiagnosticInfo::getSeverity(), llvm::DiagnosticInfoOptimizationBase::PassName, and llvm::DiagnosticInfoOptimizationBase::RemarkName.

DiagnosticInfoIROptimization() [3/3]

classof()

getCodeRegion()

const BasicBlock * llvm::DiagnosticInfoIROptimization::getCodeRegion ( ) const inline

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