[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