[PATCH] D88961: [AMDGPU] Use isLegalMUBUFImmOffset more
Sebastian Neubauer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 7 05:49:22 PDT 2020
Flakebi created this revision.
Flakebi added reviewers: arsenm, rampitec.
Herald added subscribers: llvm-commits, kerbowa, hiraditya, t-tye, tpr, dstuttard, yaxunl, nhaehnle, jvesely, kzhuravl.
Herald added a project: LLVM.
Flakebi requested review of this revision.
Herald added a subscriber: wdng.
Instead of hardcoding isUInt<12>.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D88961
Files:
llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
llvm/lib/Target/AMDGPU/SIISelLowering.cpp
llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
Index: llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+++ llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
@@ -441,7 +441,7 @@
int64_t FullOffset = Offset + getMUBUFInstrOffset(MI);
- return !isUInt<12>(FullOffset);
+ return !SIInstrInfo::isLegalMUBUFImmOffset(FullOffset);
}
void SIRegisterInfo::materializeFrameBaseRegister(MachineBasicBlock *MBB,
@@ -511,7 +511,8 @@
MachineOperand *OffsetOp = TII->getNamedOperand(MI, AMDGPU::OpName::offset);
int64_t NewOffset = OffsetOp->getImm() + Offset;
- assert(isUInt<12>(NewOffset) && "offset should be legal");
+ assert(SIInstrInfo::isLegalMUBUFImmOffset(NewOffset) &&
+ "offset should be legal");
FIOp->ChangeToRegister(BaseReg, false);
OffsetOp->setImm(NewOffset);
@@ -529,7 +530,7 @@
int64_t NewOffset = Offset + getMUBUFInstrOffset(MI);
- return isUInt<12>(NewOffset);
+ return SIInstrInfo::isLegalMUBUFImmOffset(NewOffset);
}
const TargetRegisterClass *SIRegisterInfo::getPointerRegClass(
@@ -770,7 +771,7 @@
assert((Offset % EltSize) == 0 && "unexpected VGPR spill offset");
- if (!isUInt<12>(Offset + Size - EltSize)) {
+ if (!SIInstrInfo::isLegalMUBUFImmOffset(Offset + Size - EltSize)) {
SOffset = MCRegister();
// We currently only support spilling VGPRs to EltSize boundaries, meaning
@@ -1472,7 +1473,7 @@
= TII->getNamedOperand(*MI, AMDGPU::OpName::offset)->getImm();
int64_t NewOffset = OldImm + Offset;
- if (isUInt<12>(NewOffset) &&
+ if (SIInstrInfo::isLegalMUBUFImmOffset(NewOffset) &&
buildMUBUFOffsetLoadStore(ST, FrameInfo, MI, Index, NewOffset)) {
MI->eraseFromParent();
return;
Index: llvm/lib/Target/AMDGPU/SIISelLowering.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -1303,7 +1303,7 @@
// assume those use MUBUF instructions. Scratch loads / stores are currently
// implemented as mubuf instructions with offen bit set, so slightly
// different than the normal addr64.
- if (!isUInt<12>(AM.BaseOffs))
+ if (!SIInstrInfo::isLegalMUBUFImmOffset(AM.BaseOffs))
return false;
// FIXME: Since we can split immediate into soffset and immediate offset,
Index: llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+++ llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
@@ -147,7 +147,7 @@
MachinePointerInfo::getFixedStack(*MF, FI), MachineMemOperand::MOStore, 4,
MFI.getObjectAlign(FI));
- if (isUInt<12>(Offset)) {
+ if (SIInstrInfo::isLegalMUBUFImmOffset(Offset)) {
BuildMI(MBB, I, DebugLoc(), TII->get(AMDGPU::BUFFER_STORE_DWORD_OFFSET))
.addReg(SpillReg, RegState::Kill)
.addReg(ScratchRsrcReg)
@@ -200,7 +200,7 @@
MachinePointerInfo::getFixedStack(*MF, FI), MachineMemOperand::MOLoad, 4,
MFI.getObjectAlign(FI));
- if (isUInt<12>(Offset)) {
+ if (SIInstrInfo::isLegalMUBUFImmOffset(Offset)) {
BuildMI(MBB, I, DebugLoc(),
TII->get(AMDGPU::BUFFER_LOAD_DWORD_OFFSET), SpillReg)
.addReg(ScratchRsrcReg)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88961.296652.patch
Type: text/x-patch
Size: 3332 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201007/e0b40ee3/attachment.bin>
More information about the llvm-commits
mailing list