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


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

RE: IA64 status


As far as I can tell, what's happening is the following:

1) An rtl load instruction is generated to load a floating point constant.
It is viewed as being able to trap.  The specific instruction in this case
is:

(insn 72 70 118 (set (reg:SF 360)
        (mem/u/f:SF (reg/f:DI 361) 0)) -1 (nil)
    (expr_list:REG_DEAD (reg/f:DI 361)
        (expr_list:REG_EH_REGION (const_int 1 [0x1])
            (expr_list:REG_EQUAL (const_double:SF (mem/u/f:SF
(symbol_ref/u:DI ("*.LC2")) 0) 0 [0x0] 1074653792 [0x400dea60] 0 [0x0])
                (nil)))))

2) Presumably an "abnormal edge" corresponding to the exception edge is
inserted leaving this instruction.

3) This instruction (along with some other stuff) is deleted by
delete_dead_insn from reload (reload1.c:1067).

4) This causes fixup_abnormal_edges to get very confused, since there is now
an abnormal edge without a corresponding instruction that caould have
introduced it.

I have only encounted this on IA64 with Java code (SPECjbb in this case)
when compiling with -g, using the trunk.  I don't see why this is limited to
IA64.

Unfortunately, I'm not sure how to fix this, i.e. exactly where things
should have gone differently.  Advice is appreciated.

Thanks.

Hans

> -----Original Message-----
> From: Richard Henderson [mailto:rth@redhat.com]
> Sent: Thursday, September 06, 2001 2:21 AM
> To: Boehm, Hans
> Cc: 'java@gcc.gnu.org'
> Subject: Re: IA64 status
> 
> 
> On Wed, Sep 05, 2001 at 05:39:14PM -0700, Boehm, Hans wrote:
> > Any guess as to what's causing this?  Should 
> fixup_abnormal_edges be able to
> > handle this case, or is it getting fed garbage?
> 
> It's being fed garbage.  The case that routine is supposed
> to handle is reload emitting new insns. 
> 
> 
> r~
> 


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