LLVM 20.0.0git
|
Common features for diagnostics dealing with optimization remarks that are used by IR passes. More...
#include "llvm/IR/DiagnosticInfo.h"
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 Value * | 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 |
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 char * | PassName |
Name of the pass that triggers this report. | |
StringRef | RemarkName |
Textual identifier for the remark (single-word, camel-case). | |
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 695 of file DiagnosticInfo.h.
|
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 706 of file DiagnosticInfo.h.
|
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 723 of file DiagnosticInfo.h.
References llvm::DiagnosticInfoOptimizationBase::Args.
|
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 741 of file DiagnosticInfo.h.
References llvm::Twine::str().
|
inlinestatic |
Definition at line 751 of file DiagnosticInfo.h.
References llvm::DK_FirstRemark, llvm::DK_LastRemark, and llvm::DiagnosticInfo::getKind().
Definition at line 749 of file DiagnosticInfo.h.