[llvm] 26fc26c - [RISCV] Simplify computation of VarArgsSaveSize. NFC (#74209)

via llvm-commits llvm-commits at lists.llvm.org
Sun Dec 3 20:35:17 PST 2023


Author: Craig Topper
Date: 2023-12-03T20:35:12-08:00
New Revision: 26fc26c184bae3e5eb6f481f63edb7c285ada272

URL: https://github.com/llvm/llvm-project/commit/26fc26c184bae3e5eb6f481f63edb7c285ada272
DIFF: https://github.com/llvm/llvm-project/commit/26fc26c184bae3e5eb6f481f63edb7c285ada272.diff

LOG: [RISCV] Simplify computation of VarArgsSaveSize. NFC (#74209)

The computation we use for computing the size already returns 0 when all
registers are allocated. We don't need an if to set it to 0.

Use the size being 0 to check for whether we need to spill registers or
not.

I have another change I want to make to this code, but this change
seemed to stand on its own. I left the curly braces since I need them
for the other change.

Added: 
    

Modified: 
    llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp b/llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
index bd602635dd5f7..9e96fba069c4e 100644
--- a/llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
+++ b/llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
@@ -441,14 +441,14 @@ void RISCVCallLowering::saveVarArgRegisters(
   // Offset of the first variable argument from stack pointer, and size of
   // the vararg save area. For now, the varargs save area is either zero or
   // large enough to hold a0-a7.
-  int VaArgOffset, VarArgsSaveSize;
+  int VaArgOffset;
+  int VarArgsSaveSize = XLenInBytes * (ArgRegs.size() - Idx);
+
   // If all registers are allocated, then all varargs must be passed on the
   // stack and we don't need to save any argregs.
-  if (ArgRegs.size() == Idx) {
+  if (VarArgsSaveSize == 0) {
     VaArgOffset = Assigner.StackSize;
-    VarArgsSaveSize = 0;
   } else {
-    VarArgsSaveSize = XLenInBytes * (ArgRegs.size() - Idx);
     VaArgOffset = -VarArgsSaveSize;
   }
 

diff  --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
index 241bc96766f29..cf1b11c14b6d0 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -17694,15 +17694,14 @@ SDValue RISCVTargetLowering::LowerFormalArguments(
     // Offset of the first variable argument from stack pointer, and size of
     // the vararg save area. For now, the varargs save area is either zero or
     // large enough to hold a0-a7.
-    int VaArgOffset, VarArgsSaveSize;
+    int VaArgOffset;
+    int VarArgsSaveSize = XLenInBytes * (ArgRegs.size() - Idx);
 
     // If all registers are allocated, then all varargs must be passed on the
     // stack and we don't need to save any argregs.
-    if (ArgRegs.size() == Idx) {
+    if (VarArgsSaveSize == 0) {
       VaArgOffset = CCInfo.getStackSize();
-      VarArgsSaveSize = 0;
     } else {
-      VarArgsSaveSize = XLenInBytes * (ArgRegs.size() - Idx);
       VaArgOffset = -VarArgsSaveSize;
     }
 


        


More information about the llvm-commits mailing list