This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Additional fix for pre-reload schedule on x86 targets.
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Yuri Rumyantsev <ysrumyan at gmail dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, Igor Zamyatin <izamyatin at gmail dot com>, Vladimir Makarov <vmakarov at redhat dot com>
- Date: Tue, 23 Oct 2012 14:12:18 +0200
- Subject: Re: Additional fix for pre-reload schedule on x86 targets.
- References: <CAEoMCqQotqionxiwZSL888w3i0F8U=sXjuuT0zCgSNMo3EsZ8Q@mail.gmail.com>
On Tue, Oct 23, 2012 at 1:38 PM, Yuri Rumyantsev <ysrumyan@gmail.com> wrote:
> This fix is aimed to remove stability issues with using pre-reload
> scheduler for x86 targets caused by cross-block motion of function
> arguments passed in likely-spilled HW registers. We found one more
> issue in a process of more detail testing pre-reload scheduler for all
> x86 platforms.
>
> The fix was fully tested on all acceptable suites and gcc
> bootstrapping with turned on pre-reload scheduler.
>
> Tested for i386 and x86-64, ok for trunk?
>
> ChangeLog:
>
> 2012-10-23 Yuri Rumyantsev <ysrumyan@gmail.com>
>
> * config/i386/i386.c (insn_is_function_arg) : Add check on CALL
> instruction.
> (ix86_dependencies_evaluation_hook): Insert dependencies in all
> predecessors of call block for non-trivial region avoiding creation
> of loop-carried dependency to avoid cross-block motion of HW registers.
Please Cc Vladimir on scheduler patches. If he agrees on proposed
approach, I'll just rubberstamp the patch as OK for mainline.
Uros.