[llvm] [AMDGPU] ISel & PEI for whole wave functions (PR #145858)
Shilei Tian via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 18 06:40:17 PDT 2025
================
@@ -374,15 +374,21 @@ bool AMDGPUCallLowering::lowerReturn(MachineIRBuilder &B, const Value *Val,
return true;
}
- unsigned ReturnOpc =
- IsShader ? AMDGPU::SI_RETURN_TO_EPILOG : AMDGPU::SI_RETURN;
+ const bool IsWholeWave = MFI->isWholeWaveFunction();
+ unsigned ReturnOpc = IsWholeWave ? AMDGPU::G_AMDGPU_WHOLE_WAVE_FUNC_RETURN
+ : IsShader ? AMDGPU::SI_RETURN_TO_EPILOG
+ : AMDGPU::SI_RETURN;
auto Ret = B.buildInstrNoInsert(ReturnOpc);
if (!FLI.CanLowerReturn)
insertSRetStores(B, Val->getType(), VRegs, FLI.DemoteRegister);
else if (!lowerReturnVal(B, Val, VRegs, Ret))
return false;
+ if (IsWholeWave) {
+ addOriginalExecToReturn(B.getMF(), Ret);
+ }
----------------
shiltian wrote:
```suggestion
if (IsWholeWave)
addOriginalExecToReturn(B.getMF(), Ret);
```
https://github.com/llvm/llvm-project/pull/145858
More information about the llvm-commits
mailing list