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.