Saving callee-save registers happens in whole wave mode. Exec is saved
to a free register, which can be reused to save the frame pointer.
Therefore, saving the fp needs to happen after saving csrs.
Details
Details
- Reviewers
arsenm kerbowa - Commits
- rG6b6ae583cf87: [AMDGPU] Save fp/bp after csr saves
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll | ||
---|---|---|
600–601 | This is only with flat-scratch instructions enabled, so there is no SRD and s0–s3 are free |
How is it saved to s0 when that's reserved for the first register in the scratch SRD?