From patchwork Sat May 28 18:14:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jeff Law X-Patchwork-Id: 54482 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7AD6D3856DF0 for ; Sat, 28 May 2022 18:14:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7AD6D3856DF0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1653761693; bh=/cVBYvFR6vZMuDRP/BDBSDkjlAHkXiDJb0lljmoFxrI=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=xY1bkKt6OIOsbWC0xFQnQYqiSBqk+nhApISE6FlQu4arJu/9hLbwJSlRgkzjGXh+l 2dOtLDQshRd/bquQQW8/bQ3+G5YTNnWY6JTHX90iqUc9g8UuEl69IB4K5tFG8YTe0l 5BfHbsVi2N5ExvRB1avoSv/8xC032z1Bh8yyPLL8= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id 63A7E385742C for ; Sat, 28 May 2022 18:14:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 63A7E385742C Received: by mail-pf1-x433.google.com with SMTP id c65so6487325pfb.1 for ; Sat, 28 May 2022 11:14:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:to:from:subject; bh=/cVBYvFR6vZMuDRP/BDBSDkjlAHkXiDJb0lljmoFxrI=; b=EU+chSI6vjPssVHe+y75ZHUin8D6bIkL5Cm2nDj3wwTa/hmRQQrfpArsqGUPOSP+rc QO5uepZp6hCwxK53i2pJds9BUgM2JVj+VKhmJYImz+FSqG7gPMqMgB0hZKFrprFvGX5F rS534WYNWcloUwJh6y8AWxTuQvXz8sLjKLSe1G1M4vnUFxoRFqHq75QIKRLCWXl0/Mep 4s8skQSsVxfXevN2+2S+Edcg+3acmOY476eF0mEKfF6VSRoegKwTP6B/DuX6P3EYsJNJ cz+d+yT9ClbIkPaiY7KGirio1eadkRoC1ZAM0te8JrQ+rMphozHtzCsGEHEyOSWgqO7V lRBw== X-Gm-Message-State: AOAM532kAxkYci5BHHnbTCkQ0SOXwpndxwaGDKgKB0hz1H2XIkzQBZBn 7ZLHG76mMMgb4+rubO5abvtiosnHF22hEA== X-Google-Smtp-Source: ABdhPJy0MxKXzft81FbmZUlBPnckIS3+dFF5jaD3CAkYJKbrXrYFERTuzmd+26DmfmkGmgNZI7THyA== X-Received: by 2002:a63:884a:0:b0:3fb:194b:a79b with SMTP id l71-20020a63884a000000b003fb194ba79bmr11678227pgd.601.1653761662005; Sat, 28 May 2022 11:14:22 -0700 (PDT) Received: from [172.31.0.204] (c-73-63-24-84.hsd1.ut.comcast.net. [73.63.24.84]) by smtp.gmail.com with ESMTPSA id i12-20020a170902cf0c00b0015e8d4eb28fsm6118479plg.217.2022.05.28.11.14.20 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 28 May 2022 11:14:21 -0700 (PDT) Message-ID: <28a32b11-3d59-daa4-37ec-159c3f2fdbfc@gmail.com> Date: Sat, 28 May 2022 12:14:20 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Content-Language: en-US To: 'GCC Patches' Subject: [committed] [PR target/103722] Fix register_move_cost for the sh X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jeff Law via Gcc-patches From: Jeff Law Reply-To: Jeff Law Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" As outlined in the BZ the sh is returning cost 2 for various reg->reg moves.  Cost 2 has special meaning to reload and prevents the insns from being re-recognized.  Vlad's patch bumps the cost to 7.  Other values might be better, but given this has been languishing for ~6 months and there are no signs of an SH expert stepping in to provide a better value, I'm going with Vlad's patch from the PR as-is. Committed to the trunk, Jeff commit 42d8fb2d4569e9930e277b01170bfd3586bf94d3 Author: Vladimir Makarov Date: Sat May 28 12:08:38 2022 -0600 Fix ICE on sh gcc/ PR target/103722 * config/sh/sh.c (sh_register_move_cost): Avoid cost "2" (which is special) for various scenarios. diff --git a/gcc/config/sh/sh.cc b/gcc/config/sh/sh.cc index 8d4056338a5..03e1c04ec7e 100644 --- a/gcc/config/sh/sh.cc +++ b/gcc/config/sh/sh.cc @@ -10762,6 +10762,12 @@ sh_register_move_cost (machine_mode mode, && ! REGCLASS_HAS_GENERAL_REG (dstclass)) return 2 * ((GET_MODE_SIZE (mode) + 7) / 8U); + if (((dstclass == FP_REGS || dstclass == DF_REGS) + && (srcclass == PR_REGS)) + || ((srcclass == FP_REGS || srcclass == DF_REGS) + && (dstclass == PR_REGS))) + return 7; + return 2 * ((GET_MODE_SIZE (mode) + 3) / 4U); }