[llvm] [ARM] Refactor ARMFrameLowering (NFC) (PR #110283)

Oliver Stannard via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 30 01:34:20 PDT 2024


================
@@ -81,6 +81,32 @@ class ARMSubtarget : public ARMGenSubtargetInfo {
     SingleIssuePlusExtras,
   };
 
+  /// How the push and pop instructions of callee saved general-purpose
+  /// registers should be split.
+  enum PushPopSplitVariation {
+    /// All GPRs can be pushed in a single instruction.
+    /// push {r0-r12, lr}
+    /// vpush {d8-d15}
+    NoSplit,
+
+    /// R7 and LR must be adjacent, because R7 is the frame pointer, and must
+    /// point to a frame record consisting of the previous frame pointer and the
+    /// retun address.
+    /// push {r0-r7, lr}
+    /// push {r8-r12}
+    /// vpush {d8-d15}
+    SplitR7,
+
+    /// When the stack frame size if now known (because of variable-sized
----------------
ostannard wrote:

Done

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


More information about the llvm-commits mailing list