[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