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 | 3a88fa0ff86cf9729b2bff530b76eda1b8cd5927 (patch) | |
tree | 278aa22f4f55abdd609b6cfb438a2f0f975ee5cc /llvm | |
parent | eaa52bc29bcde8c668ce791b9d7f14589e022fb7 (diff) | |
download | bcm5719-llvm-3a88fa0ff86cf9729b2bff530b76eda1b8cd5927.tar.gz bcm5719-llvm-3a88fa0ff86cf9729b2bff530b76eda1b8cd5927.zip |
"This adds a getName() method to TargetRegisterClass, just like in TargetRegisterInfo.
This makes debugging register classes a bit easier."
Patch by Jakob Stoklund Olesen!
llvm-svn: 68400
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/Target/TargetRegisterInfo.h | 10 | ||||
-rw-r--r-- | llvm/utils/TableGen/RegisterInfoEmitter.cpp | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/llvm/include/llvm/Target/TargetRegisterInfo.h b/llvm/include/llvm/Target/TargetRegisterInfo.h index 6de4f73ed0b..dd3e056f303 100644 --- a/llvm/include/llvm/Target/TargetRegisterInfo.h +++ b/llvm/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/llvm/utils/TableGen/RegisterInfoEmitter.cpp b/llvm/utils/TableGen/RegisterInfoEmitter.cpp index 67d1cfcf4d3..56c002054bc 100644 --- a/llvm/utils/TableGen/RegisterInfoEmitter.cpp +++ b/llvm/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" << ", " |