[llvm] dd336b6 - [RISCV] Restructure comment and add clarifying assert to getFrameIndexReference [NFC]
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Wed May 25 07:59:33 PDT 2022
Author: Philip Reames
Date: 2022-05-25T07:59:27-07:00
New Revision: dd336b6891f1e4be1aae2b7e30c1ba7318564812
URL: https://github.com/llvm/llvm-project/commit/dd336b6891f1e4be1aae2b7e30c1ba7318564812
DIFF: https://github.com/llvm/llvm-project/commit/dd336b6891f1e4be1aae2b7e30c1ba7318564812.diff
LOG: [RISCV] Restructure comment and add clarifying assert to getFrameIndexReference [NFC]
Differential Revision: https://reviews.llvm.org/D126088
Added:
Modified:
llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp b/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
index 5be78a5ccc86a..5062d992c6cc4 100644
--- a/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
@@ -691,66 +691,41 @@ RISCVFrameLowering::getFrameIndexReference(const MachineFunction &MF, int FI,
// If the stack was realigned, the frame pointer is set in order to allow
// SP to be restored, so we need another base register to record the stack
// after realignment.
+ // |--------------------------| -- <-- FP
+ // | callee-allocated save | | <----|
+ // | area for register varargs| | |
+ // |--------------------------| | |
+ // | callee-saved registers | | |
+ // |--------------------------| -- |
+ // | realignment (the size of | | |
+ // | this area is not counted | | |
+ // | in MFI.getStackSize()) | | |
+ // |--------------------------| -- |-- MFI.getStackSize()
+ // | RVV alignment padding | | |
+ // | (not counted in | | |
+ // | MFI.getStackSize() but | | |
+ // | counted in | | |
+ // | RVFI.getRVVStackSize()) | | |
+ // |--------------------------| -- |
+ // | RVV objects | | |
+ // | (not counted in | | |
+ // | MFI.getStackSize()) | | |
+ // |--------------------------| -- |
+ // | padding before RVV | | |
+ // | (not counted in | | |
+ // | MFI.getStackSize() or in | | |
+ // | RVFI.getRVVStackSize()) | | |
+ // |--------------------------| -- |
+ // | scalar local variables | | <----'
+ // |--------------------------| -- <-- BP (if var sized objects present)
+ // | VarSize objects | |
+ // |--------------------------| -- <-- SP
if (hasBP(MF)) {
FrameReg = RISCVABI::getBPReg();
- // |--------------------------| -- <-- FP
- // | callee-allocated save | | <----|
- // | area for register varargs| | |
- // |--------------------------| | |
- // | callee-saved registers | | |
- // |--------------------------| -- |
- // | realignment (the size of | | |
- // | this area is not counted | | |
- // | in MFI.getStackSize()) | | |
- // |--------------------------| -- |-- MFI.getStackSize()
- // | RVV alignment padding | | |
- // | (not counted in | | |
- // | MFI.getStackSize() but | | |
- // | counted in | | |
- // | RVFI.getRVVStackSize()) | | |
- // |--------------------------| -- |
- // | RVV objects | | |
- // | (not counted in | | |
- // | MFI.getStackSize()) | | |
- // |--------------------------| -- |
- // | padding before RVV | | |
- // | (not counted in | | |
- // | MFI.getStackSize() or in | | |
- // | RVFI.getRVVStackSize()) | | |
- // |--------------------------| -- |
- // | scalar local variables | | <----'
- // |--------------------------| -- <-- BP
- // | VarSize objects | |
- // |--------------------------| -- <-- SP
} else {
+ // VarSize objects must be empty in this case!
+ assert(!MFI.hasVarSizedObjects());
FrameReg = RISCV::X2;
- // |--------------------------| -- <-- FP
- // | callee-allocated save | | <----|
- // | area for register varargs| | |
- // |--------------------------| | |
- // | callee-saved registers | | |
- // |--------------------------| -- |
- // | realignment (the size of | | |
- // | this area is not counted | | |
- // | in MFI.getStackSize()) | | |
- // |--------------------------| -- |
- // | RVV alignment padding | | |
- // | (not counted in | | |
- // | MFI.getStackSize() but | | |
- // | counted in | | |
- // | RVFI.getRVVStackSize()) | | |
- // |--------------------------| -- |-- MFI.getStackSize()
- // | RVV objects | | |
- // | (not counted in | | |
- // | MFI.getStackSize()) | | |
- // |--------------------------| -- |
- // | padding before RVV | | |
- // | (not counted in | | |
- // | MFI.getStackSize() or in | | |
- // | RVFI.getRVVStackSize()) | | |
- // |--------------------------| -- |
- // | scalar local variables | | <----'
- // |--------------------------| -- <-- SP
}
// The total amount of padding surrounding RVV objects is described by
// RVV->getRVVPadding() and it can be zero. It allows us to align the RVV
More information about the llvm-commits
mailing list