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]

Eliminable register breakage


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?


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