From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2119) id 6A5C23858414; Mon, 19 Jun 2023 11:41:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6A5C23858414 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687174906; bh=e2LM00gkKfcT6BmL2XGTDyZGETATM8gk6soOOs8Mal8=; h=From:To:Subject:Date:From; b=RBqe9TmvQYJG3OBHz+FTkuV8RAA86QHUdDss0wHr5qvvD5Imr3ljxhNi4t1eQDlUA b8Sm4KxFE1MC4ZP0Lq6RWRcUq3T4PCONPvHzKAlWY9O0vyTpPVGFev2i1gHogpb/8Q Ko78/SSqGFw3ciPGb5lubVaOnAnfMfBNFk+uzrNU= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Jeff Law To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/riscv/heads/gcc-13-with-riscv-opts)] cprop_hardreg: Enable propagation of the stack pointer if possible X-Act-Checkin: gcc X-Git-Author: Manolis Tsamis X-Git-Refname: refs/vendors/riscv/heads/gcc-13-with-riscv-opts X-Git-Oldrev: dbc9274420ae1a2429ec1f99deea6503fb21aa7c X-Git-Newrev: 9bf1bcc76ddc0a1dc54445700b04671ffe9d8f62 Message-Id: <20230619114146.6A5C23858414@sourceware.org> Date: Mon, 19 Jun 2023 11:41:46 +0000 (GMT) List-Id: https://gcc.gnu.org/g:9bf1bcc76ddc0a1dc54445700b04671ffe9d8f62 commit 9bf1bcc76ddc0a1dc54445700b04671ffe9d8f62 Author: Manolis Tsamis Date: Thu May 25 13:44:41 2023 +0200 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: --- gcc/regcprop.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/regcprop.cc b/gcc/regcprop.cc index f426f4fedcd..6cbfadb181f 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);