------- Comment #4 from rask at sygehus dot dk 2007-07-11 20:45 ------- In reply to comment #2: Reload is unable to use a register with a REG_DEAD note for an output reload. Look at the functions find_reload_regs(), order_regs_for_reload() and find_reg() and pay attention to how they use chain->dead_or_set and bad_spill_regs. Several years ago, the reg sets chain->live_throughout and chain->dead_or_set were instead chain->live_before and chain->live_after and it would have been easy to fix something like this. I think. But IMHO, this is something which local-alloc or global-alloc should get right and not leave to reload.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32725