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]
Other format: [Raw text]

Re: reload-branch created


Ulrich Weigand wrote:

- As mentioned in http://gcc.gnu.org/ml/gcc/2005-01/msg00911.html
  there is a code path in find_reloads that sets rld[].inc to a
  nonzero value even for a platform that doesn't actually *have*
  pre-/post-increment insns, leading to an ICE later on.

  The patch below simply avoids setting .inc unless it was already
  set to a nonzero value (by find_inc_amount).

This one I'm not sure about yet.

- As mentioned in http://gcc.gnu.org/ml/gcc/2005-01/msg01112.html there are problems with reload ordering when optional reloads are disabled, leading to address reload insns being emitted after the main insn.

The patch below is the same I suggested in that mail; it considers
such address reloads to feed into both the optional reload and the main insn in scan_rtx.

This problem will probably require more invasive surgery.


- Finally, there is still a (new) problem in the latest version of
usable_for_inheritance: if an inherited register is chosen as
override-in because it is not suitable as reload register due
to HARD_REGNO_MODE_OK, it isn't even checked against the *usable_regs array.


The patch below adds back that check (using inmode, not mode).

This is OK. Would you check it in?



Bernd



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