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:
- include/llvm/Remarks/BitstreamRemarkSerializer.h
- lib/Remarks/BitstreamRemarkSerializer.cpp