This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

[Bug middle-end/24750] [4.1 regression] global-alloc (reload) trips over own confusion for unexpected addressing modes



------- 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


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