aboutsummaryrefslogtreecommitdiff
path: root/lib/Bitcode
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bitcode')
-rw-r--r--lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp36
-rw-r--r--lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp47
2 files changed, 1 insertions, 82 deletions
diff --git a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
index 0eaab6d78b..9e8c398172 100644
--- a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
+++ b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp
@@ -402,8 +402,6 @@ bool NaClBitcodeReader::ParseTypeTableBody() {
SmallVector<uint64_t, 64> Record;
unsigned NumRecords = 0;
- SmallString<64> TypeName;
-
// Read all the records for this type table.
while (1) {
NaClBitstreamEntry Entry = Stream.advanceSkippingSubblocks();
@@ -505,40 +503,6 @@ bool NaClBitcodeReader::ParseTypeTableBody() {
ResultTy = StructType::get(Context, EltTys, Record[0]);
break;
}
- case naclbitc::TYPE_CODE_STRUCT_NAME: // STRUCT_NAME: [strchr x N]
- if (ConvertToString(Record, 0, TypeName))
- return Error("Invalid STRUCT_NAME record");
- continue;
-
- case naclbitc::TYPE_CODE_STRUCT_NAMED: { // STRUCT: [ispacked, eltty x N]
- if (Record.size() < 1)
- return Error("Invalid STRUCT type record");
-
- if (NumRecords >= TypeList.size())
- return Error("invalid TYPE table");
-
- // Check to see if this was forward referenced, if so fill in the temp.
- StructType *Res = cast_or_null<StructType>(TypeList[NumRecords]);
- if (Res) {
- Res->setName(TypeName);
- TypeList[NumRecords] = 0;
- } else // Otherwise, create a new struct.
- Res = StructType::create(Context, TypeName);
- TypeName.clear();
-
- SmallVector<Type*, 8> EltTys;
- for (unsigned i = 1, e = Record.size(); i != e; ++i) {
- if (Type *T = getTypeByID(Record[i]))
- EltTys.push_back(T);
- else
- break;
- }
- if (EltTys.size() != Record.size()-1)
- return Error("invalid STRUCT type record");
- Res->setBody(EltTys, Record[0]);
- ResultTy = Res;
- break;
- }
case naclbitc::TYPE_CODE_ARRAY: // ARRAY: [numelts, eltty]
if (Record.size() < 2)
return Error("Invalid ARRAY type record");
diff --git a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
index d4f7c51749..41a2501266 100644
--- a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
+++ b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp
@@ -95,8 +95,6 @@ enum {
TYPE_POINTER_ABBREV = naclbitc::FIRST_APPLICATION_ABBREV,
TYPE_FUNCTION_ABBREV,
TYPE_STRUCT_ANON_ABBREV,
- TYPE_STRUCT_NAME_ABBREV,
- TYPE_STRUCT_NAMED_ABBREV,
TYPE_ARRAY_ABBREV,
TYPE_MAX_ABBREV = TYPE_ARRAY_ABBREV
};
@@ -163,22 +161,6 @@ static unsigned GetEncodedCallingConv(CallingConv::ID conv) {
}
}
-static void WriteStringRecord(unsigned Code, StringRef Str,
- unsigned AbbrevToUse,
- NaClBitstreamWriter &Stream) {
- SmallVector<unsigned, 64> Vals;
-
- // Code: [strchar x N]
- for (unsigned i = 0, e = Str.size(); i != e; ++i) {
- if (AbbrevToUse && !NaClBitCodeAbbrevOp::isChar6(Str[i]))
- AbbrevToUse = 0;
- Vals.push_back(Str[i]);
- }
-
- // Emit the finished record.
- Stream.EmitRecord(Code, Vals, AbbrevToUse);
-}
-
/// WriteTypeTable - Write out the type table for a module.
static void WriteTypeTable(const NaClValueEnumerator &VE,
NaClBitstreamWriter &Stream) {
@@ -228,23 +210,6 @@ static void WriteTypeTable(const NaClValueEnumerator &VE,
if (TYPE_STRUCT_ANON_ABBREV != Stream.EmitAbbrev(Abbv))
llvm_unreachable("Unexpected abbrev ordering!");
- // Abbrev for TYPE_CODE_STRUCT_NAME.
- Abbv = new NaClBitCodeAbbrev();
- Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::TYPE_CODE_STRUCT_NAME));
- Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array));
- Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Char6));
- if (TYPE_STRUCT_NAME_ABBREV != Stream.EmitAbbrev(Abbv))
- llvm_unreachable("Unexpected abbrev ordering!");
-
- // Abbrev for TYPE_CODE_STRUCT_NAMED.
- 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));
- if (TYPE_STRUCT_NAMED_ABBREV != Stream.EmitAbbrev(Abbv))
- llvm_unreachable("Unexpected abbrev ordering!");
-
// Abbrev for TYPE_CODE_ARRAY.
Abbv = new NaClBitCodeAbbrev();
Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::TYPE_CODE_ARRAY));
@@ -309,17 +274,7 @@ static void WriteTypeTable(const NaClValueEnumerator &VE,
Code = naclbitc::TYPE_CODE_STRUCT_ANON;
AbbrevToUse = TYPE_STRUCT_ANON_ABBREV;
} else {
- if (ST->isOpaque()) {
- report_fatal_error("Opaque structs not supported in PNaCl bitcode");
- } else {
- Code = naclbitc::TYPE_CODE_STRUCT_NAMED;
- AbbrevToUse = TYPE_STRUCT_NAMED_ABBREV;
- }
-
- // Emit the name if it is present.
- if (!ST->getName().empty())
- WriteStringRecord(naclbitc::TYPE_CODE_STRUCT_NAME, ST->getName(),
- TYPE_STRUCT_NAME_ABBREV, Stream);
+ report_fatal_error("Non-anon structs not supported in PNaCl bitcode");
}
break;
}