[PATCH] D61884: [RISCV] Support stack offset exceed 32-bit for RV64

Shiva Chen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 12 08:01:19 PDT 2019


shiva0217 updated this revision to Diff 219922.
shiva0217 added a comment.

Choosing virtual register as temp register.

I thought to choose a virtual register may cause spill, but I was wrong. After dumping the liveness info in Scavenger, LLVM could know caller saved register which is not using for parameter passing could be used. If the shrink wrap didn't occur, the caller saved registers which not used for parameter passing should always free to use for prologue and epilogue. And Scavenger will follow the AllocationOrder for the backend. So choosing a virtual register will be more reasonable. Thanks for @asb and @lenary comments, I got your point now :)


Repository:
  rL LLVM

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

https://reviews.llvm.org/D61884

Files:
  lib/Target/RISCV/RISCVFrameLowering.cpp
  lib/Target/RISCV/RISCVInstrInfo.cpp
  lib/Target/RISCV/RISCVInstrInfo.h
  lib/Target/RISCV/RISCVRegisterInfo.cpp
  test/CodeGen/RISCV/rv64-large-stack.ll
  test/CodeGen/RISCV/stack-realignment.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61884.219922.patch
Type: text/x-patch
Size: 12597 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190912/f91fba24/attachment.bin>


More information about the llvm-commits mailing list