[RISCV] Use two ADDIs to do some stack pointer adjustments.
authorCraig Topper <craig.topper@sifive.com>
Tue, 31 May 2022 17:14:34 +0000 (10:14 -0700)
committerCraig Topper <craig.topper@sifive.com>
Tue, 31 May 2022 17:25:28 +0000 (10:25 -0700)
commit1b2de79ff4b27f3dee342607ee5285d870be08cb
tree4670a2c88f78e3cffcb20823e7e4efd43d1eca36
parent9d1b260fae40379d1dfbc33255f0f1c3854c06d2
[RISCV] Use two ADDIs to do some stack pointer adjustments.

If the adjustment doesn't fit in 12 bits, try to break it into
two 12 bit values before falling back to movImm+add/sub.

This is based on a similar idea from isel.

Reviewed By: luismarques, reames

Differential Revision: https://reviews.llvm.org/D126392
llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir
llvm/test/CodeGen/RISCV/stack-realignment.ll