diff options
author | Shreya Munnangi <smunnangi1@ventanamicro.com> | 2025-08-31 07:48:21 -0600 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro.com> | 2025-08-31 07:48:21 -0600 |
commit | 095700c4cc6dece45f45ae7285b6523170f08953 (patch) | |
tree | b8695eca279701146ee2f6da5f079b9612db0155 /gcc/testsuite/gcc.dg/cpp | |
parent | a4ec06656dcd6c4eb0bc2bbf20a6492860a76fc3 (diff) | |
download | gcc-095700c4cc6dece45f45ae7285b6523170f08953.zip gcc-095700c4cc6dece45f45ae7285b6523170f08953.tar.gz gcc-095700c4cc6dece45f45ae7285b6523170f08953.tar.bz2 |
[RISC-V] Improve initial RTL generation for SImode adds on rv64
So this is the next chunk of Shreya's work to adjust our add expanders. In this
patch we're adding support for adding a 2*s12 immediate in SI for rv64.
To recap, the basic idea is reduce our reliance on the define_insn_and_split
that was added a year or so ago by synthesizing the more efficient sequence at
expansion time. By handling this early rather than late the synthesized
sequence participates in the various optimizer passes in the natural way. In
contrast using the define_insn_and_split bypasses the cost modeling in combine
and hides the synthesis until after reload as completed (which in turn leads to
the problems seen in pr120811).
This doesn't solve pr120811, but it is the last prerequisite patch before
directly tackling pr120811.
This has been bootstrapped & regression tested on the pioneer & bpi and been
through the usual testing on riscv32-elf and riscv64-elf. Waiting on
pre-commit CI before moving forward.
gcc/
* config/riscv/riscv-protos.h (synthesize_add_extended): Prototype.
* config/riscv/riscv.cc (synthesize_add_extended): New function.
* config/riscv/riscv.md (addsi3): For RV64, try synthesize_add_extended.
gcc/testsuite/
* gcc.target/riscv/add-synthesis-2.c: New test.
Diffstat (limited to 'gcc/testsuite/gcc.dg/cpp')
0 files changed, 0 insertions, 0 deletions