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

Elizaveta Noskova via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 17 06:53:20 PDT 2025


================
@@ -820,10 +879,38 @@ class MachineFrameInfo {
 
   void setCalleeSavedInfoValid(bool v) { CSIValid = v; }
 
-  MachineBasicBlock *getSavePoint() const { return Save; }
-  void setSavePoint(MachineBasicBlock *NewSave) { Save = NewSave; }
-  MachineBasicBlock *getRestorePoint() const { return Restore; }
-  void setRestorePoint(MachineBasicBlock *NewRestore) { Restore = NewRestore; }
+  const SaveRestorePoints::PointsMap &getRestorePoints() const {
+    return RestorePoints.get();
+  }
+
+  const SaveRestorePoints::PointsMap &getSavePoints() const {
+    return SavePoints.get();
+  }
+
+  void setSavePoints(SaveRestorePoints::PointsMap NewSavePoints) {
+    SavePoints.set(std::move(NewSavePoints));
+  }
+
+  void setRestorePoints(SaveRestorePoints::PointsMap NewRestorePoints) {
+    RestorePoints.set(std::move(NewRestorePoints));
+  }
+
+  static const SaveRestorePoints::PointsMap constructSaveRestorePoints(
----------------
enoskova-sc wrote:

addressed

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


More information about the llvm-commits mailing list