LLVM: llvm::DiagnosticInfoOptimizationBase Class Reference (original) (raw)

Common features for diagnostics dealing with optimization remarks that are used by both IR and MIR passes. More...

#include "[llvm/IR/DiagnosticInfo.h](DiagnosticInfo%5F8h%5Fsource.html)"

Classes
struct Argument
Used in the streaming interface as the general argument type. More...
struct setExtraArgs
When an instance of this is inserted into the stream, the arguments following will not appear in the remark printed in the compiler output (-Rpass) but only in the optimization record file (-fsave-optimization-record). More...
struct setIsVerbose
Used to set IsVerbose via the stream interface. More...
Public Member Functions
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
Protected Attributes
const char * PassName
Name of the pass that triggers this report.
StringRef RemarkName
Textual identifier for the remark (single-word, CamelCase).
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 both IR and MIR passes.

Definition at line 521 of file DiagnosticInfo.h.

classof()

getArgs()

ArrayRef< Argument > llvm::DiagnosticInfoOptimizationBase::getArgs ( ) const inline

getHotness()

std::optional< uint64_t > llvm::DiagnosticInfoOptimizationBase::getHotness ( ) const inline

getMsg()

std::string DiagnosticInfoOptimizationBase::getMsg ( ) const

getPassName()

StringRef llvm::DiagnosticInfoOptimizationBase::getPassName ( ) const inline

getRemarkName()

StringRef llvm::DiagnosticInfoOptimizationBase::getRemarkName ( ) const inline

insert() [1/4]

void DiagnosticInfoOptimizationBase::insert ( Argument A )

insert() [2/4]

void DiagnosticInfoOptimizationBase::insert ( setExtraArgs EA )

insert() [3/4]

void DiagnosticInfoOptimizationBase::insert ( setIsVerbose V )

insert() [4/4]

void DiagnosticInfoOptimizationBase::insert ( StringRef S )

isAnalysis()

bool llvm::DiagnosticInfoOptimizationBase::isAnalysis ( ) const inline

isEnabled()

virtual bool llvm::DiagnosticInfoOptimizationBase::isEnabled ( ) const pure virtual

isMissed()

bool llvm::DiagnosticInfoOptimizationBase::isMissed ( ) const inline

isPassed()

bool llvm::DiagnosticInfoOptimizationBase::isPassed ( ) const inline

isVerbose()

bool llvm::DiagnosticInfoOptimizationBase::isVerbose ( ) const inline

print()

void DiagnosticInfoOptimizationBase::print ( DiagnosticPrinter & DP) const overridevirtual

setHotness()

void llvm::DiagnosticInfoOptimizationBase::setHotness ( std::optional< uint64_t > H) inline

Args

FirstExtraArgIndex

int llvm::DiagnosticInfoOptimizationBase::FirstExtraArgIndex = -1 protected

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.

Definition at line 645 of file DiagnosticInfo.h.

Referenced by getMsg(), and insert().

Hotness

std::optional<uint64_t> llvm::DiagnosticInfoOptimizationBase::Hotness protected

IsVerbose

bool llvm::DiagnosticInfoOptimizationBase::IsVerbose = false protected

PassName

const char* llvm::DiagnosticInfoOptimizationBase::PassName protected

Name of the pass that triggers this report.

If this matches the regular expression given in -Rpass=regexp, then the remark will be emitted.

Definition at line 625 of file DiagnosticInfo.h.

Referenced by llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization(), llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization(), llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization(), llvm::DiagnosticInfoMIROptimization::DiagnosticInfoMIROptimization(), DiagnosticInfoOptimizationBase(), llvm::DiagnosticInfoOptimizationFailure::DiagnosticInfoOptimizationFailure(), getPassName(), llvm::MachineOptimizationRemark::MachineOptimizationRemark(), llvm::MachineOptimizationRemarkAnalysis::MachineOptimizationRemarkAnalysis(), llvm::MachineOptimizationRemarkAnalysis::MachineOptimizationRemarkAnalysis(), llvm::MachineOptimizationRemarkMissed::MachineOptimizationRemarkMissed(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysisAliasing::OptimizationRemarkAnalysisAliasing(), llvm::OptimizationRemarkAnalysisFPCommute::OptimizationRemarkAnalysisFPCommute(), llvm::OptimizationRemarkMissed::OptimizationRemarkMissed(), llvm::OptimizationRemarkMissed::OptimizationRemarkMissed(), and llvm::OptimizationRemarkMissed::OptimizationRemarkMissed().

RemarkName

StringRef llvm::DiagnosticInfoOptimizationBase::RemarkName protected

Textual identifier for the remark (single-word, CamelCase).

Can be used by external tools reading the output file for optimization remarks to identify the remark.

Definition at line 630 of file DiagnosticInfo.h.

Referenced by llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization(), llvm::DiagnosticInfoIROptimization::DiagnosticInfoIROptimization(), llvm::DiagnosticInfoMIROptimization::DiagnosticInfoMIROptimization(), DiagnosticInfoOptimizationBase(), llvm::DiagnosticInfoOptimizationFailure::DiagnosticInfoOptimizationFailure(), getRemarkName(), llvm::MachineOptimizationRemark::MachineOptimizationRemark(), llvm::MachineOptimizationRemarkAnalysis::MachineOptimizationRemarkAnalysis(), llvm::MachineOptimizationRemarkAnalysis::MachineOptimizationRemarkAnalysis(), llvm::MachineOptimizationRemarkMissed::MachineOptimizationRemarkMissed(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemark::OptimizationRemark(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysis::OptimizationRemarkAnalysis(), llvm::OptimizationRemarkAnalysisAliasing::OptimizationRemarkAnalysisAliasing(), llvm::OptimizationRemarkAnalysisFPCommute::OptimizationRemarkAnalysisFPCommute(), llvm::OptimizationRemarkMissed::OptimizationRemarkMissed(), llvm::OptimizationRemarkMissed::OptimizationRemarkMissed(), and llvm::OptimizationRemarkMissed::OptimizationRemarkMissed().


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