diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/Bitcode/LLVMBitCodes.h | 15 | ||||
| -rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 274 | ||||
| -rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.h | 3 | ||||
| -rw-r--r-- | llvm/test/Bitcode/AutoUpgradeGlobals.ll | 4 | ||||
| -rw-r--r-- | llvm/test/Bitcode/AutoUpgradeGlobals.ll.bc | bin | 312 -> 0 bytes | |||
| -rw-r--r-- | llvm/test/Bitcode/fbench-llvm-2.9.ll | 5 | ||||
| -rw-r--r-- | llvm/test/Bitcode/fbench-llvm-2.9.ll.bc | bin | 6096 -> 0 bytes | |||
| -rw-r--r-- | llvm/test/Bitcode/spirit-llvm-2.9.ll | 5 | ||||
| -rw-r--r-- | llvm/test/Bitcode/spirit-llvm-2.9.ll.bc | bin | 1595424 -> 0 bytes | |||
| -rw-r--r-- | llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp | 10 | 
10 files changed, 5 insertions, 311 deletions
diff --git a/llvm/include/llvm/Bitcode/LLVMBitCodes.h b/llvm/include/llvm/Bitcode/LLVMBitCodes.h index 214d1d7ffe2..a8f975dfc48 100644 --- a/llvm/include/llvm/Bitcode/LLVMBitCodes.h +++ b/llvm/include/llvm/Bitcode/LLVMBitCodes.h @@ -29,17 +29,13 @@ namespace bitc {      // Module sub-block id's.      PARAMATTR_BLOCK_ID, -     -    /// TYPE_BLOCK_ID_OLD - This is the type descriptor block in LLVM 2.9 and -    /// earlier, replaced with TYPE_BLOCK_ID2.  FIXME: Remove in LLVM 3.1. -    TYPE_BLOCK_ID_OLD, + +    UNUSED_ID1,      CONSTANTS_BLOCK_ID,      FUNCTION_BLOCK_ID, -    /// TYPE_SYMTAB_BLOCK_ID_OLD - This type descriptor is from LLVM 2.9 and -    /// earlier bitcode files.  FIXME: Remove in LLVM 3.1 -    TYPE_SYMTAB_BLOCK_ID_OLD, +    UNUSED_ID2,      VALUE_SYMTAB_BLOCK_ID,      METADATA_BLOCK_ID, @@ -94,9 +90,8 @@ namespace bitc {      TYPE_CODE_POINTER  =  8,    // POINTER: [pointee type]      TYPE_CODE_FUNCTION_OLD = 9, // FUNCTION: [vararg, attrid, retty, paramty x N] -    // FIXME: This is the encoding used for structs in LLVM 2.9 and earlier. -    // REMOVE this in LLVM 3.1 -    TYPE_CODE_STRUCT_OLD = 10,  // STRUCT: [ispacked, eltty x N] +    // Code #10 is unused. +          TYPE_CODE_ARRAY    = 11,    // ARRAY: [numelts, eltty]      TYPE_CODE_VECTOR   = 12,    // VECTOR: [numelts, eltty] diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 6ecdbaeff45..1d1600a0f28 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -403,14 +403,6 @@ Type *BitcodeReader::getTypeByID(unsigned ID) {    return TypeList[ID] = StructType::create(Context);  } -/// FIXME: Remove in LLVM 3.1, only used by ParseOldTypeTable. -Type *BitcodeReader::getTypeByIDOrNull(unsigned ID) { -  if (ID >= TypeList.size()) -    TypeList.resize(ID+1); -   -  return TypeList[ID]; -} -  //===----------------------------------------------------------------------===//  //  Functions for parsing blocks from the bitcode file @@ -747,264 +739,6 @@ bool BitcodeReader::ParseTypeTableBody() {    }  } -// FIXME: Remove in LLVM 3.1 -bool BitcodeReader::ParseOldTypeTable() { -  if (Stream.EnterSubBlock(bitc::TYPE_BLOCK_ID_OLD)) -    return Error("Malformed block record"); - -  if (!TypeList.empty()) -    return Error("Multiple TYPE_BLOCKs found!"); -   -   -  // While horrible, we have no good ordering of types in the bc file.  Just -  // iteratively parse types out of the bc file in multiple passes until we get -  // them all.  Do this by saving a cursor for the start of the type block. -  BitstreamCursor StartOfTypeBlockCursor(Stream); -   -  unsigned NumTypesRead = 0; -   -  SmallVector<uint64_t, 64> Record; -RestartScan: -  unsigned NextTypeID = 0; -  bool ReadAnyTypes = false; -   -  // Read all the records for this type table. -  while (1) { -    unsigned Code = Stream.ReadCode(); -    if (Code == bitc::END_BLOCK) { -      if (NextTypeID != TypeList.size()) -        return Error("Invalid type forward reference in TYPE_BLOCK_ID_OLD"); -       -      // If we haven't read all of the types yet, iterate again. -      if (NumTypesRead != TypeList.size()) { -        // If we didn't successfully read any types in this pass, then we must -        // have an unhandled forward reference. -        if (!ReadAnyTypes) -          return Error("Obsolete bitcode contains unhandled recursive type"); -         -        Stream = StartOfTypeBlockCursor; -        goto RestartScan; -      } -       -      if (Stream.ReadBlockEnd()) -        return Error("Error at end of type table block"); -      return false; -    } -     -    if (Code == bitc::ENTER_SUBBLOCK) { -      // No known subblocks, always skip them. -      Stream.ReadSubBlockID(); -      if (Stream.SkipBlock()) -        return Error("Malformed block record"); -      continue; -    } -     -    if (Code == bitc::DEFINE_ABBREV) { -      Stream.ReadAbbrevRecord(); -      continue; -    } -     -    // Read a record. -    Record.clear(); -    Type *ResultTy = 0; -    switch (Stream.ReadRecord(Code, Record)) { -    default: return Error("unknown type in type table"); -    case bitc::TYPE_CODE_NUMENTRY: // TYPE_CODE_NUMENTRY: [numentries] -      // TYPE_CODE_NUMENTRY contains a count of the number of types in the -      // type list.  This allows us to reserve space. -      if (Record.size() < 1) -        return Error("Invalid TYPE_CODE_NUMENTRY record"); -      TypeList.resize(Record[0]); -      continue; -    case bitc::TYPE_CODE_VOID:      // VOID -      ResultTy = Type::getVoidTy(Context); -      break; -    case bitc::TYPE_CODE_FLOAT:     // FLOAT -      ResultTy = Type::getFloatTy(Context); -      break; -    case bitc::TYPE_CODE_DOUBLE:    // DOUBLE -      ResultTy = Type::getDoubleTy(Context); -      break; -    case bitc::TYPE_CODE_X86_FP80:  // X86_FP80 -      ResultTy = Type::getX86_FP80Ty(Context); -      break; -    case bitc::TYPE_CODE_FP128:     // FP128 -      ResultTy = Type::getFP128Ty(Context); -      break; -    case bitc::TYPE_CODE_PPC_FP128: // PPC_FP128 -      ResultTy = Type::getPPC_FP128Ty(Context); -      break; -    case bitc::TYPE_CODE_LABEL:     // LABEL -      ResultTy = Type::getLabelTy(Context); -      break; -    case bitc::TYPE_CODE_METADATA:  // METADATA -      ResultTy = Type::getMetadataTy(Context); -      break; -    case bitc::TYPE_CODE_X86_MMX:   // X86_MMX -      ResultTy = Type::getX86_MMXTy(Context); -      break; -    case bitc::TYPE_CODE_INTEGER:   // INTEGER: [width] -      if (Record.size() < 1) -        return Error("Invalid Integer type record"); -      ResultTy = IntegerType::get(Context, Record[0]); -      break; -    case bitc::TYPE_CODE_OPAQUE:    // OPAQUE -      if (NextTypeID < TypeList.size() && TypeList[NextTypeID] == 0) -        ResultTy = StructType::create(Context); -      break; -    case bitc::TYPE_CODE_STRUCT_OLD: {// STRUCT_OLD -      if (NextTypeID >= TypeList.size()) break; -      // If we already read it, don't reprocess. -      if (TypeList[NextTypeID] && -          !cast<StructType>(TypeList[NextTypeID])->isOpaque()) -        break; - -      // Set a type. -      if (TypeList[NextTypeID] == 0) -        TypeList[NextTypeID] = StructType::create(Context); - -      std::vector<Type*> EltTys; -      for (unsigned i = 1, e = Record.size(); i != e; ++i) { -        if (Type *Elt = getTypeByIDOrNull(Record[i])) -          EltTys.push_back(Elt); -        else -          break; -      } - -      if (EltTys.size() != Record.size()-1) -        break;      // Not all elements are ready. -       -      cast<StructType>(TypeList[NextTypeID])->setBody(EltTys, Record[0]); -      ResultTy = TypeList[NextTypeID]; -      TypeList[NextTypeID] = 0; -      break; -    } -    case bitc::TYPE_CODE_POINTER: { // POINTER: [pointee type] or -      //          [pointee type, address space] -      if (Record.size() < 1) -        return Error("Invalid POINTER type record"); -      unsigned AddressSpace = 0; -      if (Record.size() == 2) -        AddressSpace = Record[1]; -      if ((ResultTy = getTypeByIDOrNull(Record[0]))) -        ResultTy = PointerType::get(ResultTy, AddressSpace); -      break; -    } -    case bitc::TYPE_CODE_FUNCTION_OLD: { -      // FIXME: attrid is dead, remove it in LLVM 3.0 -      // FUNCTION: [vararg, attrid, retty, paramty x N] -      if (Record.size() < 3) -        return Error("Invalid FUNCTION type record"); -      std::vector<Type*> ArgTys; -      for (unsigned i = 3, e = Record.size(); i != e; ++i) { -        if (Type *Elt = getTypeByIDOrNull(Record[i])) -          ArgTys.push_back(Elt); -        else -          break; -      } -      if (ArgTys.size()+3 != Record.size()) -        break;  // Something was null. -      if ((ResultTy = getTypeByIDOrNull(Record[2]))) -        ResultTy = FunctionType::get(ResultTy, ArgTys, Record[0]); -      break; -    } -    case bitc::TYPE_CODE_FUNCTION: { -      // FUNCTION: [vararg, retty, paramty x N] -      if (Record.size() < 2) -        return Error("Invalid FUNCTION type record"); -      std::vector<Type*> ArgTys; -      for (unsigned i = 2, e = Record.size(); i != e; ++i) { -        if (Type *Elt = getTypeByIDOrNull(Record[i])) -          ArgTys.push_back(Elt); -        else -          break; -      } -      if (ArgTys.size()+2 != Record.size()) -        break;  // Something was null. -      if ((ResultTy = getTypeByIDOrNull(Record[1]))) -        ResultTy = FunctionType::get(ResultTy, ArgTys, Record[0]); -      break; -    } -    case bitc::TYPE_CODE_ARRAY:     // ARRAY: [numelts, eltty] -      if (Record.size() < 2) -        return Error("Invalid ARRAY type record"); -      if ((ResultTy = getTypeByIDOrNull(Record[1]))) -        ResultTy = ArrayType::get(ResultTy, Record[0]); -      break; -    case bitc::TYPE_CODE_VECTOR:    // VECTOR: [numelts, eltty] -      if (Record.size() < 2) -        return Error("Invalid VECTOR type record"); -      if ((ResultTy = getTypeByIDOrNull(Record[1]))) -        ResultTy = VectorType::get(ResultTy, Record[0]); -      break; -    } -     -    if (NextTypeID >= TypeList.size()) -      return Error("invalid TYPE table"); -     -    if (ResultTy && TypeList[NextTypeID] == 0) { -      ++NumTypesRead; -      ReadAnyTypes = true; -       -      TypeList[NextTypeID] = ResultTy; -    } -     -    ++NextTypeID; -  } -} - - -bool BitcodeReader::ParseOldTypeSymbolTable() { -  if (Stream.EnterSubBlock(bitc::TYPE_SYMTAB_BLOCK_ID_OLD)) -    return Error("Malformed block record"); - -  SmallVector<uint64_t, 64> Record; - -  // Read all the records for this type table. -  std::string TypeName; -  while (1) { -    unsigned Code = Stream.ReadCode(); -    if (Code == bitc::END_BLOCK) { -      if (Stream.ReadBlockEnd()) -        return Error("Error at end of type symbol table block"); -      return false; -    } - -    if (Code == bitc::ENTER_SUBBLOCK) { -      // No known subblocks, always skip them. -      Stream.ReadSubBlockID(); -      if (Stream.SkipBlock()) -        return Error("Malformed block record"); -      continue; -    } - -    if (Code == bitc::DEFINE_ABBREV) { -      Stream.ReadAbbrevRecord(); -      continue; -    } - -    // Read a record. -    Record.clear(); -    switch (Stream.ReadRecord(Code, Record)) { -    default:  // Default behavior: unknown type. -      break; -    case bitc::TST_CODE_ENTRY:    // TST_ENTRY: [typeid, namechar x N] -      if (ConvertToString(Record, 1, TypeName)) -        return Error("Invalid TST_ENTRY record"); -      unsigned TypeID = Record[0]; -      if (TypeID >= TypeList.size()) -        return Error("Invalid Type ID in TST_ENTRY record"); - -      // Only apply the type name to a struct type with no name. -      if (StructType *STy = dyn_cast<StructType>(TypeList[TypeID])) -        if (!STy->isLiteral() && !STy->hasName()) -          STy->setName(TypeName); -      TypeName.clear(); -      break; -    } -  } -} -  bool BitcodeReader::ParseValueSymbolTable() {    if (Stream.EnterSubBlock(bitc::VALUE_SYMTAB_BLOCK_ID))      return Error("Malformed block record"); @@ -1636,14 +1370,6 @@ bool BitcodeReader::ParseModule() {          if (ParseTypeTable())            return true;          break; -      case bitc::TYPE_BLOCK_ID_OLD: -        if (ParseOldTypeTable()) -          return true; -        break; -      case bitc::TYPE_SYMTAB_BLOCK_ID_OLD: -        if (ParseOldTypeSymbolTable()) -          return true; -        break;        case bitc::VALUE_SYMTAB_BLOCK_ID:          if (ParseValueSymbolTable())            return true; diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.h b/llvm/lib/Bitcode/Reader/BitcodeReader.h index 6e6118cac0d..add8ac56ccb 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.h +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.h @@ -211,7 +211,6 @@ public:    bool ParseTriple(std::string &Triple);  private:    Type *getTypeByID(unsigned ID); -  Type *getTypeByIDOrNull(unsigned ID);    Value *getFnValueByID(unsigned ID, Type *Ty) {      if (Ty && Ty->isMetadataTy())        return MDValueList.getValueFwdRef(ID); @@ -259,10 +258,8 @@ private:    bool ParseModule();    bool ParseAttributeBlock();    bool ParseTypeTable(); -  bool ParseOldTypeTable();         // FIXME: Remove in LLVM 3.1    bool ParseTypeTableBody(); -  bool ParseOldTypeSymbolTable();   // FIXME: Remove in LLVM 3.1    bool ParseValueSymbolTable();    bool ParseConstants();    bool RememberAndSkipFunctionBody(); diff --git a/llvm/test/Bitcode/AutoUpgradeGlobals.ll b/llvm/test/Bitcode/AutoUpgradeGlobals.ll deleted file mode 100644 index a5af2b8b07d..00000000000 --- a/llvm/test/Bitcode/AutoUpgradeGlobals.ll +++ /dev/null @@ -1,4 +0,0 @@ -; This isn't really an assembly file. It just runs test on bitcode to ensure -; it is auto-upgraded. -; RUN: llvm-dis < %s.bc | FileCheck %s  -; CHECK-NOT: {i32 @\\.llvm\\.eh} diff --git a/llvm/test/Bitcode/AutoUpgradeGlobals.ll.bc b/llvm/test/Bitcode/AutoUpgradeGlobals.ll.bc Binary files differdeleted file mode 100644 index 1abe9688e29..00000000000 --- a/llvm/test/Bitcode/AutoUpgradeGlobals.ll.bc +++ /dev/null diff --git a/llvm/test/Bitcode/fbench-llvm-2.9.ll b/llvm/test/Bitcode/fbench-llvm-2.9.ll deleted file mode 100644 index 588769159f2..00000000000 --- a/llvm/test/Bitcode/fbench-llvm-2.9.ll +++ /dev/null @@ -1,5 +0,0 @@ -; This isn't really an assembly file. It just runs the test on the bitcode to  -; ensure bitcode file backward compatibility.  No need for FileCheck as the  -; BitcodeReader will fail with an assert if broken. This test case was  -; generated using a clang binary, based on LLVM 2.9, downloaded from llvm.org. -; RUN: llvm-dis < %s.bc > /dev/null diff --git a/llvm/test/Bitcode/fbench-llvm-2.9.ll.bc b/llvm/test/Bitcode/fbench-llvm-2.9.ll.bc Binary files differdeleted file mode 100644 index d2ebbe5c9d7..00000000000 --- a/llvm/test/Bitcode/fbench-llvm-2.9.ll.bc +++ /dev/null diff --git a/llvm/test/Bitcode/spirit-llvm-2.9.ll b/llvm/test/Bitcode/spirit-llvm-2.9.ll deleted file mode 100644 index 588769159f2..00000000000 --- a/llvm/test/Bitcode/spirit-llvm-2.9.ll +++ /dev/null @@ -1,5 +0,0 @@ -; This isn't really an assembly file. It just runs the test on the bitcode to  -; ensure bitcode file backward compatibility.  No need for FileCheck as the  -; BitcodeReader will fail with an assert if broken. This test case was  -; generated using a clang binary, based on LLVM 2.9, downloaded from llvm.org. -; RUN: llvm-dis < %s.bc > /dev/null diff --git a/llvm/test/Bitcode/spirit-llvm-2.9.ll.bc b/llvm/test/Bitcode/spirit-llvm-2.9.ll.bc Binary files differdeleted file mode 100644 index bf8cf495d72..00000000000 --- a/llvm/test/Bitcode/spirit-llvm-2.9.ll.bc +++ /dev/null diff --git a/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp b/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp index f0bbc9f9551..de14a6d1af3 100644 --- a/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp +++ b/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp @@ -102,11 +102,9 @@ static const char *GetBlockName(unsigned BlockID,    default:                           return 0;    case bitc::MODULE_BLOCK_ID:        return "MODULE_BLOCK";    case bitc::PARAMATTR_BLOCK_ID:     return "PARAMATTR_BLOCK"; -  case bitc::TYPE_BLOCK_ID_OLD:      return "TYPE_BLOCK_ID_OLD";    case bitc::TYPE_BLOCK_ID_NEW:      return "TYPE_BLOCK_ID";    case bitc::CONSTANTS_BLOCK_ID:     return "CONSTANTS_BLOCK";    case bitc::FUNCTION_BLOCK_ID:      return "FUNCTION_BLOCK"; -  case bitc::TYPE_SYMTAB_BLOCK_ID_OLD: return "TYPE_SYMTAB_OLD";    case bitc::VALUE_SYMTAB_BLOCK_ID:  return "VALUE_SYMTAB";    case bitc::METADATA_BLOCK_ID:      return "METADATA_BLOCK";    case bitc::METADATA_ATTACHMENT_ID: return "METADATA_ATTACHMENT_BLOCK"; @@ -163,7 +161,6 @@ static const char *GetCodeName(unsigned CodeID, unsigned BlockID,      default: return 0;      case bitc::PARAMATTR_CODE_ENTRY: return "ENTRY";      } -  case bitc::TYPE_BLOCK_ID_OLD:    case bitc::TYPE_BLOCK_ID_NEW:      switch (CodeID) {      default: return 0; @@ -175,8 +172,6 @@ static const char *GetCodeName(unsigned CodeID, unsigned BlockID,      case bitc::TYPE_CODE_OPAQUE:       return "OPAQUE";      case bitc::TYPE_CODE_INTEGER:      return "INTEGER";      case bitc::TYPE_CODE_POINTER:      return "POINTER"; -    case bitc::TYPE_CODE_FUNCTION_OLD: return "FUNCTION_OLD"; -    case bitc::TYPE_CODE_STRUCT_OLD:   return "STRUCT_OLD";      case bitc::TYPE_CODE_ARRAY:        return "ARRAY";      case bitc::TYPE_CODE_VECTOR:       return "VECTOR";      case bitc::TYPE_CODE_X86_FP80:     return "X86_FP80"; @@ -248,11 +243,6 @@ static const char *GetCodeName(unsigned CodeID, unsigned BlockID,      case bitc::FUNC_CODE_INST_CALL:         return "INST_CALL";      case bitc::FUNC_CODE_DEBUG_LOC:         return "DEBUG_LOC";      } -  case bitc::TYPE_SYMTAB_BLOCK_ID_OLD: -    switch (CodeID) { -    default: return 0; -    case bitc::TST_CODE_ENTRY: return "ENTRY"; -    }    case bitc::VALUE_SYMTAB_BLOCK_ID:      switch (CodeID) {      default: return 0;  | 

