[all-commits] [llvm/llvm-project] f49d28: [WIP][AMDGPU] Change `CC_AMDGPU_Func` to only use ...

Shilei Tian via All-commits all-commits at lists.llvm.org
Mon Nov 11 10:34:40 PST 2024


  Branch: refs/heads/users/shiltian/keep-two-sgprs-for-csr-spill
  Home:   https://github.com/llvm/llvm-project
  Commit: f49d280977a1bfb463d3ec31c4f088dca1fcdea0
      https://github.com/llvm/llvm-project/commit/f49d280977a1bfb463d3ec31c4f088dca1fcdea0
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-11-11 (Mon, 11 Nov 2024)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst
    M llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td

  Log Message:
  -----------
  [WIP][AMDGPU] Change `CC_AMDGPU_Func` to only use SGPR0 to SGPR27 for `inreg` argument passing

In `emitCSRSpillStores`, a caller-saved SGPR is required to save `exec`, which
limits us to using SGPR0 through SGPR29
Currently, we assume that one is always available; however, this isn’t always
the case, as SGPR0 to SGPR29 are also used for inreg argument passing.

This PR is trying to fix this issue by not using all caller-saved SGPRs for
`inreg` argument passing. This will make sure that we will always have at least
two SGPRs available when it needs CSR spilling.

Fixes #113782.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list