On 10/23/2012 07:38 AM, Yuri Rumyantsev wrote:
Hi All,
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.
If it were not approved yet by an insn scheduler maintainer, it is
ok for me. As Uros wrote that he rubberstamps the patch if a scheduler
maintainer approves it, so you can commit it into the mainline.
Thanks.