------- Comment #6 from amodra at bigpond dot net dot au 2005-11-08 12:58 ------- Looks like combine is not updating reg life info.
(gdb) set var dump_file=stderr (gdb) n (gdb) Register 137 died unexpectedly. (gdb) ;; basic block 6, loop depth 0, count 0 ;; prev block 5, next block 7 ;; pred: 5 [50.0%] (fallthru) ;; succ: 7 [100.0%] (fallthru) ;; Registers live at start: 1 [1] 31 [31] 67 [ap] 128 134 137 139 141 151 [snip] ==== pr22002.i.16.life ;; Start of basic block 6, registers live: 1 [1] 31 [31] 67 [ap] 128 134 137 139 141 151 (note 136 145 118 6 [bb 6] NOTE_INSN_BASIC_BLOCK) (insn 118 136 120 6 (set (reg:DF 127 [ D.1135 ]) (reg:DF 137)) 285 {*movdf_hardfloat64} (nil) (expr_list:REG_DEAD (reg:DF 137) (expr_list:REG_EQUAL (const_double:DF 2.0e+0 [0x0.8p+2]) (nil)))) [snip] (insn 123 122 124 6 (set (reg:DF 141) (mult:DF (reg:DF 127 [ D.1135 ]) (reg:DF 141))) 179 {*muldf3_fpr} (insn_list:REG_DEP_TRUE 118 (nil)) (expr_list:REG_DEAD (reg:DF 127 [ D.1135 ]) (expr_list:REG_EQUAL (const_double:DF 2.5132741228718344927983707748353481292724609375e+1 [0x0.c90fdaa22168cp+5]) (nil)))) ====== pr22002.i.17.combine ;; Start of basic block 6, registers live: 1 [1] 31 [31] 67 [ap] 128 134 137 139 141 151 (note 136 145 118 6 [bb 6] NOTE_INSN_BASIC_BLOCK) (note 118 136 120 6 NOTE_INSN_DELETED) [snip] (insn 123 122 124 6 (set (reg:DF 141) (plus:DF (reg:DF 141) (reg:DF 141))) 177 {*adddf3_fpr} (nil) (expr_list:REG_EQUAL (const_double:DF 2.5132741228718344927983707748353481292724609375e+1 [0x0.c90fdaa22168cp+5]) (nil))) (note 124 123 125 6 NOTE_INSN_DELETED) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22002