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]

find_reloads_address_1 question


Hello,

in experimenting with different ways of what to allow as
legitimate addresses I've noticed a somewhat strange behaviour
of find_reloads_address_1:  if an address has a PLUS at the top
level, that routine tries some assumptions on how the components
of the sum ought to look like, but if the sum does *not* fit
any of these assumptions, the routine simply returns without
pushing any reloads; it does not even fall back to its default
behaviour of recurring over subexpressions.

Specifically I've tried to declare addresses of the form
 (plus (plus (reg) (const_int)) (plus (reg) (const_int)))
as legitimate, because I thought it can't hurt as they
can be transformed into a regular base + index + displacement
scheme, and it sometimes helps by allowing a match in combine
which would otherwise fail (because combine apparently doesn't 
try to normalize addresses after subst'ing into them).

But this caused bootstrap failure because reload simply
didn't reload the registers to hard registers and left
pseudos in ...

Am I just trying something stupid here, or would this be
considered a bug in reload?

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de


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