From: Craig Topper Date: Tue, 6 Mar 2012 06:04:39 +0000 (+0000) Subject: Use uint16_t to store indices into string table since C++ only allows 64K string... X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=f0c094b1155e9316e93b28bfbd3153bc99d1ac95;p=oota-llvm.git Use uint16_t to store indices into string table since C++ only allows 64K string literals so the index into the big string can never be larger than that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152105 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/TableGen/AsmWriterEmitter.cpp b/utils/TableGen/AsmWriterEmitter.cpp index c4812dcae6d..59926a32990 100644 --- a/utils/TableGen/AsmWriterEmitter.cpp +++ b/utils/TableGen/AsmWriterEmitter.cpp @@ -463,7 +463,7 @@ static void emitRegisterNameString(raw_ostream &O, StringRef AltName, const std::vector &Registers) { StringToOffsetTable StringTable; - O << " static const unsigned RegAsmOffset" << AltName << "[] = {\n "; + O << " static const uint16_t RegAsmOffset" << AltName << "[] = {\n "; for (unsigned i = 0, e = Registers.size(); i != e; ++i) { const CodeGenRegister &Reg = *Registers[i]; @@ -507,7 +507,7 @@ emitRegisterNameString(raw_ostream &O, StringRef AltName, << " };\n" << "\n"; - O << " const char *AsmStrs" << AltName << " =\n"; + O << " const char *const AsmStrs" << AltName << " =\n"; StringTable.EmitString(O); O << ";\n"; } @@ -541,7 +541,7 @@ void AsmWriterEmitter::EmitGetRegisterName(raw_ostream &O) { emitRegisterNameString(O, "", Registers); if (hasAltNames) { - O << " const unsigned *RegAsmOffset;\n" + O << " const uint16_t *RegAsmOffset;\n" << " const char *AsmStrs;\n" << " switch(AltIdx) {\n" << " default: llvm_unreachable(\"Invalid register alt name index!\");\n"; @@ -583,7 +583,7 @@ void AsmWriterEmitter::EmitGetInstructionName(raw_ostream &O) { << " assert(Opcode < " << NumberedInstructions.size() << " && \"Invalid instruction number!\");\n" << "\n" - << " static const unsigned InstAsmOffset[] = {"; + << " static const uint16_t InstAsmOffset[] = {"; for (unsigned i = 0, e = NumberedInstructions.size(); i != e; ++i) { const CodeGenInstruction &Inst = *NumberedInstructions[i]; @@ -597,7 +597,7 @@ void AsmWriterEmitter::EmitGetInstructionName(raw_ostream &O) { << " };\n" << "\n"; - O << " const char *Strs =\n"; + O << " const char *const Strs =\n"; StringTable.EmitString(O); O << ";\n";