https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78459

--- Comment #7 from Jeffrey A. Law <law at redhat dot com> ---
So I've got a patch for the h8 instance of this problem.  I'll have to see if I
can reproduce the various SH instances and backtest my patch against them.

The situation we were running into was generic code was creating something like

(set (temp) (plus (stack_pointer_rtx) (const)))
(set (stack_pointer_rtx) (temp)  REG_ARGS_SIZE note)

CSE's back propagation would backprop stack_pointer_rtx for temp in the first
insn, the second insn is dead and gets removed.  The result is we lost the
REG_ARGS_SIZE note.  The obvious solution is to move the note during the back
propagation.

My tester has run that through a newlib build on the h8.

Reply via email to