diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-03 20:25:41 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-03 20:25:41 +0000 |
commit | 41c90738e9e7e2111fbc31944b5ce2676830f267 (patch) | |
tree | a196e5951bc603e7bff9108df091b302c821ab8c | |
parent | 03dc1fe9ac5d36c2bf58cd69f18b28f4b58c4b00 (diff) |
"This adds a getName() method to TargetRegisterClass, just like in TargetRegisterInfo.
This makes debugging register classes a bit easier."
Patch by Jakob Stoklund Olesen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68400 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Target/TargetRegisterInfo.h | 10 | ||||
-rw-r--r-- | utils/TableGen/RegisterInfoEmitter.cpp | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/include/llvm/Target/TargetRegisterInfo.h b/include/llvm/Target/TargetRegisterInfo.h index 6de4f73ed0..dd3e056f30 100644 --- a/include/llvm/Target/TargetRegisterInfo.h +++ b/include/llvm/Target/TargetRegisterInfo.h @@ -56,6 +56,7 @@ public: typedef const TargetRegisterClass* const * sc_iterator; private: unsigned ID; + const char *Name; bool isSubClass; const vt_iterator VTs; const sc_iterator SubClasses; @@ -65,19 +66,24 @@ private: const iterator RegsBegin, RegsEnd; public: TargetRegisterClass(unsigned id, + const char *name, const MVT *vts, const TargetRegisterClass * const *subcs, const TargetRegisterClass * const *supcs, unsigned RS, unsigned Al, int CC, iterator RB, iterator RE) - : ID(id), VTs(vts), SubClasses(subcs), SuperClasses(supcs), + : ID(id), Name(name), VTs(vts), SubClasses(subcs), SuperClasses(supcs), RegSize(RS), Alignment(Al), CopyCost(CC), RegsBegin(RB), RegsEnd(RE) {} virtual ~TargetRegisterClass() {} // Allow subclasses /// getID() - Return the register class ID number. /// unsigned getID() const { return ID; } - + + /// getName() - Return the register class name for debugging. + /// + const char *getName() const { return Name; } + /// begin/end - Return all of the registers in this class. /// iterator begin() const { return RegsBegin; } diff --git a/utils/TableGen/RegisterInfoEmitter.cpp b/utils/TableGen/RegisterInfoEmitter.cpp index 67d1cfcf4d..56c002054b 100644 --- a/utils/TableGen/RegisterInfoEmitter.cpp +++ b/utils/TableGen/RegisterInfoEmitter.cpp @@ -319,6 +319,7 @@ void RegisterInfoEmitter::run(std::ostream &OS) { OS << RC.getName() << "Class::" << RC.getName() << "Class() : TargetRegisterClass(" << RC.getName() + "RegClassID" << ", " + << '\"' << RC.getName() << "\", " << RC.getName() + "VTs" << ", " << RC.getName() + "Subclasses" << ", " << RC.getName() + "Superclasses" << ", " |