[PATCH] D130560: [RISCV] Handle register spill in branch relaxation
Piggy via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 28 00:10:50 PDT 2022
piggynl added inline comments.
================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:1077
+ if (!isInt<20>(EstimateFunctionSizeInBytes(MF, *TII))) {
+ int FI = MFI.CreateStackObject(RegInfo->getSpillSize(*RC),
+ RegInfo->getSpillAlign(*RC), false);
----------------
StephenFan wrote:
> Actually, scavenging spill slots can be reused. But here we always create a scavenging spill slot even if there is already a scavenging spill slot.
Since branch relaxation pass is after instruction scheduling, I'm not sure whether the jump could be placed in the middle of a spill from previous pass, and the slot's content could be overwritten if we reuse the slot.
I'm not familiar with instruction scheduling, so please correct me for any mistake I made. Thank you in advance!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D130560/new/
https://reviews.llvm.org/D130560
More information about the llvm-commits
mailing list