LLVM 19.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::DiagnosticInfoIROptimization Class Reference

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

#include "llvm/IR/DiagnosticInfo.h"

Inheritance diagram for llvm::DiagnosticInfoIROptimization:
Inheritance graph
[legend]

Public Member Functions

 DiagnosticInfoIROptimization (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const char *PassName, StringRef RemarkName, const Function &Fn, const DiagnosticLocation &Loc, const Value *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 ValuegetCodeRegion () 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_tgetHotness () const
 
void setHotness (std::optional< uint64_t > H)
 
bool isVerbose () const
 
ArrayRef< ArgumentgetArgs () 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 FunctiongetFunction () 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
 
virtual void print (DiagnosticPrinter &DP) const =0
 Print using the given DP a user-friendly message.
 

Static Public Member Functions

static bool classof (const DiagnosticInfo *DI)
 
- Static Public Member Functions inherited from llvm::DiagnosticInfoOptimizationBase
static bool classof (const DiagnosticInfo *DI)
 

Additional Inherited Members

- Protected Attributes inherited from llvm::DiagnosticInfoOptimizationBase
const charPassName
 Name of the pass that triggers this report.
 
StringRef RemarkName
 Textual identifier for the remark (single-word, camel-case).
 
std::optional< uint64_tHotness
 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.
 

Detailed Description

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

Definition at line 622 of file DiagnosticInfo.h.

Constructor & Destructor Documentation

◆ DiagnosticInfoIROptimization() [1/3]

llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization ( enum DiagnosticKind  Kind,
enum DiagnosticSeverity  Severity,
const char PassName,
StringRef  RemarkName,
const Function Fn,
const DiagnosticLocation Loc,
const Value CodeRegion = nullptr 
)
inline

PassName is the name of the pass emitting this diagnostic.

RemarkName is a textual identifier for the remark (single-word, camel-case). Fn is the function where the diagnostic is being emitted. Loc 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 (currently basic block) that the optimization operates on. This is currently used to provide run-time hotness information with PGO.

Definition at line 633 of file DiagnosticInfo.h.

◆ DiagnosticInfoIROptimization() [2/3]

llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization ( const char PassName,
StringRef  Prepend,
const DiagnosticInfoIROptimization Orig 
)
inline

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 650 of file DiagnosticInfo.h.

References llvm::DiagnosticInfoOptimizationBase::Args.

◆ DiagnosticInfoIROptimization() [3/3]

llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization ( enum DiagnosticKind  Kind,
enum DiagnosticSeverity  Severity,
const char PassName,
const Function Fn,
const DiagnosticLocation Loc,
const Twine Msg 
)
inline

Legacy interface.

PassName is the name of the pass emitting this diagnostic. Fn is the function where the diagnostic is being emitted. Loc is the location information to use in the diagnostic. If line table information is available, the diagnostic will include the source code location. Msg is the message to show. Note that this class does not copy this message, so this reference must be valid for the whole life time of the diagnostic.

Definition at line 668 of file DiagnosticInfo.h.

Member Function Documentation

◆ classof()

static bool llvm::DiagnosticInfoIROptimization::classof ( const DiagnosticInfo DI)
inlinestatic

◆ getCodeRegion()

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

Definition at line 676 of file DiagnosticInfo.h.


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