The following patch should solve problem http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48435. It might solve other latest IRA problems too including performance related ones. The patch is for targets which require some values to be placed in hard registers starting with an even (odd) hard registers. I already addressed an analogous problem recently and the patch I sent that time although solved some problems it created even more new problems. I should acknowledge this. The problem was in that profitable hard regs were used for colorability criterion and finding hard registers where allocno values can be resided but *also* as starting allocno hard registers. It resulted in spilling allocnos which should be placed in multi-registers starting on a specific border because profitable hard registers were only starting registers and when we calculated number of available hard registers multi-register allocnos can not fit only in their starting hard registers. The following patch was successfully bootstrapped on x86/x86-64 and on i686 with H.J.'s autotester options. OK to commit? 2011-04-07 Vladimir Makarov PR 4435 * ira-color.c (setup_profitable_hard_regs): Add comments. Don't take prohibited hard regs into account. (setup_conflict_profitable_regs): Rename to get_conflict_profitable_regs. (check_hard_reg_p): Check prohibited hard regs.