------- 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

Reply via email to