LLVM  4.0.0
Public Types | Public Member Functions | Static Public Attributes | List of all members
llvm::SimpleBitstreamCursor Class Reference

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

#include <BitstreamReader.h>

Inheritance diagram for llvm::SimpleBitstreamCursor:
[legend]
Collaboration diagram for llvm::SimpleBitstreamCursor:
[legend]

Public Types

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

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. More...
 
uint64_t getCurrentByteNo () const
 
ArrayRef< uint8_t > getBitcodeBytes () const
 
void JumpToBit (uint64_t BitNo)
 Reset the stream to the specified bit number. More...
 
const uint8_t * getPointerToByte (uint64_t ByteNo, uint64_t NumBytes)
 Get a pointer into the bitstream at the specified byte offset. More...
 
const uint8_t * getPointerToBit (uint64_t BitNo, uint64_t NumBytes)
 Get a pointer into the bitstream at the specified bit offset. More...
 
void fillCurWord ()
 
word_t Read (unsigned NumBits)
 
uint32_t ReadVBR (unsigned NumBits)
 
uint64_t ReadVBR64 (unsigned NumBits)
 
void SkipToFourByteBoundary ()
 
void skipToEnd ()
 Skip to the end of the file. More...
 

Static Public Attributes

static const size_t MaxChunkSize = sizeof(word_t) * 8
 

Detailed Description

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 81 of file BitstreamReader.h.

Member Typedef Documentation

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 91 of file BitstreamReader.h.

Constructor & Destructor Documentation

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

Definition at line 104 of file BitstreamReader.h.

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

Definition at line 106 of file BitstreamReader.h.

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

Definition at line 109 of file BitstreamReader.h.

Member Function Documentation

bool llvm::SimpleBitstreamCursor::AtEndOfStream ( )
inline
bool llvm::SimpleBitstreamCursor::canSkipToPos ( size_t  pos) const
inline
void llvm::SimpleBitstreamCursor::fillCurWord ( )
inline
ArrayRef<uint8_t> llvm::SimpleBitstreamCursor::getBitcodeBytes ( ) const
inline

Definition at line 129 of file BitstreamReader.h.

Referenced by llvm::getBitcodeModuleList().

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

Definition at line 127 of file BitstreamReader.h.

References GetCurrentBitNo().

Referenced by llvm::getBitcodeModuleList().

const uint8_t* llvm::SimpleBitstreamCursor::getPointerToBit ( uint64_t  BitNo,
uint64_t  NumBytes 
)
inline

Get a pointer into the bitstream at the specified bit offset.

The bit offset must be on a byte boundary.

Definition at line 154 of file BitstreamReader.h.

References assert(), and getPointerToByte().

Referenced by llvm::BitstreamCursor::readRecord().

const uint8_t* llvm::SimpleBitstreamCursor::getPointerToByte ( uint64_t  ByteNo,
uint64_t  NumBytes 
)
inline

Get a pointer into the bitstream at the specified byte offset.

Definition at line 147 of file BitstreamReader.h.

References llvm::ArrayRef< T >::data().

Referenced by getPointerToBit().

void llvm::SimpleBitstreamCursor::JumpToBit ( uint64_t  BitNo)
inline
word_t llvm::SimpleBitstreamCursor::Read ( unsigned  NumBits)
inline
uint32_t llvm::SimpleBitstreamCursor::ReadVBR ( unsigned  NumBits)
inline
uint64_t llvm::SimpleBitstreamCursor::ReadVBR64 ( unsigned  NumBits)
inline
void llvm::SimpleBitstreamCursor::skipToEnd ( )
inline

Skip to the end of the file.

Definition at line 274 of file BitstreamReader.h.

References llvm::ArrayRef< T >::size().

Referenced by llvm::BitstreamCursor::readRecord(), and llvm::BitstreamCursor::skipRecord().

void llvm::SimpleBitstreamCursor::SkipToFourByteBoundary ( )
inline

Member Data Documentation

const size_t llvm::SimpleBitstreamCursor::MaxChunkSize = sizeof(word_t) * 8
static

Definition at line 101 of file BitstreamReader.h.

Referenced by Read().


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