[llvm] [llvm] Support multiple save/restore points in mir (PR #119357)

Elizaveta Noskova via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 23 08:34:39 PDT 2025


================
@@ -1087,13 +1130,16 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction &MF,
       --MBBI;
   }
 
-  const auto &CSI = MFI.getCalleeSavedInfo();
+  const auto &CSI = MFI.getCSInfoPerRestore(&MBB);
 
   // Skip to before the restores of scalar callee-saved registers
   // FIXME: assumes exactly one instruction is used to restore each
   // callee-saved register.
   auto FirstScalarCSRRestoreInsn =
       std::next(MBBI, getRVVCalleeSavedInfo(MF, CSI).size());
+  int Distance = getUnmanagedCSI(MF, CSI).size();
+  auto LastFrameDestroy = std::prev(MBBI, Distance);
----------------
enoskova-sc wrote:

no longer actual

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


More information about the llvm-commits mailing list