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

Helper to parse any bitstream remark container. More...

#include "Remarks/BitstreamRemarkParser.h"

Public Member Functions

 BitstreamParserHelper (StringRef Buffer)
 Start parsing at Buffer.
Error expectMagic ()
 Parse and validate the magic number.
Error parseBlockInfoBlock ()
 Parse the block info block containing all the abbrevs.
Error parseMeta ()
 Parse all metadata blocks in the file. This populates the meta helper.
Error parseRemark ()
 Parse the next remark. This populates the remark helper data.

Public Attributes

BitstreamCursor Stream
 The Bitstream reader.
BitstreamBlockInfo BlockInfo
 The block info block.
BitstreamMetaParserHelper MetaHelper
 Helper to parse the metadata blocks in this bitstream.
std::optional< BitstreamRemarkParserHelperRemarksHelper
 Helper to parse the remark blocks in this bitstream.
std::optional< uint64_tRemarkStartBitPos
 The position of the first remark block we encounter after the initial metadata block.

Detailed Description

Helper to parse any bitstream remark container.

Definition at line 185 of file BitstreamRemarkParser.h.

Constructor & Destructor Documentation

◆ BitstreamParserHelper()

llvm::remarks::BitstreamParserHelper::BitstreamParserHelper ( StringRef Buffer)
inline

Start parsing at Buffer.

Definition at line 201 of file BitstreamRemarkParser.h.

References MetaHelper, RemarksHelper, and Stream.

Member Function Documentation

◆ expectMagic()

Error BitstreamParserHelper::expectMagic ( )

Parse and validate the magic number.

Definition at line 203 of file BitstreamRemarkParser.cpp.

References llvm::remarks::ContainerMagic(), error, I, Stream, and llvm::Error::success().

Referenced by parseMeta().

◆ parseBlockInfoBlock()

Error BitstreamParserHelper::parseBlockInfoBlock ( )

Parse the block info block containing all the abbrevs.

This needs to be called before calling any other parsing function.

Definition at line 218 of file BitstreamRemarkParser.cpp.

References BlockInfo, llvm::bitc::BLOCKINFO_BLOCK_ID, error, llvm::Next, Stream, llvm::BitstreamEntry::SubBlock, llvm::Error::success(), and llvm::Expected< T >::takeError().

Referenced by parseMeta().

◆ parseMeta()

Error BitstreamParserHelper::parseMeta ( )

Parse all metadata blocks in the file. This populates the meta helper.

Definition at line 242 of file BitstreamRemarkParser.cpp.

References error, expectMagic(), expectSubBlock(), llvm::remarks::META_BLOCK_ID, MetaHelper, parseBlockInfoBlock(), llvm::remarks::REMARK_BLOCK_ID, RemarkStartBitPos, Stream, and llvm::Error::success().

◆ parseRemark()

Error BitstreamParserHelper::parseRemark ( )

Parse the next remark. This populates the remark helper data.

Definition at line 280 of file BitstreamRemarkParser.cpp.

References expectSubBlock(), llvm::make_error(), llvm::remarks::REMARK_BLOCK_ID, RemarksHelper, RemarkStartBitPos, and Stream.

Member Data Documentation

◆ BlockInfo

BitstreamBlockInfo llvm::remarks::BitstreamParserHelper::BlockInfo

The block info block.

Definition at line 189 of file BitstreamRemarkParser.h.

Referenced by parseBlockInfoBlock().

◆ MetaHelper

BitstreamMetaParserHelper llvm::remarks::BitstreamParserHelper::MetaHelper

Helper to parse the metadata blocks in this bitstream.

Definition at line 192 of file BitstreamRemarkParser.h.

Referenced by BitstreamParserHelper(), and parseMeta().

◆ RemarksHelper

std::optional<BitstreamRemarkParserHelper> llvm::remarks::BitstreamParserHelper::RemarksHelper

Helper to parse the remark blocks in this bitstream.

Only needed for ContainerType RemarksFile.

Definition at line 195 of file BitstreamRemarkParser.h.

Referenced by BitstreamParserHelper(), and parseRemark().

◆ RemarkStartBitPos

std::optional<uint64_t> llvm::remarks::BitstreamParserHelper::RemarkStartBitPos

The position of the first remark block we encounter after the initial metadata block.

Definition at line 198 of file BitstreamRemarkParser.h.

Referenced by parseMeta(), and parseRemark().

◆ Stream

BitstreamCursor llvm::remarks::BitstreamParserHelper::Stream

The Bitstream reader.

Definition at line 187 of file BitstreamRemarkParser.h.

Referenced by BitstreamParserHelper(), expectMagic(), parseBlockInfoBlock(), parseMeta(), and parseRemark().


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