LLVM
8.0.1
|
Diagnostic information for optimization analysis remarks. More...
#include "llvm/IR/DiagnosticInfo.h"
Public Member Functions | |
OptimizationRemarkAnalysis (const char *PassName, StringRef RemarkName, const DiagnosticLocation &Loc, const Value *CodeRegion) | |
PassName is the name of the pass emitting this diagnostic. More... | |
OptimizationRemarkAnalysis (const char *PassName, StringRef Prepend, const OptimizationRemarkAnalysis &Orig) | |
This is ctor variant allows a pass to build an optimization remark from an existing remark. More... | |
OptimizationRemarkAnalysis (const char *PassName, StringRef RemarkName, const Instruction *Inst) | |
Same as above but Inst is used to derive code region and debug location. More... | |
bool | isEnabled () const override |
bool | shouldAlwaysPrint () const |
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. More... | |
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. More... | |
DiagnosticInfoIROptimization (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const char *PassName, const Function &Fn, const DiagnosticLocation &Loc, const Twine &Msg) | |
Legacy interface. More... | |
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. More... | |
void | insert (StringRef S) |
void | insert (Argument A) |
void | insert (setIsVerbose V) |
void | insert (setExtraArgs EA) |
void | print (DiagnosticPrinter &DP) const override |
StringRef | getPassName () const |
std::string | getMsg () const |
Optional< uint64_t > | getHotness () const |
void | setHotness (Optional< uint64_t > H) |
bool | isVerbose () 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. More... | |
bool | isLocationAvailable () const |
Return true if location information is available for this diagnostic. More... | |
const std::string | getLocationStr () const |
Return a string with the location information for this diagnostic in the format "file:line:col". More... | |
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. More... | |
std::string | getAbsolutePath () const |
Return the absolute path tot the file. More... | |
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 |
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) |
Static Public Attributes | |
static const char * | AlwaysPrint = "" |
Protected Member Functions | |
OptimizationRemarkAnalysis (enum DiagnosticKind Kind, const char *PassName, const Function &Fn, const DiagnosticLocation &Loc, const Twine &Msg) | |
OptimizationRemarkAnalysis (enum DiagnosticKind Kind, const char *PassName, StringRef RemarkName, const DiagnosticLocation &Loc, const Value *CodeRegion) | |
Additional Inherited Members | |
Protected Attributes inherited from llvm::DiagnosticInfoOptimizationBase | |
const char * | PassName |
Name of the pass that triggers this report. More... | |
StringRef | RemarkName |
Textual identifier for the remark (single-word, camel-case). More... | |
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. More... | |
SmallVector< Argument, 4 > | Args |
Arguments collected via the streaming interface. More... | |
bool | IsVerbose = false |
The remark is expected to be noisy. More... | |
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. More... | |
Diagnostic information for optimization analysis remarks.
Definition at line 756 of file DiagnosticInfo.h.
OptimizationRemarkAnalysis::OptimizationRemarkAnalysis | ( | 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-analysis=, 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 288 of file DiagnosticInfo.cpp.
|
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 775 of file DiagnosticInfo.h.
OptimizationRemarkAnalysis::OptimizationRemarkAnalysis | ( | const char * | PassName, |
StringRef | RemarkName, | ||
const Instruction * | Inst | ||
) |
Same as above but Inst
is used to derive code region and debug location.
Definition at line 295 of file DiagnosticInfo.cpp.
|
inlineprotected |
Definition at line 796 of file DiagnosticInfo.h.
References llvm::DK_OptimizationRemarkAnalysis, and llvm::DS_Remark.
|
protected |
Definition at line 303 of file DiagnosticInfo.cpp.
|
inlinestatic |
Definition at line 784 of file DiagnosticInfo.h.
References llvm::DK_OptimizationRemarkAnalysis, llvm::DiagnosticInfo::getKind(), and isEnabled().
|
overridevirtual |
Implements llvm::DiagnosticInfoOptimizationBase.
Definition at line 310 of file DiagnosticInfo.cpp.
References llvm::Function::getContext(), llvm::LLVMContext::getDiagHandlerPtr(), llvm::DiagnosticInfoWithLocationBase::getFunction(), llvm::DiagnosticInfoOptimizationBase::getPassName(), llvm::DiagnosticHandler::isAnalysisRemarkEnabled(), and shouldAlwaysPrint().
|
inline |
Definition at line 793 of file DiagnosticInfo.h.
Referenced by isEnabled().
Definition at line 791 of file DiagnosticInfo.h.
Referenced by llvm::getNextAvailablePluginDiagnosticKind(), and llvm::LoopVectorizeHints::vectorizeAnalysisPassName().