Shrink and reorder fields in MCRegisterClass to reduce size of static data.
authorCraig Topper <craig.topper@gmail.com>
Mon, 5 Mar 2012 08:33:33 +0000 (08:33 +0000)
committerCraig Topper <craig.topper@gmail.com>
Mon, 5 Mar 2012 08:33:33 +0000 (08:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152019 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCRegisterInfo.h
utils/TableGen/RegisterInfoEmitter.cpp

index 2d9a4594c666a44f36909d9bb7fa71352bb025da..ddf355e4b491140543a42ea535960ba819bdbef3 100644 (file)
@@ -28,15 +28,15 @@ public:
   typedef const uint16_t* iterator;
   typedef const uint16_t* const_iterator;
 
-  const unsigned ID;
   const char *Name;
-  const unsigned RegSize, Alignment; // Size & Alignment of register in bytes
-  const int CopyCost;
-  const bool Allocatable;
   const iterator RegsBegin;
   const uint8_t *const RegSet;
-  const unsigned RegsSize;
-  const unsigned RegSetSize;
+  const uint8_t RegsSize;
+  const uint8_t RegSetSize;
+  const uint8_t ID;
+  const uint8_t RegSize, Alignment; // Size & Alignment of register in bytes
+  const int8_t CopyCost;
+  const bool Allocatable;
 
   /// getID() - Return the register class ID number.
   ///
index e01473bb60c95435b487221bc83ea86ec95082e1..c949a25e38a7383b69d184271ab61b715cf7bd36 100644 (file)
@@ -399,14 +399,14 @@ RegisterInfoEmitter::runMCDesc(raw_ostream &OS, CodeGenTarget &Target,
 
   for (unsigned rc = 0, e = RegisterClasses.size(); rc != e; ++rc) {
     const CodeGenRegisterClass &RC = *RegisterClasses[rc];
-    OS << "  { " << RC.getQualifiedName() + "RegClassID" << ", "
-       << '\"' << RC.getName() << "\", "
+    OS << "  { " << '\"' << RC.getName() << "\", "
+       << RC.getName() << ", " << RC.getName() << "Bits, "
+       << RC.getOrder().size() << ", sizeof(" << RC.getName() << "Bits), "
+       << RC.getQualifiedName() + "RegClassID" << ", "
        << RC.SpillSize/8 << ", "
        << RC.SpillAlignment/8 << ", "
        << RC.CopyCost << ", "
-       << RC.Allocatable << ", "
-       << RC.getName() << ", " << RC.getName() << "Bits, "
-       << RC.getOrder().size() << ", sizeof(" << RC.getName() << "Bits) },\n";
+       << RC.Allocatable << " },\n";
   }
 
   OS << "};\n\n";