LLVM 20.0.0git
|
Diagnostic information for applied optimization remarks. More...
#include "llvm/IR/DiagnosticInfo.h"
Public Member Functions | |
OptimizationRemark (const char *PassName, StringRef RemarkName, const DiagnosticLocation &Loc, const Value *CodeRegion) | |
PassName is the name of the pass emitting this diagnostic. | |
OptimizationRemark (const char *PassName, StringRef RemarkName, const Instruction *Inst) | |
Same as above, but the debug location and code region are derived from Instr . | |
OptimizationRemark (const char *PassName, StringRef RemarkName, const Function *Func) | |
Same as above, but the debug location and code region are derived from Func . | |
bool | isEnabled () const override |
Public Member Functions inherited from llvm::DiagnosticInfoIROptimization | |
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::DiagnosticInfoIROptimization | |
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. | |
Diagnostic information for applied optimization remarks.
Definition at line 689 of file DiagnosticInfo.h.
OptimizationRemark::OptimizationRemark | ( | const char * | PassName, |
StringRef | RemarkName, | ||
const DiagnosticLocation & | Loc, | ||
const Value * | CodeRegion | ||
) |
PassName
is the name of the pass emitting this diagnostic.
If this name matches the regular expression given in -Rpass=, then the diagnostic will be emitted. RemarkName
is a textual identifier for the remark (single- word, camel-case). Loc
is the debug location and CodeRegion
is the region that the optimization operates on (currently only block is supported).
Definition at line 252 of file DiagnosticInfo.cpp.
OptimizationRemark::OptimizationRemark | ( | const char * | PassName, |
StringRef | RemarkName, | ||
const Instruction * | Inst | ||
) |
Same as above, but the debug location and code region are derived from Instr
.
Definition at line 260 of file DiagnosticInfo.cpp.
OptimizationRemark::OptimizationRemark | ( | const char * | PassName, |
StringRef | RemarkName, | ||
const Function * | Func | ||
) |
Same as above, but the debug location and code region are derived from Func
.
Definition at line 271 of file DiagnosticInfo.cpp.
|
inlinestatic |
Definition at line 710 of file DiagnosticInfo.h.
References llvm::DK_OptimizationRemark, and llvm::DiagnosticInfo::getKind().
|
overridevirtual |
Implements llvm::DiagnosticInfoOptimizationBase.
Definition at line 278 of file DiagnosticInfo.cpp.
References llvm::Function::getContext(), llvm::LLVMContext::getDiagHandlerPtr(), llvm::DiagnosticInfoWithLocationBase::getFunction(), llvm::DiagnosticInfoOptimizationBase::getPassName(), and llvm::DiagnosticHandler::isPassedOptRemarkEnabled().