@@ -955,16 +955,6 @@ void RegisterInfoEmitter::runMCDesc(raw_ostream &OS, CodeGenTarget &Target,
955955  SubRegIdxSeqs.emit (OS, printSubRegIndex);
956956  OS << " };\n\n "  ;
957957
958-   //  Emit the table of sub-register index sizes.
959-   OS << " extern const MCRegisterInfo::SubRegCoveredBits "   << TargetName
960-      << " SubRegIdxRanges[] = {\n "  ;
961-   OS << "   { "   << (uint16_t )-1  << " , "   << (uint16_t )-1  << "  },\n "  ;
962-   for  (const  auto  &Idx : SubRegIndices) {
963-     OS << "   { "   << Idx.Offset  << " , "   << Idx.Size  << "  },\t // " 
964-        << Idx.getName () << " \n "  ;
965-   }
966-   OS << " };\n\n "  ;
967- 
968958  //  Emit the string table.
969959  RegStrings.layout ();
970960  RegStrings.emitStringLiteralDef (OS, Twine (" extern const char "  ) + TargetName +
@@ -1101,8 +1091,7 @@ void RegisterInfoEmitter::runMCDesc(raw_ostream &OS, CodeGenTarget &Target,
11011091     << TargetName << " LaneMaskLists, "   << TargetName << " RegStrings, " 
11021092     << TargetName << " RegClassStrings, "   << TargetName << " SubRegIdxLists, " 
11031093     << (std::distance (SubRegIndices.begin (), SubRegIndices.end ()) + 1 ) << " ,\n " 
1104-      << TargetName << " SubRegIdxRanges, "   << TargetName
1105-      << " RegEncodingTable);\n\n "  ;
1094+      << TargetName << " RegEncodingTable);\n\n "  ;
11061095
11071096  EmitRegMapping (OS, Regs, false );
11081097
@@ -1253,6 +1242,16 @@ void RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
12531242  }
12541243  OS << " \"  };\n\n "  ;
12551244
1245+   //  Emit the table of sub-register index sizes.
1246+   OS << " static const TargetRegisterInfo::SubRegCoveredBits " 
1247+         " SubRegIdxRangeTable[] = {\n "  ;
1248+   OS << "   { "   << (uint16_t )-1  << " , "   << (uint16_t )-1  << "  },\n "  ;
1249+   for  (const  auto  &Idx : SubRegIndices) {
1250+     OS << "   { "   << Idx.Offset  << " , "   << Idx.Size  << "  },\t // " 
1251+        << Idx.getName () << " \n "  ;
1252+   }
1253+   OS << " };\n\n "  ;
1254+ 
12561255  //  Emit SubRegIndex lane masks, including 0.
12571256  OS << " \n static const LaneBitmask SubRegIndexLaneMaskTable[] = {\n   " 
12581257        " LaneBitmask::getAll(),\n "  ;
@@ -1634,8 +1633,6 @@ void RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
16341633  OS << " extern const char "   << TargetName << " RegClassStrings[];\n "  ;
16351634  OS << " extern const MCPhysReg "   << TargetName << " RegUnitRoots[][2];\n "  ;
16361635  OS << " extern const uint16_t "   << TargetName << " SubRegIdxLists[];\n "  ;
1637-   OS << " extern const MCRegisterInfo::SubRegCoveredBits "   << TargetName
1638-      << " SubRegIdxRanges[];\n "  ;
16391636  OS << " extern const uint16_t "   << TargetName << " RegEncodingTable[];\n "  ;
16401637
16411638  EmitRegMappingTables (OS, Regs, true );
@@ -1646,7 +1643,8 @@ void RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
16461643        "       unsigned PC, unsigned HwMode)\n " 
16471644     << "   : TargetRegisterInfo(&"   << TargetName << " RegInfoDesc" 
16481645     << " , RegisterClasses, RegisterClasses+"   << RegisterClasses.size () << " ,\n " 
1649-      << "              SubRegIndexNameTable, SubRegIndexLaneMaskTable,\n " 
1646+      << "              SubRegIndexNameTable, SubRegIdxRangeTable, " 
1647+         " SubRegIndexLaneMaskTable,\n " 
16501648     << "              "  ;
16511649  printMask (OS, RegBank.CoveringLanes );
16521650  OS << " , RegClassInfos, VTLists, HwMode) {\n " 
@@ -1661,7 +1659,6 @@ void RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
16611659     << "                      "   << TargetName << " RegClassStrings,\n " 
16621660     << "                      "   << TargetName << " SubRegIdxLists,\n " 
16631661     << "                      "   << SubRegIndicesSize + 1  << " ,\n " 
1664-      << "                      "   << TargetName << " SubRegIdxRanges,\n " 
16651662     << "                      "   << TargetName << " RegEncodingTable);\n\n "  ;
16661663
16671664  EmitRegMapping (OS, Regs, true );
0 commit comments