Changes in directory llvm/include/llvm/Bitcode:
BitCodes.h updated: 1.3 -> 1.4 BitstreamReader.h updated: 1.12 -> 1.13 BitstreamWriter.h updated: 1.7 -> 1.8 LLVMBitCodes.h updated: 1.14 -> 1.15 --- Log message: minor cleanups. Add provisions for a new standard BLOCKINFO_BLOCK block type. --- Diffs of the changes: (+41 -17) BitCodes.h | 32 ++++++++++++++++++++++++++++---- BitstreamReader.h | 2 +- BitstreamWriter.h | 6 +++--- LLVMBitCodes.h | 18 +++++++++--------- 4 files changed, 41 insertions(+), 17 deletions(-) Index: llvm/include/llvm/Bitcode/BitCodes.h diff -u llvm/include/llvm/Bitcode/BitCodes.h:1.3 llvm/include/llvm/Bitcode/BitCodes.h:1.4 --- llvm/include/llvm/Bitcode/BitCodes.h:1.3 Fri May 4 12:35:19 2007 +++ llvm/include/llvm/Bitcode/BitCodes.h Fri May 4 13:25:49 2007 @@ -30,9 +30,9 @@ BlockSizeWidth = 32 // BlockSize up to 2^32 32-bit words = 32GB per block. }; - // The standard code namespace always has a way to exit a block, enter a + // The standard abbrev namespace always has a way to exit a block, enter a // nested block, define abbrevs, and define an unabbreviated record. - enum FixedCodes { + enum FixedAbbrevIDs { END_BLOCK = 0, // Must be zero to guarantee termination for broken bitcode. ENTER_SUBBLOCK = 1, @@ -48,8 +48,29 @@ UNABBREV_RECORD = 3, // This is not a code, this is a marker for the first abbrev assignment. - FIRST_ABBREV = 4 + FIRST_APPLICATION_ABBREV = 4 }; + + /// StandardBlockIDs - All bitcode files can optionally include a BLOCKINFO + /// block, which contains metadata about other blocks in the file. + enum StandardBlockIDs { + /// BLOCKINFO_BLOCK is used to define metadata about blocks, for example, + /// standard abbrevs that should be available to all blocks of a specified + /// ID. + BLOCKINFO_BLOCK_ID = 0, + + // Block IDs 1-7 are reserved for future expansion. + FIRST_APPLICATION_BLOCKID = 8 + }; + + /// BlockInfoCodes - The blockinfo block contains metadata about user-defined + /// blocks. + enum BlockInfoCodes { + BLOCKINFO_CODE_SETBID = 1, // SETBID: [blockid#] + BLOCKINFO_CODE_ABBREV = 2 // ABBREV: [standard abbrev encoding] + // BLOCKNAME: give string name to block, if desired. + }; + } // End bitc namespace /// BitCodeAbbrevOp - This describes one or more operands in an abbreviation. @@ -63,7 +84,7 @@ unsigned Enc : 3; // The encoding to use. public: enum Encoding { - FixedWidth = 1, // A fixed with field, Val specifies number of bits. + FixedWidth = 1, // A fixed with field, Val specifies number of bits. VBR = 2 // A VBR field where Val specifies the width of each chunk. }; @@ -87,6 +108,9 @@ } }; +/// BitCodeAbbrev - This class represents an abbreviation record. An +/// abbreviation allows a complex record that has redundancy to be stored in a +/// specialized format instead of the fully-general, fully-vbr, format. class BitCodeAbbrev { SmallVector<BitCodeAbbrevOp, 8> OperandList; unsigned char RefCount; // Number of things using this. Index: llvm/include/llvm/Bitcode/BitstreamReader.h diff -u llvm/include/llvm/Bitcode/BitstreamReader.h:1.12 llvm/include/llvm/Bitcode/BitstreamReader.h:1.13 --- llvm/include/llvm/Bitcode/BitstreamReader.h:1.12 Fri May 4 12:35:19 2007 +++ llvm/include/llvm/Bitcode/BitstreamReader.h Fri May 4 13:25:49 2007 @@ -283,7 +283,7 @@ return Code; } - unsigned AbbrevNo = AbbrevID-bitc::FIRST_ABBREV; + unsigned AbbrevNo = AbbrevID-bitc::FIRST_APPLICATION_ABBREV; assert(AbbrevNo < CurAbbrevs.size() && "Invalid abbrev #!"); BitCodeAbbrev *Abbv = CurAbbrevs[AbbrevNo]; Index: llvm/include/llvm/Bitcode/BitstreamWriter.h diff -u llvm/include/llvm/Bitcode/BitstreamWriter.h:1.7 llvm/include/llvm/Bitcode/BitstreamWriter.h:1.8 --- llvm/include/llvm/Bitcode/BitstreamWriter.h:1.7 Fri May 4 12:35:19 2007 +++ llvm/include/llvm/Bitcode/BitstreamWriter.h Fri May 4 13:25:49 2007 @@ -194,7 +194,7 @@ void EmitRecord(unsigned Code, SmallVectorImpl<uint64_t> &Vals, unsigned Abbrev = 0) { if (Abbrev) { - unsigned AbbrevNo = Abbrev-bitc::FIRST_ABBREV; + unsigned AbbrevNo = Abbrev-bitc::FIRST_APPLICATION_ABBREV; assert(AbbrevNo < CurAbbrevs.size() && "Invalid abbrev #!"); BitCodeAbbrev *Abbv = CurAbbrevs[AbbrevNo]; @@ -247,7 +247,7 @@ void EmitRecord(unsigned Code, SmallVectorImpl<unsigned> &Vals, unsigned Abbrev = 0) { if (Abbrev) { - unsigned AbbrevNo = Abbrev-bitc::FIRST_ABBREV; + unsigned AbbrevNo = Abbrev-bitc::FIRST_APPLICATION_ABBREV; assert(AbbrevNo < CurAbbrevs.size() && "Invalid abbrev #!"); BitCodeAbbrev *Abbv = CurAbbrevs[AbbrevNo]; @@ -318,7 +318,7 @@ } CurAbbrevs.push_back(Abbv); - return CurAbbrevs.size()-1+bitc::FIRST_ABBREV; + return CurAbbrevs.size()-1+bitc::FIRST_APPLICATION_ABBREV; } }; Index: llvm/include/llvm/Bitcode/LLVMBitCodes.h diff -u llvm/include/llvm/Bitcode/LLVMBitCodes.h:1.14 llvm/include/llvm/Bitcode/LLVMBitCodes.h:1.15 --- llvm/include/llvm/Bitcode/LLVMBitCodes.h:1.14 Thu May 3 22:01:46 2007 +++ llvm/include/llvm/Bitcode/LLVMBitCodes.h Fri May 4 13:25:49 2007 @@ -25,15 +25,15 @@ // The only top-level block type defined is for a module. enum BlockIDs { // Blocks - MODULE_BLOCK_ID = 0, + MODULE_BLOCK_ID = FIRST_APPLICATION_BLOCKID, - // Module sub-block id's - PARAMATTR_BLOCK_ID = 1, - TYPE_BLOCK_ID = 2, - CONSTANTS_BLOCK_ID = 3, - FUNCTION_BLOCK_ID = 4, - TYPE_SYMTAB_BLOCK_ID = 5, - VALUE_SYMTAB_BLOCK_ID = 6 + // Module sub-block id's. + PARAMATTR_BLOCK_ID, + TYPE_BLOCK_ID, + CONSTANTS_BLOCK_ID, + FUNCTION_BLOCK_ID, + TYPE_SYMTAB_BLOCK_ID, + VALUE_SYMTAB_BLOCK_ID }; @@ -68,7 +68,7 @@ /// TYPE blocks have codes for each type primitive they use. enum TypeCodes { - TYPE_CODE_NUMENTRY = 1, // TYPE_CODE_NUMENTRY: [numentries] + TYPE_CODE_NUMENTRY = 1, // NUMENTRY: [numentries] // Type Codes TYPE_CODE_VOID = 2, // VOID _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits