This is the mail archive of the
mailing list for the GCC project.
Re: Run the combine part of combine_and_move_insns even if -fsched-pressure
- From: Jeff Law <law at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, vmakarov at redhat dot com, richard dot sandiford at arm dot com
- Date: Thu, 8 Aug 2019 10:35:55 -0600
- Subject: Re: Run the combine part of combine_and_move_insns even if -fsched-pressure
- References: <firstname.lastname@example.org>
On 8/7/19 12:16 PM, Richard Sandiford wrote:
> The main IRA routine includes the code:
> /* Don't move insns if live range shrinkage or register
> pressure-sensitive scheduling were done because it will not
> improve allocation but likely worsen insn scheduling. */
> if (optimize
> && !flag_live_range_shrinkage
> && !(flag_sched_pressure && flag_schedule_insns))
> combine_and_move_insns ();
> The comment about not moving insns for pressure-sensitive scheduling
> makes sense, but I think the combine part of combine_and_move_insns is
> still useful, since it's folding a set of an equivalent value into its
> single user and so eliminates the need for one register altogether.
> (That also means that it's likely to undo live range shrinkage in
> some cases, so I think the blanket skip still makes sense there.)
> Tested on aarch64-linux-gnu, aarch64_be-elf and x86_64-linux-gnu.
> OK to install?
> 2019-08-07 Richard Sandiford <email@example.com>
> * ira.c (combine_and_move_insns): Don't move insns if
> pressure-sensitive scheduling is enabled.
> (ira): Remove check for pressure-sensitive scheduling here.
> * gcc.target/aarch64/csinc-3.c: New test.
> * gcc.target/aarch64/csinv-2.c: Likewise.