From: Manolis Tsamis Date: Thu, 25 May 2023 11:44:41 +0000 (+0200) Subject: cprop_hardreg: Enable propagation of the stack pointer if possible X-Git-Tag: basepoints/gcc-15~8266 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a2e8dcbbd4bab374b27abea375bf7a921047800;p=thirdparty%2Fgcc.git cprop_hardreg: Enable propagation of the stack pointer if possible 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. --- diff --git a/gcc/regcprop.cc b/gcc/regcprop.cc index f426f4fedcd5..6cbfadb181f8 100644 --- a/gcc/regcprop.cc +++ b/gcc/regcprop.cc @@ -422,7 +422,12 @@ maybe_mode_change (machine_mode orig_mode, machine_mode copy_mode, 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);