diff options
author | Mark Seaborn <mseaborn@chromium.org> | 2013-08-23 16:39:55 -0700 |
---|---|---|
committer | Mark Seaborn <mseaborn@chromium.org> | 2013-08-23 16:39:55 -0700 |
commit | e2a4edb5a4bf44481c099a11f95e0d7ea8b46b61 (patch) | |
tree | 06b582772a30ed362f4195698e59c377d5e802c4 /lib/Bitcode | |
parent | 9166d2f605b3f02b2f6c7e9477fefd3cdbf8be08 (diff) |
PNaCl bitcode: Remove support for string constant values
These are no longer used since we introduced the GLOBALVAR block for
PNaCl, in which global variable initialisers are flattened.
BUG=https://code.google.com/p/nativeclient/issues/detail?id=3590
TEST=PNaCl toolchain trybots
Review URL: https://codereview.chromium.org/22903045
Diffstat (limited to 'lib/Bitcode')
-rw-r--r-- | lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp | 10 | ||||
-rw-r--r-- | lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp | 62 |
2 files changed, 1 insertions, 71 deletions
diff --git a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp index 1bbbf4516a..c1fbe08edb 100644 --- a/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp +++ b/lib/Bitcode/NaCl/Reader/NaClBitcodeReader.cpp @@ -940,16 +940,6 @@ bool NaClBitcodeReader::ParseConstants() { } break; } - case naclbitc::CST_CODE_STRING: // STRING: [values] - case naclbitc::CST_CODE_CSTRING: { // CSTRING: [values] - if (Record.empty()) - return Error("Invalid CST_STRING record"); - - SmallString<16> Elts(Record.begin(), Record.end()); - V = ConstantDataArray::getString(Context, Elts, - BitCode == naclbitc::CST_CODE_CSTRING); - break; - } case naclbitc::CST_CODE_DATA: {// DATA: [n x value] if (Record.empty()) return Error("Invalid CST_DATA record"); diff --git a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp index 047e0c84db..3102ec3301 100644 --- a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp +++ b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp @@ -68,10 +68,7 @@ enum { // CONSTANTS_BLOCK abbrev id's when global (extends list above). CST_CONSTANTS_AGGREGATE_ABBREV = CONSTANTS_MAX_ABBREV+1, - CST_CONSTANTS_STRING_ABBREV, - CST_CONSTANTS_CSTRING_7_ABBREV, - CST_CONSTANTS_CSTRING_6_ABBREV, - CST_CONSTANTS_MAX_ABBREV = CST_CONSTANTS_CSTRING_6_ABBREV, + CST_CONSTANTS_MAX_ABBREV = CST_CONSTANTS_AGGREGATE_ABBREV, // GLOBALVAR BLOCK abbrev id's. GLOBALVAR_VAR_ABBREV = naclbitc::FIRST_APPLICATION_ABBREV, @@ -604,9 +601,6 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal, : CONSTANTS_MAX_ABBREV)); unsigned AggregateAbbrev = 0; - unsigned String8Abbrev = 0; - unsigned CString7Abbrev = 0; - unsigned CString6Abbrev = 0; // If this is a constant pool for the module, emit module-specific abbrevs. // Note: These abbreviations are size specific (to LastVal), and hence, // can be more efficient if LastVal is known (rather then generating @@ -622,33 +616,6 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal, if (CST_CONSTANTS_AGGREGATE_ABBREV != AggregateAbbrev) llvm_unreachable("Unexpected abbrev ordering!"); - // Abbrev for CST_CODE_STRING. - 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); - if (CST_CONSTANTS_STRING_ABBREV != String8Abbrev) - llvm_unreachable("Unexpected abbrev ordering!"); - - // Abbrev for CST_CODE_CSTRING. - 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); - if (CST_CONSTANTS_CSTRING_7_ABBREV != CString7Abbrev) - llvm_unreachable("Unexpected abbrev ordering!"); - - // Abbrev for CST_CODE_CSTRING. - Abbv = new NaClBitCodeAbbrev(); - Abbv->Add(NaClBitCodeAbbrevOp(naclbitc::CST_CODE_CSTRING)); - Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Array)); - Abbv->Add(NaClBitCodeAbbrevOp(NaClBitCodeAbbrevOp::Char6)); - CString6Abbrev = Stream.EmitAbbrev(Abbv); - if (CST_CONSTANTS_CSTRING_6_ABBREV != CString6Abbrev) - llvm_unreachable("Unexpected abbrev ordering!"); - DEBUG(dbgs() << "-- emitted abbreviations\n"); } @@ -700,33 +667,6 @@ static void WriteConstants(unsigned FirstVal, unsigned LastVal, } else { assert (0 && "Unknown FP type!"); } - } else if (isa<ConstantDataSequential>(C) && - cast<ConstantDataSequential>(C)->isString()) { - const ConstantDataSequential *Str = cast<ConstantDataSequential>(C); - // Emit constant strings specially. - unsigned NumElts = Str->getNumElements(); - // If this is a null-terminated string, use the denser CSTRING encoding. - if (Str->isCString()) { - Code = naclbitc::CST_CODE_CSTRING; - --NumElts; // Don't encode the null, which isn't allowed by char6. - } else { - Code = naclbitc::CST_CODE_STRING; - AbbrevToUse = String8Abbrev; - } - bool isCStr7 = Code == naclbitc::CST_CODE_CSTRING; - bool isCStrChar6 = Code == naclbitc::CST_CODE_CSTRING; - for (unsigned i = 0; i != NumElts; ++i) { - unsigned char V = Str->getElementAsInteger(i); - Record.push_back(V); - isCStr7 &= (V & 128) == 0; - if (isCStrChar6) - isCStrChar6 = NaClBitCodeAbbrevOp::isChar6(V); - } - - if (isCStrChar6) - AbbrevToUse = CString6Abbrev; - else if (isCStr7) - AbbrevToUse = CString7Abbrev; } else if (const ConstantDataSequential *CDS = dyn_cast<ConstantDataSequential>(C)) { Code = naclbitc::CST_CODE_DATA; |