LLVM  14.0.0git
Classes | Public Types | Public Member Functions | List of all members
llvm::remarks::RemarkLinker Struct Reference

#include "llvm/Remarks/RemarkLinker.h"

Public Types

using iterator = pointee_iterator< decltype(Remarks)::const_iterator >
 Return a collection of the linked unique remarks to iterate on. More...
 

Public Member Functions

void setExternalFilePrependPath (StringRef PrependPath)
 Set a path to prepend to the external file path. More...
 
Error link (StringRef Buffer, Optional< Format > RemarkFormat=None)
 Link the remarks found in Buffer. More...
 
Error link (const object::ObjectFile &Obj, Optional< Format > RemarkFormat=None)
 Link the remarks found in Obj by looking for the right section and calling the method above. More...
 
Error serialize (raw_ostream &OS, Format RemarksFormat) const
 Serialize the linked remarks to the stream OS, using the format RemarkFormat. More...
 
bool empty () const
 Check whether there are any remarks linked. More...
 
iterator_range< iteratorremarks () const
 

Detailed Description

Definition at line 27 of file RemarkLinker.h.

Member Typedef Documentation

◆ iterator

Return a collection of the linked unique remarks to iterate on.

Ex: for (const Remark &R : RL.remarks() { [...] }

Definition at line 83 of file RemarkLinker.h.

Member Function Documentation

◆ empty()

bool llvm::remarks::RemarkLinker::empty ( ) const
inline

Check whether there are any remarks linked.

Definition at line 78 of file RemarkLinker.h.

References Remarks.

◆ link() [1/2]

Error RemarkLinker::link ( const object::ObjectFile Obj,
Optional< Format RemarkFormat = None 
)

Link the remarks found in Obj by looking for the right section and calling the method above.

Definition at line 102 of file RemarkLinker.cpp.

References llvm::remarks::getRemarksSectionContents(), link(), llvm::ARMBuildAttrs::Section, llvm::Error::success(), and llvm::Expected< T >::takeError().

◆ link() [2/2]

Error RemarkLinker::link ( StringRef  Buffer,
Optional< Format RemarkFormat = None 
)

Link the remarks found in Buffer.

If RemarkFormat is not provided, try to deduce it from the metadata in Buffer. Buffer can be either a standalone remark container or just metadata. This takes care of uniquing and merging the remarks.

Definition at line 66 of file RemarkLinker.cpp.

References assert(), llvm::consumeError(), llvm::remarks::createRemarkParserFromMeta(), E, llvm::remarks::magicToFormat(), move, llvm::remarks::RemarkParser::next(), llvm::None, shouldKeepRemark(), llvm::Error::success(), and llvm::Expected< T >::takeError().

Referenced by link().

◆ remarks()

iterator_range<iterator> llvm::remarks::RemarkLinker::remarks ( ) const
inline

Definition at line 85 of file RemarkLinker.h.

References Remarks.

Referenced by serialize().

◆ serialize()

Error RemarkLinker::serialize ( raw_ostream OS,
Format  RemarksFormat 
) const

Serialize the linked remarks to the stream OS, using the format RemarkFormat.

This clears internal state such as the string table. Note: this implies that the serialization mode is standalone.

Definition at line 113 of file RemarkLinker.cpp.

References llvm::remarks::createRemarkSerializer(), move, remarks(), llvm::RemarksFormat, llvm::remarks::Standalone, llvm::Error::success(), and llvm::Expected< T >::takeError().

◆ setExternalFilePrependPath()

void RemarkLinker::setExternalFilePrependPath ( StringRef  PrependPath)

Set a path to prepend to the external file path.

Definition at line 59 of file RemarkLinker.cpp.


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