Hi, This set of patches help improve stack/array accesses by improving constant materialization. Details are in respective patches.
The first patch is the main change which improves SPEC cactu by 10%. As discussed/agreed for v1 [1], I've dropped the splitter variant for stack accesses. I also have a few follow-ups which I come back to seperately. Thx, -Vineet [1] https://gcc.gnu.org/pipermail/gcc-patches/2024-March/647874.html Vineet Gupta (2): RISC-V: avoid LUI based const materialization ... [part of PR/106265] RISC-V: avoid LUI based const mat in prologue/epilogue expansion [PR/105733] gcc/config/riscv/constraints.md | 6 ++ gcc/config/riscv/predicates.md | 6 ++ gcc/config/riscv/riscv-protos.h | 3 + gcc/config/riscv/riscv.cc | 85 +++++++++++++++++-- gcc/config/riscv/riscv.h | 22 +++++ gcc/config/riscv/riscv.md | 40 +++++++++ gcc/testsuite/gcc.target/riscv/pr105733.c | 15 ++++ .../riscv/rvv/autovec/vls/spill-1.c | 4 +- .../riscv/rvv/autovec/vls/spill-2.c | 4 +- .../riscv/rvv/autovec/vls/spill-3.c | 4 +- .../riscv/rvv/autovec/vls/spill-4.c | 4 +- .../riscv/rvv/autovec/vls/spill-5.c | 4 +- .../riscv/rvv/autovec/vls/spill-6.c | 4 +- .../riscv/rvv/autovec/vls/spill-7.c | 4 +- .../gcc.target/riscv/sum-of-two-s12-const-1.c | 45 ++++++++++ .../gcc.target/riscv/sum-of-two-s12-const-2.c | 15 ++++ .../gcc.target/riscv/sum-of-two-s12-const-3.c | 22 +++++ 17 files changed, 266 insertions(+), 21 deletions(-) create mode 100644 gcc/testsuite/gcc.target/riscv/pr105733.c create mode 100644 gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c create mode 100644 gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-2.c create mode 100644 gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-3.c -- 2.34.1