[PATCH] D133301: [ipra] Fix missing save/restore of function return addresses

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 8 08:48:00 PDT 2022


arsenm added a comment.

For AMDGPU we special cased the RA handling in determineCalleeSaves



================
Comment at: llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp:130
     if (CallsUnwindInit || MRI.isPhysRegModified(Reg))
-      SavedRegs.set(Reg);
+      if (!NoCSR || !MRI.isAllocatable(Reg) || RI->isNeededForReturn(Reg, MF))
+        SavedRegs.set(Reg);
----------------
It would be better to handle the list of special case registers rather than iterating through every CSR 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133301/new/

https://reviews.llvm.org/D133301



More information about the llvm-commits mailing list