------- Comment #47 from dave at hiauly1 dot hia dot nrc dot ca 2006-01-14 19:48 ------- Subject: Re: [4.1/4.2 Regression] internal compiler error: verify_flow_info failed
> I see in postreload: > > (jump_insn 21 19 24 2 (parallel [ > (set (pc) > (if_then_else (ne (reg:SI 28 %r28) > (const_int 0 [0x0])) > (label_ref 31) > (pc))) > (set (reg/v:SI 3 %r3 [orig:94 call_result ] [94]) > (reg:SI 28 %r28)) > ]) 227 {*pa.md:8779} (insn_list:REG_DEP_TRUE 19 (nil)) > (expr_list:REG_BR_PROB (const_int 5000 [0x1388]) > (nil))) > ;; End of basic block 2, registers live: > 3 [%r3] 30 [%r30] 94 > > ;; Start of basic block 3, registers live: 30 [%r30] 94 > (note 24 21 26 3 [bb 3] NOTE_INSN_BASIC_BLOCK) > > (insn 26 24 27 3 (set (reg:SI 26 %r26 [ node ]) > (reg/v/f:SI 3 %r3 [orig:95 node ] [95])) 37 {*pa.md:2308} (nil) > (nil)) In greg: ;; Start of basic block 2, registers live: 3 [%r3] 26 [%r26] 30 [%r30] 95 (note 9 7 20 2 [bb 2] NOTE_INSN_BASIC_BLOCK) ... (jump_insn 21 19 24 2 (parallel [ (set (pc) (if_then_else (ne (reg:SI 28 %r28) (const_int 0 [0x0])) (label_ref 31) (pc))) (set (reg/v:SI 94 [ call_result ]) (reg:SI 28 %r28)) ]) 227 {*pa.md:8779} (insn_list:REG_DEP_TRUE 19 (nil)) (expr_list:REG_DEAD (reg:SI 28 %r28) (expr_list:REG_BR_PROB (const_int 5000 [0x1388]) (nil)))) ;; End of basic block 2, registers live: 3 [%r3] 30 [%r30] 94 95 I don't see how reload can pick r3 for SI 94 given that r3 is alive at the start and end of BB 2. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24626