MLIR 24.0.0git
mlir::remark::detail::Remark Class Reference

#include "mlir/IR/Remarks.h"

Inheritance diagram for mlir::remark::detail::Remark:

Classes

struct  Arg

Public Member Functions

 Remark (RemarkKind remarkKind, DiagnosticSeverity severity, Location loc, RemarkOpts opts)
void insert (llvm::StringRef s)
void insert (Arg a)
void print (llvm::raw_ostream &os, bool printLocation=false) const
 Print the remark to the given output stream.
Location getLocation () const
llvm::remarks::Remark generateRemark () const
 Diagnostic -> Remark.
StringRef getFunction () const
StringRef getRawFunction () const
 Return the stored function name, which may be empty.
llvm::StringRef getCategoryName () const
llvm::StringRef getSubCategoryName () const
llvm::StringRef getCombinedCategoryName () const
StringRef getRemarkName () const
StringRef getRawRemarkName () const
 Return the stored remark name, which may be empty.
std::string getMsg () const
ArrayRef< Arg > getArgs () const
 Return arguments, owned until mutation or destruction.
llvm::remarks::Type getRemarkType () const
RemarkId getId () const
 Get this remark's unique ID (0 if not assigned).
void setId (RemarkId newId)
 Set this remark's unique ID. Also adds it as an Arg for serialization.
ArrayRef< RemarkId > getRelatedRemarkIds () const
 Get the list of related remark IDs.
void setRelatedRemarkIds (ArrayRef< RemarkId > ids)
 Replace the list of related remark IDs.
void addRelatedRemark (RemarkId relatedId)
 Add a related ID and its generated argument.
bool hasRelatedRemarks () const
 Check if this remark has any related remarks.
RemarkKind getRemarkKind () const
 Get the remark kind.
StringRef getRemarkTypeString () const

Protected Attributes

RemarkKind remarkKind
 Keeps the MLIR diagnostic kind, which is used to determine the diagnostic kind in the LLVM remark streamer.
std::string functionName
 Name of the covering function like interface.
Location loc
std::string categoryName
 Category name e.g., "Unroll" or "UnrollAndJam".
std::string subCategoryName
 Sub category name e.g., "Loop Optimizer".
SmallString< 64 > fullCategoryName
 Combined name for category and sub-category.
std::string remarkName
 Remark identifier.
SmallVector< Arg, 4 > args
 Args collected via the streaming interface.
RemarkId id
 Unique ID for this remark (assigned by RemarkEngine).
SmallVector< RemarkId > relatedRemarks
 IDs of related remarks (e.g., parent analysis that enabled this opt).

Detailed Description

Definition at line 217 of file Remarks.h.

Constructor & Destructor Documentation

◆ Remark()

Member Function Documentation

◆ addRelatedRemark()

void mlir::remark::detail::Remark::addRelatedRemark ( RemarkId relatedId)
inline

Add a related ID and its generated argument.

Definition at line 346 of file Remarks.h.

References args, mlir::remark::RemarkId::getValue(), mlir::remark::detail::Remark::Arg::isLink, and relatedRemarks.

Referenced by Remark(), and setRelatedRemarkIds().

◆ generateRemark()

llvm::remarks::Remark Remark::generateRemark ( ) const

◆ getArgs()

ArrayRef< Arg > mlir::remark::detail::Remark::getArgs ( ) const
inline

Return arguments, owned until mutation or destruction.

Definition at line 321 of file Remarks.h.

References args.

Referenced by generateRemark(), and print().

◆ getCategoryName()

llvm::StringRef mlir::remark::detail::Remark::getCategoryName ( ) const
inline

Definition at line 295 of file Remarks.h.

References categoryName.

◆ getCombinedCategoryName()

llvm::StringRef mlir::remark::detail::Remark::getCombinedCategoryName ( ) const
inline

◆ getFunction()

StringRef mlir::remark::detail::Remark::getFunction ( ) const
inline

Definition at line 286 of file Remarks.h.

References functionName.

Referenced by generateRemark(), and print().

◆ getId()

RemarkId mlir::remark::detail::Remark::getId ( ) const
inline

Get this remark's unique ID (0 if not assigned).

Definition at line 330 of file Remarks.h.

References id.

◆ getLocation()

Location mlir::remark::detail::Remark::getLocation ( ) const
inline

◆ getMsg()

std::string Remark::getMsg ( ) const

Definition at line 114 of file Remarks.cpp.

References print().

◆ getRawFunction()

StringRef mlir::remark::detail::Remark::getRawFunction ( ) const
inline

Return the stored function name, which may be empty.

Definition at line 293 of file Remarks.h.

References functionName.

◆ getRawRemarkName()

StringRef mlir::remark::detail::Remark::getRawRemarkName ( ) const
inline

Return the stored remark name, which may be empty.

Definition at line 316 of file Remarks.h.

References remarkName.

◆ getRelatedRemarkIds()

ArrayRef< RemarkId > mlir::remark::detail::Remark::getRelatedRemarkIds ( ) const
inline

Get the list of related remark IDs.

Definition at line 340 of file Remarks.h.

References relatedRemarks.

◆ getRemarkKind()

RemarkKind mlir::remark::detail::Remark::getRemarkKind ( ) const
inline

Get the remark kind.

Definition at line 359 of file Remarks.h.

References remarkKind.

Referenced by llvm::DenseMapInfo< mlir::remark::detail::Remark >::getHashValue().

◆ getRemarkName()

StringRef mlir::remark::detail::Remark::getRemarkName ( ) const
inline

◆ getRemarkType()

llvm::remarks::Type Remark::getRemarkType ( ) const

◆ getRemarkTypeString()

llvm::StringRef Remark::getRemarkTypeString ( ) const

◆ getSubCategoryName()

llvm::StringRef mlir::remark::detail::Remark::getSubCategoryName ( ) const
inline

Definition at line 297 of file Remarks.h.

References subCategoryName.

◆ hasRelatedRemarks()

bool mlir::remark::detail::Remark::hasRelatedRemarks ( ) const
inline

Check if this remark has any related remarks.

Definition at line 356 of file Remarks.h.

References relatedRemarks.

◆ insert() [1/2]

void Remark::insert ( Arg a)

Definition at line 47 of file Remarks.cpp.

References args.

◆ insert() [2/2]

void Remark::insert ( llvm::StringRef s)

◆ print()

void Remark::print ( llvm::raw_ostream & os,
bool printLocation = false ) const

Print the remark to the given output stream.

Example output: [Missed] Category: Loop | Pass:Unroller | Function=main | Reason="tripCount=4 < threshold=256" [Failure] LoopOptimizer | Reason="failed due to unsupported pattern"

Definition at line 91 of file Remarks.cpp.

References categoryName, functionName, getArgs(), getCombinedCategoryName(), getFunction(), getLocation(), getRemarkTypeString(), printArgs(), and remarkName.

Referenced by getMsg().

◆ setId()

void mlir::remark::detail::Remark::setId ( RemarkId newId)
inline

Set this remark's unique ID. Also adds it as an Arg for serialization.

Definition at line 333 of file Remarks.h.

References args.

◆ setRelatedRemarkIds()

void Remark::setRelatedRemarkIds ( ArrayRef< RemarkId > ids)

Replace the list of related remark IDs.

Definition at line 49 of file Remarks.cpp.

References addRelatedRemark(), args, copy(), mlir::remark::detail::Remark::Arg::isLink, and relatedRemarks.

Member Data Documentation

◆ args

SmallVector<Arg, 4> mlir::remark::detail::Remark::args
protected

Args collected via the streaming interface.

Definition at line 388 of file Remarks.h.

Referenced by addRelatedRemark(), getArgs(), insert(), insert(), printArgs(), setId(), and setRelatedRemarkIds().

◆ categoryName

◆ fullCategoryName

SmallString<64> mlir::remark::detail::Remark::fullCategoryName
protected

Combined name for category and sub-category.

Definition at line 381 of file Remarks.h.

Referenced by getCombinedCategoryName().

◆ functionName

std::string mlir::remark::detail::Remark::functionName
protected

Name of the covering function like interface.

Stored as std::string to ensure the Remark owns its data.

Definition at line 369 of file Remarks.h.

Referenced by getFunction(), getRawFunction(), print(), and Remark().

◆ id

RemarkId mlir::remark::detail::Remark::id
protected

Unique ID for this remark (assigned by RemarkEngine).

Definition at line 391 of file Remarks.h.

Referenced by getId().

◆ loc

◆ relatedRemarks

SmallVector<RemarkId> mlir::remark::detail::Remark::relatedRemarks
protected

IDs of related remarks (e.g., parent analysis that enabled this opt).

Definition at line 394 of file Remarks.h.

Referenced by addRelatedRemark(), getRelatedRemarkIds(), hasRelatedRemarks(), and setRelatedRemarkIds().

◆ remarkKind

RemarkKind mlir::remark::detail::Remark::remarkKind
protected

Keeps the MLIR diagnostic kind, which is used to determine the diagnostic kind in the LLVM remark streamer.

Definition at line 366 of file Remarks.h.

Referenced by getRemarkKind(), getRemarkType(), getRemarkTypeString(), and Remark().

◆ remarkName

std::string mlir::remark::detail::Remark::remarkName
protected

Remark identifier.

Stored as std::string to ensure the Remark owns its data.

Definition at line 385 of file Remarks.h.

Referenced by getRawRemarkName(), getRemarkName(), print(), and Remark().

◆ subCategoryName

std::string mlir::remark::detail::Remark::subCategoryName
protected

Sub category name e.g., "Loop Optimizer".

Stored as std::string to ensure the Remark owns its data.

Definition at line 378 of file Remarks.h.

Referenced by getCombinedCategoryName(), getSubCategoryName(), and Remark().


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