[llvm-commits] CVS: llvm/utils/TableGen/RegisterInfoEmitter.cpp

Chris Lattner lattner at cs.uiuc.edu
Mon Sep 13 21:17:13 PDT 2004



Changes in directory llvm/utils/TableGen:

RegisterInfoEmitter.cpp updated: 1.25 -> 1.26
---
Log message:

Revamp the Register class, and allow the use of the RegisterGroup class to
specify aliases directly in register definitions.

Patch contributed by Jason Eckhardt!


---
Diffs of the changes:  (+5 -8)

Index: llvm/utils/TableGen/RegisterInfoEmitter.cpp
diff -u llvm/utils/TableGen/RegisterInfoEmitter.cpp:1.25 llvm/utils/TableGen/RegisterInfoEmitter.cpp:1.26
--- llvm/utils/TableGen/RegisterInfoEmitter.cpp:1.25	Wed Sep  1 17:55:40 2004
+++ llvm/utils/TableGen/RegisterInfoEmitter.cpp	Mon Sep 13 23:17:02 2004
@@ -139,15 +139,12 @@
   OS << "  };\n";
 
   // Emit register class aliases...
-  std::vector<Record*> RegisterAliasesRecs =
-    Records.getAllDerivedDefinitions("RegisterAliases");
   std::map<Record*, std::set<Record*> > RegisterAliases;
+  const std::vector<CodeGenRegister> &Regs = Target.getRegisters();
 
-  for (unsigned i = 0, e = RegisterAliasesRecs.size(); i != e; ++i) {
-    Record *AS = RegisterAliasesRecs[i];
-    Record *R = AS->getValueAsDef("Reg");
-    ListInit *LI = AS->getValueAsListInit("Aliases");
-
+  for (unsigned i = 0, e = Regs.size(); i != e; ++i) {
+    Record *R = Regs[i].TheDef;
+    ListInit *LI = Regs[i].TheDef->getValueAsListInit("Aliases");
     // Add information that R aliases all of the elements in the list... and
     // that everything in the list aliases R.
     for (unsigned j = 0, e = LI->getSize(); j != e; ++j) {
@@ -165,7 +162,7 @@
                   << " specified multiple times!\n";
       RegisterAliases[Reg->getDef()].insert(R);
     }
-  }
+  } 
 
   if (!RegisterAliases.empty())
     OS << "\n\n  // Register Alias Sets...\n";






More information about the llvm-commits mailing list