[llvm] [AArch64] Ensure the LR is preserved if we must call __arm_get_current_vg (PR #145760)
    Eli Friedman via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Wed Jun 25 12:54:47 PDT 2025
    
    
  
================
@@ -3955,6 +3955,10 @@ void AArch64FrameLowering::determineCalleeSaves(MachineFunction &MF,
   // Save number of saved regs, so we can easily update CSStackSize later.
   unsigned NumSavedRegs = SavedRegs.count();
 
+  // If we must call __arm_get_current_vg in the prologue preserve the LR.
+  if (requiresSaveVG(MF) && !Subtarget.hasSVE())
+    SavedRegs.set(AArch64::LR);
----------------
efriedma-quic wrote:
Oh, hmm, I guess that works.
Maybe we should move the declaration of NumSavedRegs immediately after the `for (unsigned Reg : SavedRegs.set_bits()) {` loop, to make the connection more clear?
https://github.com/llvm/llvm-project/pull/145760
    
    
More information about the llvm-commits
mailing list