Hello, This is a series of selective scheduler bug fixes. They fix problems that have been discovered during internal testing, and one patch is necessary as preparation to predication support in the selective scheduler (predication patches will be submitted separately later).
I'm sorry that patches come without testcases, but as most of the problems have been discovered on a patched scheduler, it's virtually impossible to provide testcases that would fail without a patch and pass with it. The patches have been bootstrapped and regtested together on x86-64 and ia64 (without java on ia64). Additionally, a number of tests was done with arm cross-compiler. I'll commit approved patches separately. OK for trunk? Dmitry Melnik (3): Take maximum spec when merging exprs Make more insns unique Drop an incorrect assert Sergey Grechanik (5): Fix usage of hard_regno_nregs before reload Properly loop over all hard regs for mode Try successors to find seqno Factor out caching logic for INSN_COND Only merge deps status for true dependencies gcc/sched-deps.c | 69 +++++++++++++++++++------------- gcc/sched-int.h | 2 +- gcc/sel-sched-ir.c | 111 +++++++++++++++++++++++++++++++++++++++++----------- gcc/sel-sched-ir.h | 1 + gcc/sel-sched.c | 14 +++--- 5 files changed, 137 insertions(+), 60 deletions(-)