[PATCH] D94465: [RISCV] Frame handling for RISC-V V extension. (2nd. version)

Su Hsien Ho via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 30 10:21:24 PDT 2021


SuH added a comment.

Hi @rogfer01

> We changed the RVV frame layout in D97111 <https://reviews.llvm.org/D97111>, does your question still hold under that new layout?

Yes, the problem still exist.

  |---------------------------------|------
  | scalar incoming arguments       |      |
  |---------------------------------|      |  Previous frame
  | RVV previous local variables && |      | <-----how to know this size or how to count count # of vectors?
  | RVV incoming arguments          |------
  |---------------------------------| - start of frame (fp)
  | scalar callee-saved registers   |
  |---------------------------------|
  | scalar local variables          |
  |---------------------------------|
  | scalar outgoing arguments       |
  |---------------------------------|
  | RVV local variables &&          |
  | RVV outgoing arguments          |
  |---------------------------------| <- end of frame (sp)

My question is how to count the scalar incoming argument with this frame layout,
because scalar incoming arguments cross RVV previous local variables frame objects.
In the current frame(callee), we don't know the RVV previous local variables count.
So we can't get the real stack offset because callee not  know the **caller vector local variables size.**


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D94465



More information about the llvm-commits mailing list