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]

Re: S/390 Bootstrap failure due to fixup_eh_region_note



On Sep 5, 2005, at 6:39 PM, Richard Henderson wrote:


On Mon, Sep 05, 2005 at 02:27:54PM +0200, Andreas Krebbel wrote:
(insn 31 29 49 5 (set (mem/s/j:SI (plus:SI (reg/v/f:SI 47 [ env ])
                (const_int 4 [0x4])) [0 <variable>.ex+0 S4 A32])
        (mem/f:SI (plus:SI (plus:SI (reg:SI 55)
                    (reg:SI 56))
                (const_int 4092 [0xffc])) [0 S4 A32]))

Guh.


Well, I suppose this is no different from a fp arith insn with a
pre-reload memory input that gets reloaded into a register.  I
suppose there's no invariant that I can enforce.

If you look at the version of fixup_abnormal_edges before my patch
you'll see a bit that calls find_many_sub_blocks; re-add that hunk
and remove the assert in fixup_eh_region_note, then re-test.

Well find_many_sub_blocks will not find new BBs as the EH_REGION is an
external throw and not internal throw.
I think the following patch should fix the problem without any effects.
It just adds the check to make sure that we have internal throw when checking
the trap_count.


Andreas, could you check this patch?

Richard, what do you think about this patch?

It fixes jni.ii for me.

-- Pinski

Attachment: t.diff.txt
Description: Text document


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