Propagation of the stack pointer in cprop_hardreg is currenty
forbidden in all cases, due to maybe_mode_change returning NULL.
Relax this restriction and allow propagation when no mode change is
requested.
gcc/ChangeLog:
* regcprop.cc (maybe_mode_change): Enable stack pointer
propagation.
It's unclear if we need to do the same for other special registers. */
if (regno == STACK_POINTER_REGNUM)
- return NULL_RTX;
+ {
+ if (orig_mode == new_mode)
+ return stack_pointer_rtx;
+ else
+ return NULL_RTX;
+ }
if (orig_mode == new_mode)
return gen_raw_REG (new_mode, regno);