aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
diff options
context:
space:
mode:
authorChristudasan Devadasan <Christudasan.Devadasan@amd.com>2026-01-07 12:51:56 +0000
committerChristudasan Devadasan <Christudasan.Devadasan@amd.com>2026-01-13 03:50:24 +0000
commitc74c50e647a667b34c47e035964c37be2aec5243 (patch)
tree74347c674b84924f7be2918a6fa38566fbfd2ddf /llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
parent4343cad32c10a45defe7feba63df493d3e18d13a (diff)
downloadllvm-users/cdevadas/putback-ProperlyAlighedRC.tar.gz
llvm-users/cdevadas/putback-ProperlyAlighedRC.tar.bz2
llvm-users/cdevadas/putback-ProperlyAlighedRC.zip
[AMDGPU] Put back ProperlyAlighedRC helper functionsusers/cdevadas/putback-ProperlyAlighedRC
Putting back the functions that are recently deleted as they were found unused. They are needed for implementing subreg reload during RA.
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
index 3efdad628881..4777e06a001f 100644
--- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
@@ -3882,6 +3882,28 @@ bool SIRegisterInfo::isProperlyAlignedRC(const TargetRegisterClass &RC) const {
return true;
}
+const TargetRegisterClass *
+SIRegisterInfo::getProperlyAlignedRC(const TargetRegisterClass *RC) const {
+ if (!RC || !ST.needsAlignedVGPRs())
+ return RC;
+
+ unsigned Size = getRegSizeInBits(*RC);
+ if (Size <= 32)
+ return RC;
+
+ if (RC == &AMDGPU::VS_64RegClass)
+ return &AMDGPU::VS_64_Align2RegClass;
+
+ if (isVGPRClass(RC))
+ return getAlignedVGPRClassForBitWidth(Size);
+ if (isAGPRClass(RC))
+ return getAlignedAGPRClassForBitWidth(Size);
+ if (isVectorSuperClass(RC))
+ return getAlignedVectorSuperClassForBitWidth(Size);
+
+ return RC;
+}
+
ArrayRef<MCPhysReg>
SIRegisterInfo::getAllSGPR128(const MachineFunction &MF) const {
return ArrayRef(AMDGPU::SGPR_128RegClass.begin(), ST.getMaxNumSGPRs(MF) / 4);