This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[DataFlow Branch] Query regarding an ICE in global.c
- From: Ramana Radhakrishnan <ramana dot radhakrishnan at codito dot com>
- To: zadeck at naturalbridge dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 18 Apr 2007 19:54:19 +0530
- Subject: [DataFlow Branch] Query regarding an ICE in global.c
- Reply-to: ramana dot radhakrishnan at codito dot com
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.