summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2012-12-19 23:38:46 +0000
committerJim Grosbach <grosbach@apple.com>2012-12-19 23:38:46 +0000
commit74c6944a3154ad4d12aa37d5ff4af2f0113ca1cb (patch)
treee76746d6edf6158d697de977f1eb76bb3ed539b2
parent98e0b8e273a7ca1df3423ab4272571f9bd33c778 (diff)
downloadbcm5719-llvm-74c6944a3154ad4d12aa37d5ff4af2f0113ca1cb.tar.gz
bcm5719-llvm-74c6944a3154ad4d12aa37d5ff4af2f0113ca1cb.zip
Move isSubRegister() and isSuperRegister to MCRegisterInfo.
These were defined on TargetRegisterInfo, but they don't use any information that's not available in MCRegisterInfo, so sink them down to be available at the MC layer. llvm-svn: 170608
-rw-r--r--llvm/include/llvm/MC/MCRegisterInfo.h17
-rw-r--r--llvm/include/llvm/Target/TargetRegisterInfo.h15
2 files changed, 17 insertions, 15 deletions
diff --git a/llvm/include/llvm/MC/MCRegisterInfo.h b/llvm/include/llvm/MC/MCRegisterInfo.h
index 7118127e5f9..9310b466f41 100644
--- a/llvm/include/llvm/MC/MCRegisterInfo.h
+++ b/llvm/include/llvm/MC/MCRegisterInfo.h
@@ -386,6 +386,14 @@ public:
return RegEncodingTable[RegNo];
}
+ /// Returns true if regB is a sub-register of regA.
+ bool isSubRegister(unsigned regA, unsigned regB) const {
+ return isSuperRegister(regB, regA);
+ }
+
+ /// Returns true if regB is a super-register of regA.
+ bool isSuperRegister(unsigned RegA, unsigned RegB) const;
+
};
//===----------------------------------------------------------------------===//
@@ -426,6 +434,15 @@ public:
}
};
+// Definition for isSuperRegister. Put it down here since it needs the
+// iterator defined above in addition to the MCRegisterInfo class itself.
+inline bool MCRegisterInfo::isSuperRegister(unsigned RegA, unsigned RegB) const{
+ for (MCSuperRegIterator I(RegA, this); I.isValid(); ++I)
+ if (*I == RegB)
+ return true;
+ return false;
+}
+
//===----------------------------------------------------------------------===//
// Register Units
//===----------------------------------------------------------------------===//
diff --git a/llvm/include/llvm/Target/TargetRegisterInfo.h b/llvm/include/llvm/Target/TargetRegisterInfo.h
index 40a7505f678..1ccbc216d81 100644
--- a/llvm/include/llvm/Target/TargetRegisterInfo.h
+++ b/llvm/include/llvm/Target/TargetRegisterInfo.h
@@ -388,21 +388,6 @@ public:
return false;
}
- /// isSubRegister - Returns true if regB is a sub-register of regA.
- ///
- bool isSubRegister(unsigned regA, unsigned regB) const {
- return isSuperRegister(regB, regA);
- }
-
- /// isSuperRegister - Returns true if regB is a super-register of regA.
- ///
- bool isSuperRegister(unsigned RegA, unsigned RegB) const {
- for (MCSuperRegIterator I(RegA, this); I.isValid(); ++I)
- if (*I == RegB)
- return true;
- return false;
- }
-
/// getCalleeSavedRegs - Return a null-terminated list of all of the
/// callee saved registers on this target. The register should be in the
/// order of desired callee-save stack frame offset. The first register is
OpenPOWER on IntegriCloud