MLIR 23.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
llvm::StringRef getCategoryName () const
llvm::StringRef getCombinedCategoryName () const
StringRef getRemarkName () const
std::string getMsg () const
ArrayRef< ArggetArgs () const
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< RemarkIdgetRelatedRemarkIds () const
 Get the list of related remark IDs.
void addRelatedRemark (RemarkId relatedId)
 Add a reference to a related remark.
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< RemarkIdrelatedRemarks
 IDs of related remarks (e.g., parent analysis that enabled this opt).

Detailed Description

Definition at line 148 of file Remarks.h.

Constructor & Destructor Documentation

◆ Remark()

Member Function Documentation

◆ addRelatedRemark()

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

Add a reference to a related remark.

Also adds it as an Arg for serialization.

Definition at line 264 of file Remarks.h.

References args, mlir::remark::RemarkId::getValue(), and relatedRemarks.

Referenced by Remark().

◆ generateRemark()

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

◆ getArgs()

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

Definition at line 241 of file Remarks.h.

References args.

Referenced by generateRemark(), and print().

◆ getCategoryName()

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

Definition at line 221 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 215 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 250 of file Remarks.h.

References id.

◆ getLocation()

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

◆ getMsg()

std::string Remark::getMsg ( ) const

Definition at line 98 of file Remarks.cpp.

References print().

◆ getRelatedRemarkIds()

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

Get the list of related remark IDs.

Definition at line 260 of file Remarks.h.

References relatedRemarks.

◆ getRemarkKind()

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

Get the remark kind.

Definition at line 275 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

◆ hasRelatedRemarks()

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

Check if this remark has any related remarks.

Definition at line 272 of file Remarks.h.

References relatedRemarks.

◆ insert() [1/2]

void Remark::insert ( Arg a)

Definition at line 40 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 75 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 253 of file Remarks.h.

References args.

Member Data Documentation

◆ args

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

Args collected via the streaming interface.

Definition at line 304 of file Remarks.h.

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

◆ categoryName

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

Category name e.g., "Unroll" or "UnrollAndJam".

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

Definition at line 290 of file Remarks.h.

Referenced by getCategoryName(), getCombinedCategoryName(), print(), and Remark().

◆ fullCategoryName

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

Combined name for category and sub-category.

Definition at line 297 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 285 of file Remarks.h.

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

◆ id

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

Unique ID for this remark (assigned by RemarkEngine).

Definition at line 307 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 310 of file Remarks.h.

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

◆ 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 282 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 301 of file Remarks.h.

Referenced by 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 294 of file Remarks.h.

Referenced by getCombinedCategoryName(), and Remark().


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