[PATCH] D97111: [RISCV] change rvv frame layout

Roger Ferrer Ibanez via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 23 03:18:06 PST 2021


rogfer01 added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:652
+      // |--------------------------| --          |-- MFI.getStackSize()
+      // | realignment              | |           |
+      // |--------------------------| --          |
----------------
In the drawing, can you put `realignment` between `callee-saved registers` and `RVV objects`?

Once we realign `sp` / `bp` as needed, we lay out the stack as if nothing happened, so the realignment if any, would act as padding below the RVV objects. As it stands now, it looks like the padding is between the scalars and the RVV objects, but this should not be the case given that the realignment is an unknown magnitude (hence the need to keep `fp` around)

I understand this means that `MFI.getStackSize()` does not account the realignment (it can't as it is unknown), perhaps we could state this somehow in the drawings? What do you think?


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:665
+      // |--------------------------| --          |-- MFI.getStackSize()
+      // | realignment              | |           |
+      // |--------------------------| --          |
----------------
Ditto: `realignment` goes between `callee-saved registers` and `RVV objects`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97111/new/

https://reviews.llvm.org/D97111



More information about the llvm-commits mailing list