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

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu May 1 08:15:36 PDT 2025


================
@@ -646,6 +647,41 @@ void MIRPrinter::convert(yaml::MachineFunction &MF,
   }
 }
 
+void MIRPrinter::convert(ModuleSlotTracker &MST,
+                         yaml::SaveRestorePoints &YamlSRPoints,
+                         const llvm::SaveRestorePoints::PointsMap &SRPoints,
+                         const TargetRegisterInfo *TRI) {
+  auto &Points =
+      std::get<std::vector<yaml::SaveRestorePointEntry>>(YamlSRPoints);
+  for (const auto &MBBEntry : SRPoints) {
+    SmallString<16> Str;
+    yaml::SaveRestorePointEntry Entry;
+    raw_svector_ostream StrOS(Str);
+    StrOS << printMBBReference(*MBBEntry.first);
+    Entry.Point = StrOS.str().str();
+    Str.clear();
+    for (auto &Reg : MBBEntry.second) {
+      if (Reg.getReg() != MCRegister::NoRegister) {
----------------
arsenm wrote:

```suggestion
      if (Reg.getReg()) {
```

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


More information about the llvm-commits mailing list