------- Comment #3 from bonzini at gnu dot org 2009-10-28 12:21 ------- The patch is wrong because the result of MD is used also to process notes, while the live registers problem does not consider a register live if it is only used in notes. We have:
;; lr in 1 [1] 2 [2] 31 [31] 67 [ap] 113 [sfp] 154 180 88 {r179:SF=float(r180:DI);clobber scratch;} REG_EQUAL: float(r155:DI) Then because r155 is not live, it is not included in MD and a random definition (0.0) is replaced in the REG_EQUAL note. I'll revert the patch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41812