http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50427
Catherine Gasnier <lalhee at wanadoo dot fr> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lalhee at wanadoo dot fr --- Comment #2 from Catherine Gasnier <lalhee at wanadoo dot fr> 2012-08-30 15:31:15 UTC --- Hi, I had exactly the same problem, where IRA did not see the dependency between a register and one of it subreg. In our back, we also have hard registers in HImode, with adjacent register sequences used for SImode and DImode. For me, the issue was the way I defined the macro REGMODE_NATURAL_SIZE. I've had a look at your code and you defined it roughly the same way as I did: #define REGMODE_NATURAL_SIZE(MODE) (PSImode == (MODE) ? 2*UNITS_PER_WORD : UNITS_PER_WORD) This seems to be wrong. I think this macro is useful only if the natural size for a specific mode is smaller than UNIT_PER_WORD, which is not your case. You should try not to define this macro.