This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 3.2 bootstrap broken on s390 (was: Re: [PATCH] Fix PR target/7784 (Sparc))
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: Ulrich Weigand <weigand at immd1 dot informatik dot uni-erlangen dot de>
- Cc: gdr at integrable-solutions dot net,rth at redhat dot com,gcc-patches at gcc dot gnu dot org
- Date: Sat, 29 Mar 2003 19:15:52 +0100
- Subject: Re: 3.2 bootstrap broken on s390 (was: Re: [PATCH] Fix PR target/7784 (Sparc))
- References: <200303291644.RAA04295@faui11.informatik.uni-erlangen.de>
> >2003-03-23 Eric Botcazou <ebotcazou at libertysurf dot fr>
> >
> > PR target/7784
> > * reload.c (find_reloads_address): Handle
> > (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
> > all base registers.
>
> breaks bootstrap on s390 with this ICE:
>
> ../../gcc-3_2/gcc/except.c: In function `remove_eh_handler':
> ../../gcc-3_2/gcc/except.c:411: could not split insn
>
> (insn 125 417 420 (set (reg/v:DI 10 %r10 [64])
> (mem/s:DI (plus:SI (plus:SI (reg:SI 1 %r1 [67])
> (const_int 16 [0x10]))
> (reg:SI 2 %r2)) [27 <variable>.bits S8 A64])) 52
> {*movdi_31} (insn_list 417 (insn_list 121 (nil))) (expr_list:REG_DEAD
> (reg:SI 1 %r1 [67])
> (expr_list:REG_DEAD (reg:SI 2 %r2)
> (nil))))
>
>
> The reason is that it exposes another bug in find_reloads_address
> much earlier; this bug, which I fixed on mainline and 3.3 with
>
> http://gcc.gnu.org/ml/gcc-patches/2003-01/msg01735.html
>
> used to show up only in rare cases, but now breaks bootstrap :-(
>
>
> I would suggest to backport my reload fix as well; with the
> appended patch I can again bootstrap/regtest s390-ibm-linux
> and s390x-ibm-linux.
Alternatively I can revert my patch if tweaking reload is deemed too risky at
this point. The form (PLUS (PLUS (REG) (REG)) (CONST_INT)) can be produced
by the reload machinery for any base register on Sparc and had not been
handled until my patch was checked in; however, AFAIK, the GNATS database
contains only one report about this deficiency (heavy scientific code on
Ultrasparc) so we can certainly live without it one more release.
--
Eric Botcazou