This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[DataFlow Branch] Query regarding an ICE in global.c


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 <ramana.radhakrishnan@codito.com>
Codito Technologies Pvt. Ltd.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]