This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Eliminable register breakage
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Subject: Re: Eliminable register breakage
- From: Bernd Schmidt <bernds at redhat dot com>
- Date: Sun, 3 Jun 2001 22:33:24 +0100 (BST)
- cc: <gcc at gcc dot gnu dot org>
On Sun, 3 Jun 2001, Richard Kenner wrote:
> Some recent change (or, more likely, combination of changes) broke register
> elimination. Suppose we have (on a 32/64 machines) something like
>
> (set (reg:SI N) (subreg:SI (reg:DI M) 0))
>
> and M has a reg_equiv_constant that's a PLUS of SP and a constant.
>
> Register elimination will replace this with
>
> (set (reg:SI N) (subreg:SI (plus:DI SP (const_int C)) 0))
>
> and then expect reload to somehow "make this work". But it can't.
>
> How was this supposed to work?
I believe it's probably supposed to reload the PLUS. Maybe it's been broken
by the subreg_byte patches.
Bernd