[llvm] f53b43c - [AMDGPU] Use isLegalMUBUFImmOffset more
Sebastian Neubauer via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 8 05:32:04 PDT 2020
Author: Sebastian Neubauer
Date: 2020-10-08T14:31:44+02:00
New Revision: f53b43c00a0706232f6b94532a34397d8c2aa681
URL: https://github.com/llvm/llvm-project/commit/f53b43c00a0706232f6b94532a34397d8c2aa681
DIFF: https://github.com/llvm/llvm-project/commit/f53b43c00a0706232f6b94532a34397d8c2aa681.diff
LOG: [AMDGPU] Use isLegalMUBUFImmOffset more
Instead of hardcoding isUInt<12>.
Differential Revision: https://reviews.llvm.org/D88961
Added:
Modified:
llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
llvm/lib/Target/AMDGPU/SIISelLowering.cpp
llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp b/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
index c947995fd3ee..666573139c5d 100644
--- a/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
@@ -147,7 +147,7 @@ static void buildPrologSpill(LivePhysRegs &LiveRegs, MachineBasicBlock &MBB,
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 @@ static void buildEpilogReload(LivePhysRegs &LiveRegs, MachineBasicBlock &MBB,
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)
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index 4212f68cd2f1..01d083b26e85 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -1303,7 +1303,7 @@ bool SITargetLowering::isLegalMUBUFAddressingMode(const AddrMode &AM) const {
// assume those use MUBUF instructions. Scratch loads / stores are currently
// implemented as mubuf instructions with offen bit set, so slightly
//
diff erent 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,
diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
index c3ffd5b7d614..4123799bc570 100644
--- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
@@ -441,7 +441,7 @@ bool SIRegisterInfo::needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const {
int64_t FullOffset = Offset + getMUBUFInstrOffset(MI);
- return !isUInt<12>(FullOffset);
+ return !SIInstrInfo::isLegalMUBUFImmOffset(FullOffset);
}
void SIRegisterInfo::materializeFrameBaseRegister(MachineBasicBlock *MBB,
@@ -511,7 +511,8 @@ void SIRegisterInfo::resolveFrameIndex(MachineInstr &MI, Register BaseReg,
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 @@ bool SIRegisterInfo::isFrameOffsetLegal(const MachineInstr *MI,
int64_t NewOffset = Offset + getMUBUFInstrOffset(MI);
- return isUInt<12>(NewOffset);
+ return SIInstrInfo::isLegalMUBUFImmOffset(NewOffset);
}
const TargetRegisterClass *SIRegisterInfo::getPointerRegClass(
@@ -770,7 +771,7 @@ void SIRegisterInfo::buildSpillLoadStore(MachineBasicBlock::iterator MI,
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 @@ void SIRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
= 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;
More information about the llvm-commits
mailing list