LLVM: llvm::SimpleBitstreamCursor Class Reference (original) (raw)

This represents a position within a bitstream. More...

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

Public Types
using word_t = size_t
This is the current data we have pulled from the stream but have not returned to the client.
Public Member Functions
SimpleBitstreamCursor ()=default
SimpleBitstreamCursor (ArrayRef< uint8_t > BitcodeBytes)
SimpleBitstreamCursor (StringRef BitcodeBytes)
SimpleBitstreamCursor (MemoryBufferRef BitcodeBytes)
bool canSkipToPos (size_t pos) const
bool AtEndOfStream ()
uint64_t GetCurrentBitNo () const
Return the bit # of the bit we are reading.
uint64_t getCurrentByteNo () const
ArrayRef< uint8_t > getBitcodeBytes () const
Error JumpToBit (uint64_t BitNo)
Reset the stream to the specified bit number.
const uint8_t * getPointerToByte (uint64_t ByteNo, uint64_t NumBytes)
Get a pointer into the bitstream at the specified byte offset.
const uint8_t * getPointerToBit (uint64_t BitNo, uint64_t NumBytes)
Get a pointer into the bitstream at the specified bit offset.
Error fillCurWord ()
Expected< word_t > Read (unsigned NumBits)
Expected< uint32_t > ReadVBR (const unsigned NumBits)
Expected< uint64_t > ReadVBR64 (const unsigned NumBits)
void SkipToFourByteBoundary ()
size_t SizeInBytes () const
Return the size of the stream in bytes.
void skipToEnd ()
Skip to the end of the file.
bool isSizePlausible (size_t Size) const
Check whether a reservation of Size elements is plausible.

This represents a position within a bitstream.

There may be multiple independent cursors reading within one bitstream, each maintaining their own local state.

Definition at line 79 of file BitstreamReader.h.

word_t

This is the current data we have pulled from the stream but have not returned to the client.

This is specifically and intentionally defined to follow the word size of the host machine for efficiency. We use word_t in places that are aware of this to make it perfectly explicit what is going on.

Definition at line 89 of file BitstreamReader.h.

llvm::SimpleBitstreamCursor::SimpleBitstreamCursor ( ) default

SimpleBitstreamCursor() [2/4]

llvm::SimpleBitstreamCursor::SimpleBitstreamCursor ( ArrayRef< uint8_t > BitcodeBytes) inlineexplicit

SimpleBitstreamCursor() [3/4]

llvm::SimpleBitstreamCursor::SimpleBitstreamCursor ( StringRef BitcodeBytes) inlineexplicit

SimpleBitstreamCursor() [4/4]

llvm::SimpleBitstreamCursor::SimpleBitstreamCursor ( MemoryBufferRef BitcodeBytes) inlineexplicit

AtEndOfStream()

bool llvm::SimpleBitstreamCursor::AtEndOfStream ( ) inline

canSkipToPos()

bool llvm::SimpleBitstreamCursor::canSkipToPos ( size_t pos) const inline

fillCurWord()

Error llvm::SimpleBitstreamCursor::fillCurWord ( ) inline

getBitcodeBytes()

ArrayRef< uint8_t > llvm::SimpleBitstreamCursor::getBitcodeBytes ( ) const inline

GetCurrentBitNo()

uint64_t llvm::SimpleBitstreamCursor::GetCurrentBitNo ( ) const inline

getCurrentByteNo()

uint64_t llvm::SimpleBitstreamCursor::getCurrentByteNo ( ) const inline

getPointerToBit()

getPointerToByte()

isSizePlausible()

bool llvm::SimpleBitstreamCursor::isSizePlausible ( size_t Size) const inline

JumpToBit()

Error llvm::SimpleBitstreamCursor::JumpToBit ( uint64_t BitNo) inline

Read()

ReadVBR()

ReadVBR64()

SizeInBytes()

size_t llvm::SimpleBitstreamCursor::SizeInBytes ( ) const inline

skipToEnd()

void llvm::SimpleBitstreamCursor::skipToEnd ( ) inline

SkipToFourByteBoundary()

void llvm::SimpleBitstreamCursor::SkipToFourByteBoundary ( ) inline

The documentation for this class was generated from the following file: