This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
- From: "hp at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Nov 2005 02:23:16 -0000
- Subject: [Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes
- References: <bug-24750-507@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from hp at gcc dot gnu dot org 2005-11-09 02:23 -------
I should mention that
(plus:SI (sign_extend:SI (reg:HI 10 r10)) (reg:SI 1 r1))
is not a valid address, but
(plus:SI (sign_extend:SI (sign_extend:SI (mem:HI (post_inc:SI (reg/f:SI 12
r12)))))
(reg:SI 1 r1))
is; the problem seems related to reload choosing to reload inner MEM
expressions
replacing them with REG even though that's not needed and sometimes
(i.e. for some targets) not valid. The "real" need is just to reload SRP.
Or perhaps that SRP was chosen as part of an address in the first place.
Or both. Or maybe we should just bail out and declare
LEGITIMIZE_RELOAD_ADDRESS
as a sometimes actually *necessary* macro rather than just for optimization,
for
certain cases, like when a MEM inside an expression can't be validly replaced
with a REG.
--
hp at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2005-11-09 02:23:16
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24750