LLVM 22.0.0git
llvm::remarks::BitstreamRemarkSerializerHelper Struct Reference

Serialize the remarks to LLVM bitstream. More...

#include "llvm/Remarks/BitstreamRemarkSerializer.h"

Public Member Functions

 BitstreamRemarkSerializerHelper (BitstreamRemarkContainerType ContainerType, raw_ostream &OS)
 BitstreamRemarkSerializerHelper (const BitstreamRemarkSerializerHelper &)=delete
BitstreamRemarkSerializerHelperoperator= (const BitstreamRemarkSerializerHelper &)=delete
 BitstreamRemarkSerializerHelper (BitstreamRemarkSerializerHelper &&)=delete
BitstreamRemarkSerializerHelperoperator= (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

Detailed Description

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.

Constructor & Destructor Documentation

◆ BitstreamRemarkSerializerHelper() [1/3]

BitstreamRemarkSerializerHelper::BitstreamRemarkSerializerHelper ( BitstreamRemarkContainerType ContainerType,
raw_ostream & OS )

◆ BitstreamRemarkSerializerHelper() [2/3]

llvm::remarks::BitstreamRemarkSerializerHelper::BitstreamRemarkSerializerHelper ( const BitstreamRemarkSerializerHelper & )
delete

◆ BitstreamRemarkSerializerHelper() [3/3]

llvm::remarks::BitstreamRemarkSerializerHelper::BitstreamRemarkSerializerHelper ( BitstreamRemarkSerializerHelper && )
delete

Member Function Documentation

◆ emitLateMetaBlock()

void BitstreamRemarkSerializerHelper::emitLateMetaBlock ( const StringTable & StrTab)

Emit the remaining metadata at the end of the file.

Here we emit metadata that is only known once all remarks were emitted.

Definition at line 249 of file BitstreamRemarkSerializer.cpp.

References Bitstream, emitMetaStrTab(), and llvm::remarks::META_BLOCK_ID.

◆ emitMetaBlock()

◆ emitMetaExternalFile()

void BitstreamRemarkSerializerHelper::emitMetaExternalFile ( StringRef Filename)

◆ emitMetaRemarkVersion()

void BitstreamRemarkSerializerHelper::emitMetaRemarkVersion ( uint64_t RemarkVersion)

◆ emitMetaStrTab()

void BitstreamRemarkSerializerHelper::emitMetaStrTab ( const StringTable & StrTab)

◆ emitRemark()

◆ operator=() [1/2]

BitstreamRemarkSerializerHelper & llvm::remarks::BitstreamRemarkSerializerHelper::operator= ( BitstreamRemarkSerializerHelper && )
delete

◆ operator=() [2/2]

BitstreamRemarkSerializerHelper & llvm::remarks::BitstreamRemarkSerializerHelper::operator= ( const BitstreamRemarkSerializerHelper & )
delete

◆ setupBlockInfo()

◆ setupMetaBlockInfo()

void BitstreamRemarkSerializerHelper::setupMetaBlockInfo ( )

◆ setupMetaExternalFile()

void BitstreamRemarkSerializerHelper::setupMetaExternalFile ( )

◆ setupMetaRemarkVersion()

void BitstreamRemarkSerializerHelper::setupMetaRemarkVersion ( )

◆ setupMetaStrTab()

void BitstreamRemarkSerializerHelper::setupMetaStrTab ( )

◆ setupRemarkBlockInfo()

Member Data Documentation

◆ Bitstream

◆ ContainerType

BitstreamRemarkContainerType llvm::remarks::BitstreamRemarkSerializerHelper::ContainerType

The type of the container we are serializing.

Definition at line 36 of file BitstreamRemarkSerializer.h.

Referenced by BitstreamRemarkSerializerHelper(), emitMetaBlock(), and setupBlockInfo().

◆ R

SmallVector<uint64_t, 64> llvm::remarks::BitstreamRemarkSerializerHelper::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

Definition at line 45 of file BitstreamRemarkSerializer.h.

Referenced by emitMetaExternalFile(), and setupMetaExternalFile().

◆ RecordMetaRemarkVersionAbbrevID

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

Definition at line 43 of file BitstreamRemarkSerializer.h.

Referenced by emitMetaRemarkVersion(), and setupMetaRemarkVersion().

◆ RecordMetaStrTabAbbrevID

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

Definition at line 44 of file BitstreamRemarkSerializer.h.

Referenced by emitMetaStrTab(), and setupMetaStrTab().

◆ RecordRemarkArgWithDebugLocAbbrevID

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

Definition at line 49 of file BitstreamRemarkSerializer.h.

Referenced by emitRemark(), and setupRemarkBlockInfo().

◆ RecordRemarkArgWithoutDebugLocAbbrevID

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

Definition at line 50 of file BitstreamRemarkSerializer.h.

Referenced by emitRemark(), and setupRemarkBlockInfo().

◆ RecordRemarkDebugLocAbbrevID

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

Definition at line 47 of file BitstreamRemarkSerializer.h.

Referenced by emitRemark(), and setupRemarkBlockInfo().

◆ RecordRemarkHeaderAbbrevID

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

Definition at line 46 of file BitstreamRemarkSerializer.h.

Referenced by emitRemark(), and setupRemarkBlockInfo().

◆ RecordRemarkHotnessAbbrevID

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

Definition at line 48 of file BitstreamRemarkSerializer.h.

Referenced by emitRemark(), and setupRemarkBlockInfo().


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