|
LLVM
3.7.0
|
This class is used to read from an LLVM bitcode stream, maintaining information that is global to decoding the entire file. More...
#include <BitstreamReader.h>
Classes | |
| struct | BlockInfo |
| This contains information emitted to BLOCKINFO_BLOCK blocks. More... | |
Public Member Functions | |
| BitstreamReader () | |
| BitstreamReader (const unsigned char *Start, const unsigned char *End) | |
| BitstreamReader (std::unique_ptr< MemoryObject > BitcodeBytes) | |
| BitstreamReader (BitstreamReader &&Other) | |
| BitstreamReader & | operator= (BitstreamReader &&Other) |
| void | init (const unsigned char *Start, const unsigned char *End) |
| MemoryObject & | getBitcodeBytes () |
| void | CollectBlockInfoNames () |
| This is called by clients that want block/record name information. More... | |
| bool | isIgnoringBlockInfoNames () |
| bool | hasBlockInfoRecords () const |
| Return true if we've already read and processed the block info block for this Bitstream. More... | |
| const BlockInfo * | getBlockInfo (unsigned BlockID) const |
| If there is block info for the specified ID, return it, otherwise return null. More... | |
| BlockInfo & | getOrCreateBlockInfo (unsigned BlockID) |
| void | takeBlockInfo (BitstreamReader &&Other) |
| Takes block info from the other bitstream reader. More... | |
This class is used to read from an LLVM bitcode stream, maintaining information that is global to decoding the entire file.
While a file is being read, multiple cursors can be independently advanced or skipped around within the file. These are represented by the BitstreamCursor class.
Definition at line 31 of file BitstreamReader.h.
|
inline |
Definition at line 54 of file BitstreamReader.h.
|
inline |
Definition at line 57 of file BitstreamReader.h.
References init().
|
inline |
Definition at line 62 of file BitstreamReader.h.
|
inline |
Definition at line 65 of file BitstreamReader.h.
References Other.
|
inline |
This is called by clients that want block/record name information.
Definition at line 85 of file BitstreamReader.h.
|
inline |
Definition at line 82 of file BitstreamReader.h.
Referenced by llvm::BitstreamCursor::canSkipToPos(), llvm::BitstreamCursor::fillCurWord(), llvm::BitstreamCursor::readRecord(), and llvm::BitstreamCursor::skipRecord().
If there is block info for the specified ID, return it, otherwise return null.
Definition at line 99 of file BitstreamReader.h.
Referenced by llvm::BitstreamCursor::EnterSubBlock(), and getOrCreateBlockInfo().
Definition at line 111 of file BitstreamReader.h.
References getBlockInfo().
Referenced by llvm::BitstreamCursor::ReadBlockInfoBlock().
|
inline |
Return true if we've already read and processed the block info block for this Bitstream.
We only process it for the first cursor that walks over it.
Definition at line 95 of file BitstreamReader.h.
Referenced by llvm::BitstreamCursor::ReadBlockInfoBlock(), and takeBlockInfo().
Definition at line 77 of file BitstreamReader.h.
References llvm::getNonStreamedMemoryObject().
Referenced by BitstreamReader().
|
inline |
Definition at line 86 of file BitstreamReader.h.
Referenced by llvm::BitstreamCursor::ReadBlockInfoBlock().
|
inline |
Definition at line 69 of file BitstreamReader.h.
References Other, and std::swap().
|
inline |
Takes block info from the other bitstream reader.
This is a "take" operation because BlockInfo records are non-trivial, and indeed rather expensive.
Definition at line 125 of file BitstreamReader.h.
References hasBlockInfoRecords(), and Other.
1.8.6