Hi , 

I am working on integrating a private port into the Dataflow branch and
am running into a couple of issues with ICEs in global.c  . The ICE is
at gcc_assert ( REGS_LIVE (i)) at line 534 in global_alloc in
global.c .. 

However because of the way we generate calls in the backend with an
extra clobber register for calculating the return address. The temporary
which gets clobbered is here. 

(call_insn:HI 32 29 34
4 ../../../../gnu/libgcc/../gcc/unwind-dw2-fde.c:487 (parallel [
            (set (reg:SI 1 $r1)
                (call (mem:SI (reg/v/f:SI 145 [ fde_compare ]) [0 S4
A32])
                    (const_int 0 [0x0])))
            (use (const_int 0 [0x0]))
            (clobber (reg:SI 31 $link))
            (clobber (reg:SI 153))
        ]) 40 {call_value_indirect} (expr_list:REG_DEAD (reg:SI 3 $c3)
        (expr_list:REG_DEAD (reg:SI 2 $r2)
            (nil)))
    (expr_list:REG_DEP_TRUE (use (reg:SI 3 $r3))
        (expr_list:REG_DEP_TRUE (use (reg:SI 2 $r2))
            (expr_list:REG_DEP_TRUE (use (reg:SI 1 $r1 [ ob ]))
                (nil)))))




Is it something to do with the way that REGS_EVER_LIVE is calculated ?
If so where does this get updated in the new infrastructure. I am still
feeling my way through the df code , so any help would be appreciated.
Thanks in advance. 

This is with revision 123253 of the DF branch which is slightly older .
I am considering moving up but wanted to check before that . 


cheers
Ramana











-- 
Ramana Radhakrishnan <[EMAIL PROTECTED]>
Codito Technologies Pvt. Ltd.

Reply via email to