Fix VirtRegMap to use TRI::index2VirtReg and TRI::virtReg2Index instead of
[oota-llvm.git] / include / llvm / Target / TargetRegisterInfo.h
index d26c67b4d3146f1c0551b38183233d962a65eed6..2a3b8b6184e2f5cdf574928bc5e89c74ad36dc35 100644 (file)
@@ -321,6 +321,12 @@ public:
     return Reg >= FirstVirtualRegister;
   }
 
+  /// virtReg2Index - Convert a virtual register number to a 0-based index.
+  /// The first virtual register in a function will get the index 0.
+  static unsigned virtReg2Index(unsigned Reg) {
+    return Reg - FirstVirtualRegister;
+  }
+
   /// index2VirtReg - Convert a 0-based index to a virtual register number.
   /// This is the inverse operation of VirtReg2IndexFunctor below.
   static unsigned index2VirtReg(unsigned Index) {
@@ -743,7 +749,7 @@ public:
 // This is useful when building IndexedMaps keyed on virtual registers
 struct VirtReg2IndexFunctor : public std::unary_function<unsigned, unsigned> {
   unsigned operator()(unsigned Reg) const {
-    return Reg - TargetRegisterInfo::FirstVirtualRegister;
+    return TargetRegisterInfo::virtReg2Index(Reg);
   }
 };