LLVM 19.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::remarks::Remark Struct Reference

A remark type used for both emission and parsing. More...

#include "llvm/Remarks/Remark.h"

Public Member Functions

 Remark ()=default
 
 Remark (Remark &&)=default
 
Remarkoperator= (Remark &&)=default
 
std::string getArgsAsMsg () const
 Return a message composed from the arguments as a string.
 
Remark clone () const
 Clone this remark to explicitly ask for a copy.
 
void print (raw_ostream &OS) const
 Implement operator<< on Remark.
 

Public Attributes

Type RemarkType = Type::Unknown
 The type of the remark.
 
StringRef PassName
 Name of the pass that triggers the emission of this remark.
 
StringRef RemarkName
 Textual identifier for the remark (single-word, camel-case).
 
StringRef FunctionName
 Mangled name of the function that triggers the emssion of this remark.
 
std::optional< RemarkLocationLoc
 The location in the source file of the remark.
 
std::optional< uint64_tHotness
 If profile information is available, this is the number of times the corresponding code was executed in a profile instrumentation run.
 
SmallVector< Argument, 5 > Args
 Arguments collected via the streaming interface.
 

Detailed Description

A remark type used for both emission and parsing.

Definition at line 97 of file Remark.h.

Constructor & Destructor Documentation

◆ Remark() [1/2]

llvm::remarks::Remark::Remark ( )
default

◆ Remark() [2/2]

llvm::remarks::Remark::Remark ( Remark &&  )
default

Member Function Documentation

◆ clone()

Remark llvm::remarks::Remark::clone ( ) const
inline

Clone this remark to explicitly ask for a copy.

Definition at line 130 of file Remark.h.

◆ getArgsAsMsg()

std::string Remark::getArgsAsMsg ( ) const

Return a message composed from the arguments as a string.

Definition at line 21 of file Remark.cpp.

References Args, and OS.

◆ operator=()

Remark & llvm::remarks::Remark::operator= ( Remark &&  )
default

◆ print()

void Remark::print ( raw_ostream OS) const

Implement operator<< on Remark.

Definition at line 49 of file Remark.cpp.

References Args, FunctionName, Hotness, Loc, OS, PassName, RemarkName, RemarkType, and llvm::remarks::typeToStr().

Referenced by llvm::remarks::operator<<().

Member Data Documentation

◆ Args

SmallVector<Argument, 5> llvm::remarks::Remark::Args

◆ FunctionName

StringRef llvm::remarks::Remark::FunctionName

Mangled name of the function that triggers the emssion of this remark.

Definition at line 110 of file Remark.h.

Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::emitRemarkBlock(), llvm::yaml::MappingTraits< remarks::Remark * >::mapping(), llvm::remarks::YAMLRemarkParser::parseRemark(), and print().

◆ Hotness

std::optional<uint64_t> llvm::remarks::Remark::Hotness

If profile information is available, this is the number of times the corresponding code was executed in a profile instrumentation run.

Definition at line 117 of file Remark.h.

Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::emitRemarkBlock(), llvm::yaml::MappingTraits< remarks::Remark * >::mapping(), llvm::remarks::YAMLRemarkParser::parseRemark(), and print().

◆ Loc

std::optional<RemarkLocation> llvm::remarks::Remark::Loc

◆ PassName

StringRef llvm::remarks::Remark::PassName

◆ RemarkName

StringRef llvm::remarks::Remark::RemarkName

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

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

Definition at line 107 of file Remark.h.

Referenced by llvm::remarks::BitstreamRemarkSerializerHelper::emitRemarkBlock(), llvm::yaml::MappingTraits< remarks::Remark * >::mapping(), llvm::remarks::YAMLRemarkParser::parseRemark(), and print().

◆ RemarkType

Type llvm::remarks::Remark::RemarkType = Type::Unknown

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