[PATCH] D143759: [AMDGPU] Implement whole wave register spill
Matt Arsenault via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 22 10:49:00 PDT 2023
arsenm added a comment.
lgtm besides a few nits
================
Comment at: llvm/include/llvm/CodeGen/MachineRegisterInfo.h:60
virtual void MRI_NoteNewVirtualRegister(Register Reg) = 0;
- virtual void MRI_NotecloneVirtualRegister(Register NewReg,
Register SrcReg) {
----------------
Didn't realize this already existed
================
Comment at: llvm/lib/Target/AMDGPU/SIInstrInfo.cpp:4985
+ const DebugLoc &DL, Register Reg) const {
+ const GCNSubtarget &ST = MF.getSubtarget<GCNSubtarget>();
+ const SIInstrInfo *TII = ST.getInstrInfo();
----------------
ST is already a member
================
Comment at: llvm/lib/Target/AMDGPU/SIInstrInfo.cpp:4986
+ const GCNSubtarget &ST = MF.getSubtarget<GCNSubtarget>();
+ const SIInstrInfo *TII = ST.getInstrInfo();
+ unsigned ExecMov = ST.isWave32() ? AMDGPU::S_MOV_B32 : AMDGPU::S_MOV_B64;
----------------
This is just this already, you don't need to query it
================
Comment at: llvm/lib/Target/AMDGPU/SIInstrInfo.cpp:4987-4988
+ const SIInstrInfo *TII = ST.getInstrInfo();
+ unsigned ExecMov = ST.isWave32() ? AMDGPU::S_MOV_B32 : AMDGPU::S_MOV_B64;
+ MCRegister Exec = ST.isWave32() ? AMDGPU::EXEC_LO : AMDGPU::EXEC;
+ BuildMI(MBB, MBBI, DL, TII->get(ExecMov), Exec).addReg(Reg, RegState::Kill);
----------------
================
Comment at: llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp:2218-2219
+ if (IsWWMRegSpill)
+ TII->insertScratchExecCopy(*MF, *MBB, MI, DL, MFI->getSGPRForEXECCopy(),
+ RS->isRegUsed(AMDGPU::SCC));
buildSpillLoadStore(
----------------
Indentation's off
================
Comment at: llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp:2225
+ if (IsWWMRegSpill)
+ TII->restoreExec(*MF, *MBB, MI, DL, MFI->getSGPRForEXECCopy());
+
----------------
Indentation's off
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D143759/new/
https://reviews.llvm.org/D143759
More information about the llvm-commits
mailing list