[llvm] Rebased save csr in ra (PR #131845)

Michael Maitland via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 18 10:26:56 PDT 2025


================
@@ -1418,6 +1605,17 @@ void RISCVFrameLowering::determineCalleeSaves(MachineFunction &MF,
     SavedRegs.set(RISCV::X27);
 }
 
+void RISCVFrameLowering::determineCalleeSaves(MachineFunction &MF,
+                                              BitVector &SavedRegs,
+                                              RegScavenger *RS) const {
+  const auto &ST = MF.getSubtarget<RISCVSubtarget>();
+  determineMustCalleeSaves(MF, SavedRegs);
----------------
michaelmaitland wrote:

It looks like we're doing additional logic that did not exist before in the case that `!ST.doCSRSavesInRA()`. All the logic before

```
if (hasFP(MF)) {
    SavedRegs.set(RISCV::X1);
    SavedRegs.set(RISCV::X8);
  }
```

in `determineMustCalleeSaves` is new. Is all of that additional logic desired?

https://github.com/llvm/llvm-project/pull/131845


More information about the llvm-commits mailing list