]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: Enable pressure-aware scheduling by default.
authorRobin Dapp <rdapp.gcc@gmail.com>
Fri, 18 Aug 2023 13:57:16 +0000 (15:57 +0200)
committerRobin Dapp <rdapp@ventanamicro.com>
Thu, 24 Aug 2023 11:12:49 +0000 (13:12 +0200)
commita047513c9222f14adc6e5a015e038b207bb9a653
tree54e3f271fd192cc8d8449925311372dd18ce9269
parentb6ba0cc9339f2cc81398863ae779daa6c8853ad6
RISC-V: Enable pressure-aware scheduling by default.

this patch enables pressure-aware scheduling for riscv.  There have been
various requests for it so I figured I'd just go ahead and send
the patch.

There is some slight regression in code quality for a number of
vector tests where we spill more due to different instructions order.
The ones I looked at were a mix of bad luck and/or brittle tests.
Comparing the size of the generated assembly or the number of vsetvls
for SPECint also didn't show any immediate benefit but that's obviously
not a very fine-grained analysis.

As cost and scheduling models mature I expect the situation to improve
and for now I think it's generally favorable to enable pressure-aware
scheduling so we can work with it rather than trying to find every
possible problem in advance.

gcc/ChangeLog:

* common/config/riscv/riscv-common.cc: Add -fsched-pressure.
* config/riscv/riscv.cc (riscv_option_override): Set sched
pressure algorithm.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/narrow_constraint-1.c: Add
-fno-sched-pressure.
* gcc.target/riscv/rvv/base/narrow_constraint-17.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-18.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-19.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-20.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-21.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-22.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-23.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-24.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-25.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-26.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-27.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-28.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-29.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-30.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-31.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-4.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-5.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-8.c: Ditto.
* gcc.target/riscv/rvv/base/narrow_constraint-9.c: Ditto.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-10.c: Ditto.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-11.c: Ditto.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-12.c: Ditto.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-3.c: Ditto.
* gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-9.c: Ditto.
27 files changed:
gcc/common/config/riscv/riscv-common.cc
gcc/config/riscv/riscv.cc
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-1.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-17.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-18.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-19.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-20.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-21.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-22.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-23.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-24.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-25.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-26.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-27.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-28.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-29.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-30.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-31.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-4.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-5.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-8.c
gcc/testsuite/gcc.target/riscv/rvv/base/narrow_constraint-9.c
gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-10.c
gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-11.c
gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-12.c
gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-3.c
gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_bb_prop-9.c