summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-09-24 02:17:12 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-09-24 02:17:12 +0000
commit2c419874908cada35c2fb973a3ddb897e6862575 (patch)
tree041d3f845cf91dd5ecc54870332ac25ba6683ffc /llvm/lib
parent262407bc2f8ffd08cc0cda2c9bf4d6890142ff05 (diff)
downloadbcm5719-llvm-2c419874908cada35c2fb973a3ddb897e6862575.tar.gz
bcm5719-llvm-2c419874908cada35c2fb973a3ddb897e6862575.zip
R600/SI: Add new helper isSGPRClassID
Move these into header since they are trivial llvm-svn: 218360
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/R600/SIRegisterInfo.cpp7
-rw-r--r--llvm/lib/Target/R600/SIRegisterInfo.h15
2 files changed, 14 insertions, 8 deletions
diff --git a/llvm/lib/Target/R600/SIRegisterInfo.cpp b/llvm/lib/Target/R600/SIRegisterInfo.cpp
index f5307f88038..3715e6a6cf8 100644
--- a/llvm/lib/Target/R600/SIRegisterInfo.cpp
+++ b/llvm/lib/Target/R600/SIRegisterInfo.cpp
@@ -288,13 +288,6 @@ const TargetRegisterClass *SIRegisterInfo::getPhysRegClass(unsigned Reg) const {
return nullptr;
}
-bool SIRegisterInfo::isSGPRClass(const TargetRegisterClass *RC) const {
- if (!RC) {
- return false;
- }
- return !hasVGPRs(RC);
-}
-
bool SIRegisterInfo::hasVGPRs(const TargetRegisterClass *RC) const {
return getCommonSubClass(&AMDGPU::VReg_32RegClass, RC) ||
getCommonSubClass(&AMDGPU::VReg_64RegClass, RC) ||
diff --git a/llvm/lib/Target/R600/SIRegisterInfo.h b/llvm/lib/Target/R600/SIRegisterInfo.h
index 0ac9f368d95..c7e54dbf0ec 100644
--- a/llvm/lib/Target/R600/SIRegisterInfo.h
+++ b/llvm/lib/Target/R600/SIRegisterInfo.h
@@ -46,7 +46,20 @@ struct SIRegisterInfo : public AMDGPURegisterInfo {
const TargetRegisterClass *getPhysRegClass(unsigned Reg) const;
/// \returns true if this class contains only SGPR registers
- bool isSGPRClass(const TargetRegisterClass *RC) const;
+ bool isSGPRClass(const TargetRegisterClass *RC) const {
+ if (!RC)
+ return false;
+
+ return !hasVGPRs(RC);
+ }
+
+ /// \returns true if this class ID contains only SGPR registers
+ bool isSGPRClassID(unsigned RCID) const {
+ if (static_cast<int>(RCID) == -1)
+ return false;
+
+ return isSGPRClass(getRegClass(RCID));
+ }
/// \returns true if this class contains VGPR registers.
bool hasVGPRs(const TargetRegisterClass *RC) const;
OpenPOWER on IntegriCloud