Revert r152105: "Use uint16_t to store indices into string table"

This patch limited the concatenated register names to 64K which meant
that the total number of registers was many times less than 64K.

If any compilers actually enforce the 64K limit on string literals, and
it turns out to be a problem, we should fix that problem by not using
long string literals.

llvm-svn: 152816
This commit is contained in:
Jakob Stoklund Olesen 2012-03-15 18:05:54 +00:00
parent 327d2f9da5
commit e99d26c68b
1 changed files with 5 additions and 5 deletions

View File

@ -464,7 +464,7 @@ static void
emitRegisterNameString(raw_ostream &O, StringRef AltName, emitRegisterNameString(raw_ostream &O, StringRef AltName,
const std::vector<CodeGenRegister*> &Registers) { const std::vector<CodeGenRegister*> &Registers) {
StringToOffsetTable StringTable; StringToOffsetTable StringTable;
O << " static const uint16_t RegAsmOffset" << AltName << "[] = {\n "; O << " static const unsigned RegAsmOffset" << AltName << "[] = {\n ";
for (unsigned i = 0, e = Registers.size(); i != e; ++i) { for (unsigned i = 0, e = Registers.size(); i != e; ++i) {
const CodeGenRegister &Reg = *Registers[i]; const CodeGenRegister &Reg = *Registers[i];
@ -510,7 +510,7 @@ emitRegisterNameString(raw_ostream &O, StringRef AltName,
<< " };\n" << " };\n"
<< "\n"; << "\n";
O << " const char *const AsmStrs" << AltName << " =\n"; O << " const char *AsmStrs" << AltName << " =\n";
StringTable.EmitString(O); StringTable.EmitString(O);
O << ";\n"; O << ";\n";
} }
@ -544,7 +544,7 @@ void AsmWriterEmitter::EmitGetRegisterName(raw_ostream &O) {
emitRegisterNameString(O, "", Registers); emitRegisterNameString(O, "", Registers);
if (hasAltNames) { if (hasAltNames) {
O << " const uint16_t *RegAsmOffset;\n" O << " const unsigned *RegAsmOffset;\n"
<< " const char *AsmStrs;\n" << " const char *AsmStrs;\n"
<< " switch(AltIdx) {\n" << " switch(AltIdx) {\n"
<< " default: llvm_unreachable(\"Invalid register alt name index!\");\n"; << " default: llvm_unreachable(\"Invalid register alt name index!\");\n";
@ -586,7 +586,7 @@ void AsmWriterEmitter::EmitGetInstructionName(raw_ostream &O) {
<< " assert(Opcode < " << NumberedInstructions.size() << " assert(Opcode < " << NumberedInstructions.size()
<< " && \"Invalid instruction number!\");\n" << " && \"Invalid instruction number!\");\n"
<< "\n" << "\n"
<< " static const uint16_t InstAsmOffset[] = {"; << " static const unsigned InstAsmOffset[] = {";
for (unsigned i = 0, e = NumberedInstructions.size(); i != e; ++i) { for (unsigned i = 0, e = NumberedInstructions.size(); i != e; ++i) {
const CodeGenInstruction &Inst = *NumberedInstructions[i]; const CodeGenInstruction &Inst = *NumberedInstructions[i];
@ -602,7 +602,7 @@ void AsmWriterEmitter::EmitGetInstructionName(raw_ostream &O) {
<< " };\n" << " };\n"
<< "\n"; << "\n";
O << " const char *const Strs =\n"; O << " const char *Strs =\n";
StringTable.EmitString(O); StringTable.EmitString(O);
O << ";\n"; O << ";\n";