This is the mail archive of the gcc-patches@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: 3.2 bootstrap broken on s390 (was: Re: [PATCH] Fix PR target/7784 (Sparc))


> >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


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