LLVM API Documentation
#include <BitstreamWriter.h>
Public Member Functions | |
| BitstreamWriter (std::vector< unsigned char > &O) | |
| ~BitstreamWriter () | |
| std::vector< unsigned char > & | getBuffer () |
| void | Emit (uint32_t Val, unsigned NumBits) |
| void | Emit64 (uint64_t Val, unsigned NumBits) |
| void | FlushToWord () |
| void | EmitVBR (uint32_t Val, unsigned NumBits) |
| void | EmitVBR64 (uint64_t Val, unsigned NumBits) |
| void | EmitCode (unsigned Val) |
| EmitCode - Emit the specified code. | |
| void | BackpatchWord (unsigned ByteNo, unsigned NewWord) |
| BlockInfo * | getBlockInfo (unsigned BlockID) |
| void | EnterSubblock (unsigned BlockID, unsigned CodeLen) |
| void | ExitBlock () |
| template<typename uintty> | |
| void | EmitRecord (unsigned Code, SmallVectorImpl< uintty > &Vals, unsigned Abbrev=0) |
| unsigned | EmitAbbrev (BitCodeAbbrev *Abbv) |
| void | EnterBlockInfoBlock (unsigned CodeWidth) |
| EnterBlockInfoBlock - Start emitting the BLOCKINFO_BLOCK. | |
| unsigned | EmitBlockInfoAbbrev (unsigned BlockID, BitCodeAbbrev *Abbv) |
Classes | |
| struct | Block |
| struct | BlockInfo |
Definition at line 23 of file BitstreamWriter.h.
| llvm::BitstreamWriter::BitstreamWriter | ( | std::vector< unsigned char > & | O | ) | [inline, explicit] |
Definition at line 62 of file BitstreamWriter.h.
| llvm::BitstreamWriter::~BitstreamWriter | ( | ) | [inline] |
| std::vector<unsigned char>& llvm::BitstreamWriter::getBuffer | ( | ) | [inline] |
| void llvm::BitstreamWriter::Emit | ( | uint32_t | Val, | |
| unsigned | NumBits | |||
| ) | [inline] |
Definition at line 86 of file BitstreamWriter.h.
References V.
Referenced by Emit64(), EmitCode(), EmitDarwinBCHeader(), EmitDarwinBCTrailer(), EmitVBR(), EmitVBR64(), EnterSubblock(), and llvm::WriteBitcodeToStream().
| void llvm::BitstreamWriter::Emit64 | ( | uint64_t | Val, | |
| unsigned | NumBits | |||
| ) | [inline] |
| void llvm::BitstreamWriter::FlushToWord | ( | ) | [inline] |
Definition at line 118 of file BitstreamWriter.h.
References V.
Referenced by EnterSubblock(), ExitBlock(), and llvm::Serializer::~Serializer().
| void llvm::BitstreamWriter::EmitVBR | ( | uint32_t | Val, | |
| unsigned | NumBits | |||
| ) | [inline] |
Definition at line 130 of file BitstreamWriter.h.
References Emit(), and Threshold.
Referenced by EmitRecord(), EmitVBR64(), and EnterSubblock().
| void llvm::BitstreamWriter::EmitVBR64 | ( | uint64_t | Val, | |
| unsigned | NumBits | |||
| ) | [inline] |
Definition at line 142 of file BitstreamWriter.h.
References Emit(), EmitVBR(), and Threshold.
Referenced by EmitRecord().
| void llvm::BitstreamWriter::EmitCode | ( | unsigned | Val | ) | [inline] |
EmitCode - Emit the specified code.
Definition at line 159 of file BitstreamWriter.h.
References Emit().
Referenced by EmitRecord(), EnterSubblock(), and ExitBlock().
Definition at line 165 of file BitstreamWriter.h.
Referenced by EmitDarwinBCTrailer(), and ExitBlock().
| BlockInfo* llvm::BitstreamWriter::getBlockInfo | ( | unsigned | BlockID | ) | [inline] |
getBlockInfo - If there is block info for the specified ID, return it, otherwise return null.
Definition at line 178 of file BitstreamWriter.h.
Referenced by EnterSubblock().
Definition at line 190 of file BitstreamWriter.h.
References llvm::bitc::BlockIDWidth, BlockInfo, llvm::bitc::BlockSizeWidth, llvm::bitc::CodeLenWidth, Emit(), EmitCode(), EmitVBR(), llvm::bitc::ENTER_SUBBLOCK, FlushToWord(), and getBlockInfo().
Referenced by llvm::Serializer::EnterBlock(), EnterBlockInfoBlock(), WriteAttributeTable(), WriteConstants(), WriteFunction(), WriteModule(), WriteTypeSymbolTable(), WriteTypeTable(), and WriteValueSymbolTable().
| void llvm::BitstreamWriter::ExitBlock | ( | ) | [inline] |
Definition at line 222 of file BitstreamWriter.h.
References BackpatchWord(), EmitCode(), llvm::bitc::END_BLOCK, and FlushToWord().
Referenced by llvm::Serializer::ExitBlock(), WriteAttributeTable(), WriteBlockInfo(), WriteConstants(), WriteFunction(), WriteModule(), WriteTypeSymbolTable(), WriteTypeTable(), WriteValueSymbolTable(), and llvm::Serializer::~Serializer().
| void llvm::BitstreamWriter::EmitRecord | ( | unsigned | Code, | |
| SmallVectorImpl< uintty > & | Vals, | |||
| unsigned | Abbrev = 0 | |||
| ) | [inline] |
EmitRecord - Emit the specified record to the stream, using an abbrev if we have one to compress the output.
Definition at line 286 of file BitstreamWriter.h.
References llvm::BitCodeAbbrevOp::Array, llvm::SmallVectorImpl< T >::begin(), EmitCode(), EmitVBR(), EmitVBR64(), llvm::bitc::FIRST_APPLICATION_ABBREV, llvm::BitCodeAbbrevOp::getEncoding(), llvm::SmallVectorImpl< T >::insert(), llvm::BitCodeAbbrevOp::isLiteral(), llvm::SmallVectorImpl< T >::size(), and llvm::bitc::UNABBREV_RECORD.
Referenced by WriteAttributeTable(), WriteConstants(), WriteFunction(), WriteInstruction(), WriteModule(), WriteModuleInfo(), WriteStringRecord(), WriteTypeSymbolTable(), WriteTypeTable(), and WriteValueSymbolTable().
| unsigned llvm::BitstreamWriter::EmitAbbrev | ( | BitCodeAbbrev * | Abbv | ) | [inline] |
EmitAbbrev - This emits an abbreviation to the stream. Note that this method takes ownership of the specified abbrev.
Definition at line 357 of file BitstreamWriter.h.
References llvm::bitc::FIRST_APPLICATION_ABBREV.
Referenced by WriteConstants(), WriteModuleInfo(), WriteTypeSymbolTable(), and WriteTypeTable().
| void llvm::BitstreamWriter::EnterBlockInfoBlock | ( | unsigned | CodeWidth | ) | [inline] |
EnterBlockInfoBlock - Start emitting the BLOCKINFO_BLOCK.
Definition at line 370 of file BitstreamWriter.h.
References llvm::bitc::BLOCKINFO_BLOCK_ID, and EnterSubblock().
Referenced by WriteBlockInfo().
| unsigned llvm::BitstreamWriter::EmitBlockInfoAbbrev | ( | unsigned | BlockID, | |
| BitCodeAbbrev * | Abbv | |||
| ) | [inline] |
EmitBlockInfoAbbrev - Emit a DEFINE_ABBREV record for the specified BlockID.
Definition at line 399 of file BitstreamWriter.h.
References BlockInfo, and llvm::bitc::FIRST_APPLICATION_ABBREV.
Referenced by WriteBlockInfo().