On Tue, Oct 23, 2012 at 1:38 PM, Yuri Rumyantsev <ysrum...@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 <ysrum...@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.