LLVM API Documentation
Common features for diagnostics dealing with optimization remarks. More...
#include <DiagnosticInfo.h>
Public Member Functions | |
DiagnosticInfoOptimizationBase (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const char *PassName, const Function &Fn, const DebugLoc &DLoc, const Twine &Msg) | |
void | print (DiagnosticPrinter &DP) const override |
virtual bool | isEnabled () const =0 |
bool | isLocationAvailable () const |
Return true if location information is available for this diagnostic. | |
const std::string | getLocationStr () const |
void | getLocation (StringRef *Filename, unsigned *Line, unsigned *Column) const |
const char * | getPassName () const |
const Function & | getFunction () const |
const DebugLoc & | getDebugLoc () const |
const Twine & | getMsg () const |
Static Public Member Functions | |
static bool | classof (const DiagnosticInfo *DI) |
Common features for diagnostics dealing with optimization remarks.
Definition at line 244 of file DiagnosticInfo.h.
llvm::DiagnosticInfoOptimizationBase::DiagnosticInfoOptimizationBase | ( | enum DiagnosticKind | Kind, |
enum DiagnosticSeverity | Severity, | ||
const char * | PassName, | ||
const Function & | Fn, | ||
const DebugLoc & | DLoc, | ||
const Twine & | Msg | ||
) | [inline] |
PassName
is the name of the pass emitting this diagnostic. Fn
is the function where the diagnostic is being emitted. DLoc
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 253 of file DiagnosticInfo.h.
static bool llvm::DiagnosticInfoOptimizationBase::classof | ( | const DiagnosticInfo * | DI | ) | [inline, static] |
Reimplemented in llvm::DiagnosticInfoOptimizationFailure, llvm::DiagnosticInfoOptimizationRemarkAnalysis, llvm::DiagnosticInfoOptimizationRemarkMissed, and llvm::DiagnosticInfoOptimizationRemark.
Definition at line 263 of file DiagnosticInfo.h.
References llvm::DK_OptimizationRemark, and llvm::DiagnosticInfo::getKind().
const DebugLoc& llvm::DiagnosticInfoOptimizationBase::getDebugLoc | ( | ) | const [inline] |
Definition at line 288 of file DiagnosticInfo.h.
Referenced by getLocation(), and isLocationAvailable().
const Function& llvm::DiagnosticInfoOptimizationBase::getFunction | ( | ) | const [inline] |
Definition at line 287 of file DiagnosticInfo.h.
Referenced by getLocation().
void DiagnosticInfoOptimizationBase::getLocation | ( | StringRef * | Filename, |
unsigned * | Line, | ||
unsigned * | Column | ||
) | const |
Return location information for this diagnostic in three parts: the source file name, line number and column.
Definition at line 134 of file DiagnosticInfo.cpp.
References llvm::DILocation::getColumnNumber(), getDebugLoc(), llvm::DILocation::getFilename(), getFunction(), and llvm::DILocation::getLineNumber().
Referenced by getLocationStr().
const std::string DiagnosticInfoOptimizationBase::getLocationStr | ( | ) | const |
Return a string with the location information for this diagnostic in the format "file:line:col". If location information is not available, it returns "<unknown>:0:0".
Definition at line 143 of file DiagnosticInfo.cpp.
References getLocation(), isLocationAvailable(), and llvm::Twine::str().
Referenced by print().
const Twine& llvm::DiagnosticInfoOptimizationBase::getMsg | ( | ) | const [inline] |
Definition at line 289 of file DiagnosticInfo.h.
Referenced by print().
const char* llvm::DiagnosticInfoOptimizationBase::getPassName | ( | ) | const [inline] |
Definition at line 286 of file DiagnosticInfo.h.
Referenced by llvm::DiagnosticInfoOptimizationRemark::isEnabled(), llvm::DiagnosticInfoOptimizationRemarkMissed::isEnabled(), and llvm::DiagnosticInfoOptimizationRemarkAnalysis::isEnabled().
virtual bool llvm::DiagnosticInfoOptimizationBase::isEnabled | ( | ) | const [pure virtual] |
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). Note that this only handles the LLVM flags. We cannot access Clang flags from here (they are handled in BackendConsumer::OptimizationRemarkHandler).
Implemented in llvm::DiagnosticInfoOptimizationFailure, llvm::DiagnosticInfoOptimizationRemarkAnalysis, llvm::DiagnosticInfoOptimizationRemarkMissed, and llvm::DiagnosticInfoOptimizationRemark.
Return true if location information is available for this diagnostic.
Definition at line 130 of file DiagnosticInfo.cpp.
References getDebugLoc(), and llvm::DebugLoc::isUnknown().
Referenced by getLocationStr().
void DiagnosticInfoOptimizationBase::print | ( | DiagnosticPrinter & | DP | ) | const [override, virtual] |
Implements llvm::DiagnosticInfo.
Definition at line 152 of file DiagnosticInfo.cpp.
References getLocationStr(), and getMsg().