Add TargetRegisterInfo::printReg() to pretty-print registers.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 14 Dec 2010 18:53:39 +0000 (18:53 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 14 Dec 2010 18:53:39 +0000 (18:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121780 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetRegisterInfo.h
lib/Target/TargetRegisterInfo.cpp

index 9caedcb50647021b587e8407aa24f21e50b1a075..5af90fbf8cddbe990d905768456a43b0f4c726ad 100644 (file)
@@ -29,6 +29,7 @@ class MachineFunction;
 class MachineMove;
 class RegScavenger;
 template<class T> class SmallVectorImpl;
+class raw_ostream;
 
 /// TargetRegisterDesc - This record contains all of the information known about
 /// a particular register.  The AliasSet field (if not null) contains a pointer
@@ -321,6 +322,9 @@ public:
     return Reg >= FirstVirtualRegister;
   }
 
+  /// printReg - Print a virtual or physical register on OS.
+  void printReg(unsigned Reg, raw_ostream &OS) const;
+
   /// getMinimalPhysRegClass - Returns the Register Class of a physical
   /// register of the given type, picking the most sub register class of
   /// the right type that contains this physreg.
index 3beddf5fc776d43db0d8a14bca8b28f79bf97881..078320d42f275d8a8f4669d6d12ec9ba8fdccb36 100644 (file)
@@ -17,6 +17,7 @@
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineFrameInfo.h"
 #include "llvm/ADT/BitVector.h"
+#include "llvm/Support/raw_ostream.h"
 
 using namespace llvm;
 
@@ -39,6 +40,13 @@ TargetRegisterInfo::TargetRegisterInfo(const TargetRegisterDesc *D, unsigned NR,
 
 TargetRegisterInfo::~TargetRegisterInfo() {}
 
+void TargetRegisterInfo::printReg(unsigned Reg, raw_ostream &OS) const {
+  if (Reg && isVirtualRegister(Reg))
+    OS << "%reg" << Reg;
+  else
+    OS << '%' << getName(Reg);
+}
+
 /// getMinimalPhysRegClass - Returns the Register Class of a physical
 /// register of the given type, picking the most sub register class of
 /// the right type that contains this physreg.