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]

Re: Eliminable register breakage


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


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