diff --git a/lib/Target/R600/SIRegisterInfo.cpp b/lib/Target/R600/SIRegisterInfo.cpp index f5307f88038..3715e6a6cf8 100644 --- a/lib/Target/R600/SIRegisterInfo.cpp +++ b/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/lib/Target/R600/SIRegisterInfo.h b/lib/Target/R600/SIRegisterInfo.h index 0ac9f368d95..c7e54dbf0ec 100644 --- a/lib/Target/R600/SIRegisterInfo.h +++ b/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(RCID) == -1) + return false; + + return isSGPRClass(getRegClass(RCID)); + } /// \returns true if this class contains VGPR registers. bool hasVGPRs(const TargetRegisterClass *RC) const;