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.
i386-pre-reload-scheduler-fix.diff
Description: Binary data