[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


================
@@ -631,6 +631,79 @@ LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::yaml::CalledGlobal)
 namespace llvm {
 namespace yaml {
 
+// Struct representing one save/restore point in the
+// 'savePoint' / 'restorePoint' list. One point consist of machine basic block
+// name and list of saved/restored in this basic block registers. There are
+// two forms of Save/Restore point representation:
+// 1. Without explicit register enumeration:
+//      savePoint:       '%bb.n'
+//      restorePoint:    '%bb.n'
+// supported for backward compatibility (in this case we assume that all
+// CalleeSavedRegisters are splilled/restored in these points)
----------------
arsenm wrote:

We ought to make callee saved registers an explicit mask operand on return instructions 

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


More information about the llvm-commits mailing list