diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-09-24 02:17:12 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-09-24 02:17:12 +0000 |
| commit | 2c419874908cada35c2fb973a3ddb897e6862575 (patch) | |
| tree | 041d3f845cf91dd5ecc54870332ac25ba6683ffc /llvm/lib | |
| parent | 262407bc2f8ffd08cc0cda2c9bf4d6890142ff05 (diff) | |
| download | bcm5719-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.cpp | 7 | ||||
| -rw-r--r-- | llvm/lib/Target/R600/SIRegisterInfo.h | 15 |
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; |

