| Index: lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
|
| diff --git a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
|
| index edaaadf6816667d6180f5fb69d2212281ffa51be..1d7d8dc23c94c02b098db1abc58f68c618d3a480 100644
|
| --- a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
|
| +++ b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
|
| @@ -36,19 +36,19 @@ using namespace llvm;
|
| /// be kept in sync with the reader, but need to be consistent within this file.
|
| enum {
|
| // VALUE_SYMTAB_BLOCK abbrev id's.
|
| - VST_ENTRY_8_ABBREV = bitc::FIRST_APPLICATION_ABBREV,
|
| + VST_ENTRY_8_ABBREV = naclbitc::FIRST_APPLICATION_ABBREV,
|
| VST_ENTRY_7_ABBREV,
|
| VST_ENTRY_6_ABBREV,
|
| VST_BBENTRY_6_ABBREV,
|
|
|
| // CONSTANTS_BLOCK abbrev id's.
|
| - CONSTANTS_SETTYPE_ABBREV = bitc::FIRST_APPLICATION_ABBREV,
|
| + CONSTANTS_SETTYPE_ABBREV = naclbitc::FIRST_APPLICATION_ABBREV,
|
| CONSTANTS_INTEGER_ABBREV,
|
| CONSTANTS_CE_CAST_Abbrev,
|
| CONSTANTS_NULL_Abbrev,
|
|
|
| // FUNCTION_BLOCK abbrev id's.
|
| - FUNCTION_INST_LOAD_ABBREV = bitc::FIRST_APPLICATION_ABBREV,
|
| + FUNCTION_INST_LOAD_ABBREV = naclbitc::FIRST_APPLICATION_ABBREV,
|
| FUNCTION_INST_BINOP_ABBREV,
|
| FUNCTION_INST_BINOP_FLAGS_ABBREV,
|
| FUNCTION_INST_CAST_ABBREV,
|
| @@ -141,12 +141,13 @@ static unsigned GetEncodedSynchScope(SynchronizationScope SynchScope) {
|
| }
|
|
|
| static void WriteStringRecord(unsigned Code, StringRef Str,
|
| - unsigned AbbrevToUse, NaClBitstreamWriter &Stream) {
|
| + unsigned AbbrevToUse,
|
| + NaClBitstreamWriter &Stream) {
|
| SmallVector<unsigned, 64> Vals;
|
|
|
| // Code: [strchar x N]
|
| for (unsigned i = 0, e = Str.size(); i != e; ++i) {
|
| - if (AbbrevToUse && !BitCodeAbbrevOp::isChar6(Str[i]))
|
| + if (AbbrevToUse && !NaClBitCodeAbbrevOp::isChar6(Str[i]))
|
| AbbrevToUse = 0;
|
| Vals.push_back(Str[i]);
|
| }
|
| @@ -228,57 +229,58 @@ static void WriteTypeTable(const NaClValueEnumerator &VE,
|
| NaClBitstreamWriter &Stream) {
|
| const NaClValueEnumerator::TypeList &TypeList = VE.getTypes();
|
|
|
| - Stream.EnterSubblock(naclbitc::TYPE_BLOCK_ID_NEW, 4 /*count from # abbrevs */);
|
| + Stream.EnterSubblock(naclbitc::TYPE_BLOCK_ID_NEW,
|
| + 4 /*count from # abbrevs */);
|
| SmallVector<uint64_t, 64> TypeVals;
|
|
|
| uint64_t NumBits = Log2_32_Ceil(VE.getTypes().size()+1);
|
|
|
| // Abbrev for TYPE_CODE_POINTER.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::TYPE_CODE_POINTER));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, NumBits));
|
| - Abbv->Add(BitCodeAbbrevOp(0)); // Addrspace = 0
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::TYPE_CODE_POINTER));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, NumBits));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(0)); // Addrspace = 0
|
| unsigned PtrAbbrev = Stream.EmitAbbrev(Abbv);
|
|
|
| // Abbrev for TYPE_CODE_FUNCTION.
|
| - Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::TYPE_CODE_FUNCTION));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // isvararg
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, NumBits));
|
| + Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::TYPE_CODE_FUNCTION));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 1)); // isvararg
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, NumBits));
|
|
|
| unsigned FunctionAbbrev = Stream.EmitAbbrev(Abbv);
|
|
|
| // Abbrev for TYPE_CODE_STRUCT_ANON.
|
| - Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::TYPE_CODE_STRUCT_ANON));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // ispacked
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, NumBits));
|
| + Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::TYPE_CODE_STRUCT_ANON));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 1)); // ispacked
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, NumBits));
|
|
|
| unsigned StructAnonAbbrev = Stream.EmitAbbrev(Abbv);
|
|
|
| // Abbrev for TYPE_CODE_STRUCT_NAME.
|
| - Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::TYPE_CODE_STRUCT_NAME));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Char6));
|
| + Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::TYPE_CODE_STRUCT_NAME));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Char6));
|
| unsigned StructNameAbbrev = Stream.EmitAbbrev(Abbv);
|
|
|
| // Abbrev for TYPE_CODE_STRUCT_NAMED.
|
| - Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::TYPE_CODE_STRUCT_NAMED));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // ispacked
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, NumBits));
|
| + Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::TYPE_CODE_STRUCT_NAMED));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 1)); // ispacked
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, NumBits));
|
|
|
| unsigned StructNamedAbbrev = Stream.EmitAbbrev(Abbv);
|
|
|
| // Abbrev for TYPE_CODE_ARRAY.
|
| - Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::TYPE_CODE_ARRAY));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // size
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, NumBits));
|
| + Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::TYPE_CODE_ARRAY));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 8)); // size
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, NumBits));
|
|
|
| unsigned ArrayAbbrev = Stream.EmitAbbrev(Abbv);
|
|
|
| @@ -488,24 +490,24 @@ static void WriteModuleInfo(const Module *M, const NaClValueEnumerator &VE,
|
| unsigned SimpleGVarAbbrev = 0;
|
| if (!M->global_empty()) {
|
| // Add an abbrev for common globals with no visibility or thread localness.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::MODULE_CODE_GLOBALVAR));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed,
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::MODULE_CODE_GLOBALVAR));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed,
|
| Log2_32_Ceil(MaxGlobalType+1)));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // Constant.
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // Initializer.
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 4)); // Linkage.
|
| - if (MaxAlignment == 0) // Alignment.
|
| - Abbv->Add(BitCodeAbbrevOp(0));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 1)); // Constant.
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 6)); // Initializer.
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 4)); // Linkage.
|
| + if (MaxAlignment == 0) // Alignment.
|
| + Abbv->Add(NaClBitCodeAbbrevOp(0));
|
| else {
|
| unsigned MaxEncAlignment = Log2_32(MaxAlignment)+1;
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed,
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed,
|
| Log2_32_Ceil(MaxEncAlignment+1)));
|
| }
|
| if (SectionMap.empty()) // Section.
|
| - Abbv->Add(BitCodeAbbrevOp(0));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(0));
|
| else
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed,
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed,
|
| Log2_32_Ceil(SectionMap.size()+1)));
|
| // Don't bother emitting vis + thread local.
|
| SimpleGVarAbbrev = Stream.EmitAbbrev(Abbv);
|
| @@ -647,10 +649,10 @@ static void WriteModuleMetadata(const Module *M,
|
| Stream.EnterSubblock(naclbitc::METADATA_BLOCK_ID, 3);
|
|
|
| // Abbrev for METADATA_STRING.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::METADATA_STRING));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 8));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::METADATA_STRING));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 8));
|
| MDSAbbrev = Stream.EmitAbbrev(Abbv);
|
| StartedMetadataBlock = true;
|
| }
|
| @@ -744,7 +746,8 @@ static void WriteMetadataAttachment(const Function &F,
|
| Stream.ExitBlock();
|
| }
|
|
|
| -static void WriteModuleMetadataStore(const Module *M, NaClBitstreamWriter &Stream) {
|
| +static void WriteModuleMetadataStore(const Module *M,
|
| + NaClBitstreamWriter &Stream) {
|
| SmallVector<uint64_t, 64> Record;
|
|
|
| // Write metadata kinds
|
| @@ -817,29 +820,30 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal,
|
| // If this is a constant pool for the module, emit module-specific abbrevs.
|
| if (isGlobal) {
|
| // Abbrev for CST_CODE_AGGREGATE.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::CST_CODE_AGGREGATE));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, Log2_32_Ceil(LastVal+1)));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_AGGREGATE));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed,
|
| + Log2_32_Ceil(LastVal+1)));
|
| AggregateAbbrev = Stream.EmitAbbrev(Abbv);
|
|
|
| // Abbrev for CST_CODE_STRING.
|
| - Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::CST_CODE_STRING));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 8));
|
| + Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_STRING));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 8));
|
| String8Abbrev = Stream.EmitAbbrev(Abbv);
|
| // Abbrev for CST_CODE_CSTRING.
|
| - Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::CST_CODE_CSTRING));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 7));
|
| + Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_CSTRING));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 7));
|
| CString7Abbrev = Stream.EmitAbbrev(Abbv);
|
| // Abbrev for CST_CODE_CSTRING.
|
| - Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::CST_CODE_CSTRING));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Char6));
|
| + Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_CSTRING));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Char6));
|
| CString6Abbrev = Stream.EmitAbbrev(Abbv);
|
| }
|
|
|
| @@ -927,7 +931,7 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal,
|
| Record.push_back(V);
|
| isCStr7 &= (V & 128) == 0;
|
| if (isCStrChar6)
|
| - isCStrChar6 = BitCodeAbbrevOp::isChar6(V);
|
| + isCStrChar6 = NaClBitCodeAbbrevOp::isChar6(V);
|
| }
|
|
|
| if (isCStrChar6)
|
| @@ -1111,7 +1115,8 @@ static void pushValueSigned(const Value *V, unsigned InstID,
|
|
|
| /// WriteInstruction - Emit an instruction to the specified stream.
|
| static void WriteInstruction(const Instruction &I, unsigned InstID,
|
| - NaClValueEnumerator &VE, NaClBitstreamWriter &Stream,
|
| + NaClValueEnumerator &VE,
|
| + NaClBitstreamWriter &Stream,
|
| SmallVector<unsigned, 64> &Vals) {
|
| unsigned Code = 0;
|
| unsigned AbbrevToUse = 0;
|
| @@ -1488,7 +1493,7 @@ static void WriteValueSymbolTable(const ValueSymbolTable &VST,
|
| for (const char *C = Name.getKeyData(), *E = C+Name.getKeyLength();
|
| C != E; ++C) {
|
| if (isChar6)
|
| - isChar6 = BitCodeAbbrevOp::isChar6(*C);
|
| + isChar6 = NaClBitCodeAbbrevOp::isChar6(*C);
|
| if ((unsigned char)*C & 128) {
|
| is7Bit = false;
|
| break; // don't bother scanning the rest.
|
| @@ -1597,49 +1602,50 @@ static void WriteFunction(const Function &F, NaClValueEnumerator &VE,
|
| }
|
|
|
| // Emit blockinfo, which defines the standard abbreviations etc.
|
| -static void WriteBlockInfo(const NaClValueEnumerator &VE, NaClBitstreamWriter &Stream) {
|
| +static void WriteBlockInfo(const NaClValueEnumerator &VE,
|
| + NaClBitstreamWriter &Stream) {
|
| // We only want to emit block info records for blocks that have multiple
|
| // instances: CONSTANTS_BLOCK, FUNCTION_BLOCK and VALUE_SYMTAB_BLOCK.
|
| // Other blocks can define their abbrevs inline.
|
| Stream.EnterBlockInfoBlock(2);
|
|
|
| { // 8-bit fixed-width VST_ENTRY/VST_BBENTRY strings.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 8));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 3));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 8));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 8));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::VALUE_SYMTAB_BLOCK_ID,
|
| Abbv) != VST_ENTRY_8_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
|
|
| { // 7-bit fixed width VST_ENTRY strings.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::VST_CODE_ENTRY));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 7));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::VST_CODE_ENTRY));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 8));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 7));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::VALUE_SYMTAB_BLOCK_ID,
|
| Abbv) != VST_ENTRY_7_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
| { // 6-bit char6 VST_ENTRY strings.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::VST_CODE_ENTRY));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Char6));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::VST_CODE_ENTRY));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 8));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Char6));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::VALUE_SYMTAB_BLOCK_ID,
|
| Abbv) != VST_ENTRY_6_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
| { // 6-bit char6 VST_BBENTRY strings.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::VST_CODE_BBENTRY));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Char6));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::VST_CODE_BBENTRY));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 8));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Char6));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::VALUE_SYMTAB_BLOCK_ID,
|
| Abbv) != VST_BBENTRY_6_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| @@ -1648,9 +1654,9 @@ static void WriteBlockInfo(const NaClValueEnumerator &VE, NaClBitstreamWriter &S
|
|
|
|
|
| { // SETTYPE abbrev for CONSTANTS_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::CST_CODE_SETTYPE));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed,
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_SETTYPE));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed,
|
| Log2_32_Ceil(VE.getTypes().size()+1)));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::CONSTANTS_BLOCK_ID,
|
| Abbv) != CONSTANTS_SETTYPE_ABBREV)
|
| @@ -1658,29 +1664,29 @@ static void WriteBlockInfo(const NaClValueEnumerator &VE, NaClBitstreamWriter &S
|
| }
|
|
|
| { // INTEGER abbrev for CONSTANTS_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::CST_CODE_INTEGER));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_INTEGER));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 8));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::CONSTANTS_BLOCK_ID,
|
| Abbv) != CONSTANTS_INTEGER_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
|
|
| { // CE_CAST abbrev for CONSTANTS_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::CST_CODE_CE_CAST));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 4)); // cast opc
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, // typeid
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_CE_CAST));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 4)); // cast opc
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, // typeid
|
| Log2_32_Ceil(VE.getTypes().size()+1)));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // value id
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 8)); // value id
|
|
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::CONSTANTS_BLOCK_ID,
|
| Abbv) != CONSTANTS_CE_CAST_Abbrev)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
| { // NULL abbrev for CONSTANTS_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::CST_CODE_NULL));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_NULL));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::CONSTANTS_BLOCK_ID,
|
| Abbv) != CONSTANTS_NULL_Abbrev)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| @@ -1689,66 +1695,66 @@ static void WriteBlockInfo(const NaClValueEnumerator &VE, NaClBitstreamWriter &S
|
| // FIXME: This should only use space for first class types!
|
|
|
| { // INST_LOAD abbrev for FUNCTION_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_LOAD));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // Ptr
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 4)); // Align
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 1)); // volatile
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_LOAD));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 6)); // Ptr
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 4)); // Align
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 1)); // volatile
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::FUNCTION_BLOCK_ID,
|
| Abbv) != FUNCTION_INST_LOAD_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
| { // INST_BINOP abbrev for FUNCTION_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_BINOP));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // LHS
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // RHS
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 4)); // opc
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_BINOP));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 6)); // LHS
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 6)); // RHS
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 4)); // opc
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::FUNCTION_BLOCK_ID,
|
| Abbv) != FUNCTION_INST_BINOP_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
| { // INST_BINOP_FLAGS abbrev for FUNCTION_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_BINOP));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // LHS
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // RHS
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 4)); // opc
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 7)); // flags
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_BINOP));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 6)); // LHS
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 6)); // RHS
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 4)); // opc
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 7)); // flags
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::FUNCTION_BLOCK_ID,
|
| Abbv) != FUNCTION_INST_BINOP_FLAGS_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
| { // INST_CAST abbrev for FUNCTION_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_CAST));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // OpVal
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, // dest ty
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_CAST));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 6)); // OpVal
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, // dest ty
|
| Log2_32_Ceil(VE.getTypes().size()+1)));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 4)); // opc
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Fixed, 4)); // opc
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::FUNCTION_BLOCK_ID,
|
| Abbv) != FUNCTION_INST_CAST_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
|
|
| { // INST_RET abbrev for FUNCTION_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_RET));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_RET));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::FUNCTION_BLOCK_ID,
|
| Abbv) != FUNCTION_INST_RET_VOID_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
| { // INST_RET abbrev for FUNCTION_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_RET));
|
| - Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6)); // ValID
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_RET));
|
| + Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::VBR, 6)); // ValID
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::FUNCTION_BLOCK_ID,
|
| Abbv) != FUNCTION_INST_RET_VAL_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
| }
|
| { // INST_UNREACHABLE abbrev for FUNCTION_BLOCK.
|
| - BitCodeAbbrev *Abbv = new BitCodeAbbrev();
|
| - Abbv->Add(BitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_UNREACHABLE));
|
| + NaClBitCodeAbbrev *Abbv = new NaClBitCodeAbbrev();
|
| + Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::FUNC_CODE_INST_UNREACHABLE));
|
| if (Stream.EmitBlockInfoAbbrev(naclbitc::FUNCTION_BLOCK_ID,
|
| Abbv) != FUNCTION_INST_UNREACHABLE_ABBREV)
|
| llvm_unreachable("Unexpected abbrev ordering!");
|
|
|