From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1771) id 7534C3858D37; Mon, 23 Oct 2023 13:11:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7534C3858D37 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1698066676; bh=Yl8hpGGW2bUnjqvSdkDnm8YcVyx3JgNw4kiS68hHMfM=; h=From:To:Subject:Date:From; b=Xno9m0T0LkkzJrZeFbLvrR/PXC+3CzUR7NDIecWTkg/uZo1P0ktDb/FcBpUjzTU+T EEfl/0UxTrA9KdDAm5kf6uwlIxCz46wo6QkOmRQpVmC6Po+4J3x7QJKNVXf38B9WLk vUoDfqdpTdjgRPR1PnNbTNd0B2/VXZ5swWWsBbM8= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Oleg Endo To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-4862] SH: Fix PR 111001 X-Act-Checkin: gcc X-Git-Author: Oleg Endo X-Git-Refname: refs/heads/master X-Git-Oldrev: 9ed6b22eb4188c57bb3f5cdba5a7effa95395186 X-Git-Newrev: 267e369afbb963d8d84d7a9f0cb9fb18672d99a8 Message-Id: <20231023131116.7534C3858D37@sourceware.org> Date: Mon, 23 Oct 2023 13:11:16 +0000 (GMT) List-Id: https://gcc.gnu.org/g:267e369afbb963d8d84d7a9f0cb9fb18672d99a8 commit r14-4862-g267e369afbb963d8d84d7a9f0cb9fb18672d99a8 Author: Oleg Endo Date: Mon Oct 23 22:08:37 2023 +0900 SH: Fix PR 111001 gcc/ChangeLog: PR target/111001 * config/sh/sh_treg_combine.cc (sh_treg_combine::record_set_of_reg): Skip over nop move insns. Diff: --- gcc/config/sh/sh_treg_combine.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/config/sh/sh_treg_combine.cc b/gcc/config/sh/sh_treg_combine.cc index 9f6a89fa71fb..9b35960c8c2b 100644 --- a/gcc/config/sh/sh_treg_combine.cc +++ b/gcc/config/sh/sh_treg_combine.cc @@ -729,7 +729,14 @@ sh_treg_combine::record_set_of_reg (rtx reg, rtx_insn *start_insn, } else if (REG_P (new_entry.cstore.set_src ())) { - // If it's a reg-reg copy follow the copied reg. + // If it's a reg-reg copy follow the copied reg, but ignore + // nop copies of the reg onto itself. + if (REGNO (new_entry.cstore.set_src ()) == REGNO (reg)) + { + i = prev_nonnote_nondebug_insn_bb (i); + continue; + } + new_entry.cstore_reg_reg_copies.push_back (new_entry.cstore); reg = new_entry.cstore.set_src (); i = new_entry.cstore.insn;