[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