This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Eliminable register breakage
- To: gcc at gcc dot gnu dot org
- Subject: Eliminable register breakage
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Sun, 3 Jun 01 15:51:25 EDT
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?