LLVM: llvm::remarks::BitstreamRemarkSerializerHelper Struct Reference (original) (raw)

Serialize the remarks to LLVM bitstream. More...

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

Public Member Functions
BitstreamRemarkSerializerHelper (BitstreamRemarkContainerType ContainerType, raw_ostream &OS)
BitstreamRemarkSerializerHelper (const BitstreamRemarkSerializerHelper &)=delete
BitstreamRemarkSerializerHelper & operator= (const BitstreamRemarkSerializerHelper &)=delete
BitstreamRemarkSerializerHelper (BitstreamRemarkSerializerHelper &&)=delete
BitstreamRemarkSerializerHelper & operator= (BitstreamRemarkSerializerHelper &&)=delete
void setupBlockInfo ()
Set up the necessary block info entries according to the container type.
void setupMetaBlockInfo ()
Set up the block info for the metadata block.
void setupMetaRemarkVersion ()
The remark version in the metadata block.
void emitMetaRemarkVersion (uint64_t RemarkVersion)
void setupMetaStrTab ()
The strtab in the metadata block.
void emitMetaStrTab (const StringTable &StrTab)
void setupMetaExternalFile ()
The external file in the metadata block.
void emitMetaExternalFile (StringRef Filename)
void setupRemarkBlockInfo ()
The block info for the remarks block.
void emitMetaBlock (std::optional< StringRef > Filename=std::nullopt)
Emit the main metadata at the beginning of the file.
void emitLateMetaBlock (const StringTable &StrTab)
Emit the remaining metadata at the end of the file.
void emitRemark (const Remark &Remark, StringTable &StrTab)
Emit a remark block. The string table is required.
Public Attributes
SmallVector< uint64_t, 64 > R
Buffer used to construct records and pass to the bitstream writer.
BitstreamWriter Bitstream
The Bitstream writer.
BitstreamRemarkContainerType ContainerType
The type of the container we are serializing.
uint64_t RecordMetaContainerInfoAbbrevID = 0
Abbrev IDs initialized in the block info block.
uint64_t RecordMetaRemarkVersionAbbrevID = 0
uint64_t RecordMetaStrTabAbbrevID = 0
uint64_t RecordMetaExternalFileAbbrevID = 0
uint64_t RecordRemarkHeaderAbbrevID = 0
uint64_t RecordRemarkDebugLocAbbrevID = 0
uint64_t RecordRemarkHotnessAbbrevID = 0
uint64_t RecordRemarkArgWithDebugLocAbbrevID = 0
uint64_t RecordRemarkArgWithoutDebugLocAbbrevID = 0

Serialize the remarks to LLVM bitstream.

This class provides ways to emit remarks in the LLVM bitstream format and its associated metadata.

Definition at line 30 of file BitstreamRemarkSerializer.h.

BitstreamRemarkSerializerHelper() [2/3]

BitstreamRemarkSerializerHelper() [3/3]

emitLateMetaBlock()

void BitstreamRemarkSerializerHelper::emitLateMetaBlock ( const StringTable & StrTab )

emitMetaBlock()

void BitstreamRemarkSerializerHelper::emitMetaBlock ( std::optional< StringRef > Filename = std::nullopt )

Emit the main metadata at the beginning of the file.

Definition at line 224 of file BitstreamRemarkSerializer.cpp.

References assert(), Bitstream, ContainerType, llvm::remarks::CurrentContainerVersion, llvm::remarks::CurrentRemarkVersion, emitMetaExternalFile(), emitMetaRemarkVersion(), llvm_unreachable, llvm::make_scope_exit(), llvm::remarks::META_BLOCK_ID, R, llvm::remarks::RECORD_META_CONTAINER_INFO, RecordMetaContainerInfoAbbrevID, llvm::remarks::RemarksFile, and llvm::remarks::RemarksFileExternal.

emitMetaExternalFile()

void BitstreamRemarkSerializerHelper::emitMetaExternalFile ( StringRef Filename )

emitMetaRemarkVersion()

void BitstreamRemarkSerializerHelper::emitMetaRemarkVersion ( uint64_t RemarkVersion )

emitMetaStrTab()

void BitstreamRemarkSerializerHelper::emitMetaStrTab ( const StringTable & StrTab )

emitRemark()

Emit a remark block. The string table is required.

Definition at line 257 of file BitstreamRemarkSerializer.cpp.

References llvm::remarks::StringTable::add(), llvm::remarks::Remark::Args, Bitstream, llvm::remarks::Remark::FunctionName, llvm::remarks::Remark::Hotness, llvm::InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key, llvm::remarks::Argument::Key, llvm::remarks::Argument::Loc, llvm::remarks::Remark::Loc, llvm::remarks::Remark::PassName, R, llvm::remarks::RECORD_REMARK_ARG_WITH_DEBUGLOC, llvm::remarks::RECORD_REMARK_ARG_WITHOUT_DEBUGLOC, llvm::remarks::RECORD_REMARK_DEBUG_LOC, llvm::remarks::RECORD_REMARK_HEADER, llvm::remarks::RECORD_REMARK_HOTNESS, RecordRemarkArgWithDebugLocAbbrevID, RecordRemarkArgWithoutDebugLocAbbrevID, RecordRemarkDebugLocAbbrevID, RecordRemarkHeaderAbbrevID, RecordRemarkHotnessAbbrevID, llvm::remarks::REMARK_BLOCK_ID, llvm::remarks::Remark::RemarkName, llvm::remarks::Remark::RemarkType, and llvm::remarks::Argument::Val.

operator=() [1/2]

operator=() [2/2]

setupBlockInfo()

void BitstreamRemarkSerializerHelper::setupBlockInfo ( )

Set up the necessary block info entries according to the container type.

Definition at line 195 of file BitstreamRemarkSerializer.cpp.

References Bitstream, llvm::CallingConv::C, llvm::remarks::ContainerMagic(), ContainerType, llvm_unreachable, llvm::make_scope_exit(), llvm::remarks::RemarksFile, llvm::remarks::RemarksFileExternal, setupMetaBlockInfo(), setupMetaExternalFile(), setupMetaRemarkVersion(), setupMetaStrTab(), and setupRemarkBlockInfo().

setupMetaBlockInfo()

void BitstreamRemarkSerializerHelper::setupMetaBlockInfo ( )

setupMetaExternalFile()

void BitstreamRemarkSerializerHelper::setupMetaExternalFile ( )

setupMetaRemarkVersion()

void BitstreamRemarkSerializerHelper::setupMetaRemarkVersion ( )

setupMetaStrTab()

void BitstreamRemarkSerializerHelper::setupMetaStrTab ( )

setupRemarkBlockInfo()

void BitstreamRemarkSerializerHelper::setupRemarkBlockInfo ( )

The block info for the remarks block.

Definition at line 123 of file BitstreamRemarkSerializer.cpp.

References Bitstream, llvm::BitCodeAbbrevOp::Fixed, initBlock(), R, llvm::remarks::RECORD_REMARK_ARG_WITH_DEBUGLOC, llvm::remarks::RECORD_REMARK_ARG_WITHOUT_DEBUGLOC, llvm::remarks::RECORD_REMARK_DEBUG_LOC, llvm::remarks::RECORD_REMARK_HEADER, llvm::remarks::RECORD_REMARK_HOTNESS, RecordRemarkArgWithDebugLocAbbrevID, RecordRemarkArgWithoutDebugLocAbbrevID, RecordRemarkDebugLocAbbrevID, RecordRemarkHeaderAbbrevID, RecordRemarkHotnessAbbrevID, llvm::remarks::REMARK_BLOCK_ID, llvm::remarks::RemarkArgWithDebugLocName(), llvm::remarks::RemarkArgWithoutDebugLocName(), llvm::remarks::RemarkBlockName(), llvm::remarks::RemarkDebugLocName(), llvm::remarks::RemarkHeaderName(), llvm::remarks::RemarkHotnessName(), setRecordName(), and llvm::BitCodeAbbrevOp::VBR.

Referenced by setupBlockInfo().

Bitstream

The Bitstream writer.

Definition at line 34 of file BitstreamRemarkSerializer.h.

Referenced by BitstreamRemarkSerializerHelper(), emitLateMetaBlock(), emitMetaBlock(), emitMetaExternalFile(), emitMetaRemarkVersion(), emitMetaStrTab(), emitRemark(), setupBlockInfo(), setupMetaBlockInfo(), setupMetaExternalFile(), setupMetaRemarkVersion(), setupMetaStrTab(), and setupRemarkBlockInfo().

ContainerType

R

RecordMetaContainerInfoAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordMetaContainerInfoAbbrevID = 0

Abbrev IDs initialized in the block info block.

Note: depending on the container type, some IDs might be uninitialized. Warning: When adding more abbrev IDs, make sure to update the BlockCodeSize (in the call to EnterSubblock).

Definition at line 42 of file BitstreamRemarkSerializer.h.

Referenced by emitMetaBlock(), and setupMetaBlockInfo().

RecordMetaExternalFileAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordMetaExternalFileAbbrevID = 0

RecordMetaRemarkVersionAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordMetaRemarkVersionAbbrevID = 0

RecordMetaStrTabAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordMetaStrTabAbbrevID = 0

RecordRemarkArgWithDebugLocAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordRemarkArgWithDebugLocAbbrevID = 0

RecordRemarkArgWithoutDebugLocAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordRemarkArgWithoutDebugLocAbbrevID = 0

RecordRemarkDebugLocAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordRemarkDebugLocAbbrevID = 0

RecordRemarkHeaderAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordRemarkHeaderAbbrevID = 0

RecordRemarkHotnessAbbrevID

uint64_t llvm::remarks::BitstreamRemarkSerializerHelper::RecordRemarkHotnessAbbrevID = 0


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