summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-04-03 20:25:41 +0000
committerChris Lattner <sabre@nondot.org>2009-04-03 20:25:41 +0000
commit3a88fa0ff86cf9729b2bff530b76eda1b8cd5927 (patch)
tree278aa22f4f55abdd609b6cfb438a2f0f975ee5cc /llvm
parenteaa52bc29bcde8c668ce791b9d7f14589e022fb7 (diff)
downloadbcm5719-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.h10
-rw-r--r--llvm/utils/TableGen/RegisterInfoEmitter.cpp1
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" << ", "
OpenPOWER on IntegriCloud