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

Reply via email to