LLVM  4.0.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
llvm::OptimizationRemarkAnalysis Class Reference

Diagnostic information for optimization analysis remarks. More...

#include <DiagnosticInfo.h>

Inheritance diagram for llvm::OptimizationRemarkAnalysis:
[legend]
Collaboration diagram for llvm::OptimizationRemarkAnalysis:
[legend]

Public Member Functions

 OptimizationRemarkAnalysis (const char *PassName, const Function &Fn, const DebugLoc &DLoc, const Twine &Msg, Optional< uint64_t > Hotness=None)
 PassName is the name of the pass emitting this diagnostic. More...
 
 OptimizationRemarkAnalysis (const char *PassName, StringRef RemarkName, const DebugLoc &DLoc, 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, 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::DiagnosticInfoOptimizationBase
 DiagnosticInfoOptimizationBase (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const char *PassName, StringRef RemarkName, const Function &Fn, const DebugLoc &DLoc, Value *CodeRegion=nullptr)
 PassName is the name of the pass emitting this diagnostic. More...
 
 DiagnosticInfoOptimizationBase (const char *PassName, StringRef Prepend, const DiagnosticInfoOptimizationBase &Orig)
 This is ctor variant allows a pass to build an optimization remark from an existing remark. More...
 
 DiagnosticInfoOptimizationBase (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const char *PassName, const Function &Fn, const DebugLoc &DLoc, const Twine &Msg, Optional< uint64_t > Hotness=None)
 Legacy interface. More...
 
DiagnosticInfoOptimizationBaseoperator<< (StringRef S)
 
DiagnosticInfoOptimizationBaseoperator<< (Argument A)
 
DiagnosticInfoOptimizationBaseoperator<< (setIsVerbose V)
 
DiagnosticInfoOptimizationBaseoperator<< (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)
 
ValuegetCodeRegion () const
 
bool isVerbose () const
 
- Public Member Functions inherited from llvm::DiagnosticInfoWithDebugLocBase
 DiagnosticInfoWithDebugLocBase (enum DiagnosticKind Kind, enum DiagnosticSeverity Severity, const Function &Fn, const DebugLoc &DLoc)
 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 *Filename, unsigned *Line, unsigned *Column) const
 Return location information for this diagnostic in three parts: the source file name, line number and column. More...
 
const FunctiongetFunction () const
 
const DebugLocgetDebugLoc () 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::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 DebugLoc &DLoc, const Twine &Msg, Optional< uint64_t > Hotness)
 
 OptimizationRemarkAnalysis (enum DiagnosticKind Kind, const char *PassName, StringRef RemarkName, const DebugLoc &DLoc, Value *CodeRegion)
 

Detailed Description

Diagnostic information for optimization analysis remarks.

Definition at line 596 of file DiagnosticInfo.h.

Constructor & Destructor Documentation

llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis ( const char *  PassName,
const Function Fn,
const DebugLoc DLoc,
const Twine Msg,
Optional< uint64_t >  Hotness = None 
)
inline

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

OptimizationRemarkAnalysis::OptimizationRemarkAnalysis ( const char *  PassName,
StringRef  RemarkName,
const DebugLoc DLoc,
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. DLoc is the debug location and CodeRegion is the region that the optimization operates on (currently on block is supported).

Definition at line 252 of file DiagnosticInfo.cpp.

llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis ( const char *  PassName,
StringRef  Prepend,
const OptimizationRemarkAnalysis 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 627 of file DiagnosticInfo.h.

OptimizationRemarkAnalysis::OptimizationRemarkAnalysis ( const char *  PassName,
StringRef  RemarkName,
Instruction Inst 
)

Same as above but Inst is used to derive code region and debug location.

Definition at line 260 of file DiagnosticInfo.cpp.

llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis ( enum DiagnosticKind  Kind,
const char *  PassName,
const Function Fn,
const DebugLoc DLoc,
const Twine Msg,
Optional< uint64_t >  Hotness 
)
inlineprotected

Definition at line 648 of file DiagnosticInfo.h.

OptimizationRemarkAnalysis::OptimizationRemarkAnalysis ( enum DiagnosticKind  Kind,
const char *  PassName,
StringRef  RemarkName,
const DebugLoc DLoc,
Value CodeRegion 
)
protected

Definition at line 268 of file DiagnosticInfo.cpp.

Member Function Documentation

static bool llvm::OptimizationRemarkAnalysis::classof ( const DiagnosticInfo DI)
inlinestatic
bool OptimizationRemarkAnalysis::isEnabled ( ) const
overridevirtual
bool llvm::OptimizationRemarkAnalysis::shouldAlwaysPrint ( ) const
inline

Definition at line 645 of file DiagnosticInfo.h.

References AlwaysPrint, and llvm::DiagnosticInfoOptimizationBase::getPassName().

Referenced by isEnabled().

Member Data Documentation

const char * OptimizationRemarkAnalysis::AlwaysPrint = ""
static

Definition at line 643 of file DiagnosticInfo.h.

Referenced by shouldAlwaysPrint().


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