[llvm] [RISCV] Use two ADDIs to do some stack pointer adjustments for special case (PR #94182)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 27 17:30:22 PDT 2024
================
@@ -511,6 +511,15 @@ bool RISCVRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
// We can encode an add with 12 bit signed immediate in the immediate
// operand of our user instruction. As a result, the remaining
// offset can by construction, at worst, a LUI and a ADD.
+
+ // Special case, try to split the offset across two ADDIs.
+ uint64_t ValSubLo12 = (uint64_t)Val - (uint64_t)Lo12;
+ const RISCVFrameLowering *TFI = getFrameLowering(MF);
+ const uint64_t Align = TFI->getStackAlign().value();
----------------
topperc wrote:
I'm not sure why StackAlign matters here. You're not changing the stack pointer.
https://github.com/llvm/llvm-project/pull/94182
More information about the llvm-commits
mailing list