From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 76628 invoked by alias); 6 Jan 2017 10:21:43 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 76605 invoked by uid 89); 6 Jan 2017 10:21:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=H*i:sk:4377330, H*f:sk:4377330, H*MI:sk:4377330 X-HELO: mail-wm0-f49.google.com Received: from mail-wm0-f49.google.com (HELO mail-wm0-f49.google.com) (74.125.82.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 06 Jan 2017 10:21:38 +0000 Received: by mail-wm0-f49.google.com with SMTP id c85so19539218wmi.1 for ; Fri, 06 Jan 2017 02:21:38 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=Y6xjF8TeAFaY+HFN1fVFDUiy4UtN2KbCmvPfrrQqT4g=; b=BDqQ5Ss78MuQjxGfy49z/W4TUrnPpBBSc4LVte7I3y+0aYB0t/UHHcLK9XQVpMb+AU o7jCxPAQ80tbPjRNtkSf8KxuXXMX+QjxIyhzW5jNYduLeneD129x8UcIOZjEyxsFpihh lUkh/rgGop7zSQcWw6ML83kMmth9zUp0/5hImeF/fdWvmCKF5XlKBcB5gXgYDg7TVfkA A5WzssI9Ct5dqEKYslXBCiypnl+E/cIfXHUxJLtMYiUpsaXG3dNEuwYBM8gmuT6vRyI/ Op1QdEP3GfXLrMxS/fOv7P5tmy962dZw0aN8HhJtqEv2Nf27jrKzOd8O/RJI82YcD7WN tvVA== X-Gm-Message-State: AIkVDXJU+77bJclA1Zup/lvJ8l9cW1cgSI856d0XI+09jOj9OxWXxHS6qQhIDD2W2hMqBA== X-Received: by 10.28.22.193 with SMTP id 184mr3057784wmw.100.1483698096595; Fri, 06 Jan 2017 02:21:36 -0800 (PST) Received: from [10.15.38.164] ([92.103.127.250]) by smtp.gmail.com with ESMTPSA id 81sm2687786wmw.7.2017.01.06.02.21.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 06 Jan 2017 02:21:36 -0800 (PST) Subject: Re: input address reload issue To: Jeff Law , gcc@gcc.gnu.org References: <094e7c3d-fc6c-1b0a-29c3-263cadec25a7@gmail.com> <43773302-1453-5c82-4da0-cf5332aeb8e2@redhat.com> From: Aurelien Buhrig Message-ID: Date: Fri, 06 Jan 2017 10:21:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <43773302-1453-5c82-4da0-cf5332aeb8e2@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-SW-Source: 2017-01/txt/msg00030.txt.bz2 >> So the insn: >> (set (reg:QI 0 r0) (mem:QI (plus:SI (reg:SI 2 r2)(const_int 1)) >> >> is transformed into: >> (set (reg:SI 8 a0) (reg:SI 2 r2)) >> (set (reg:SI 8 a0) (const_int 1)) >> (set (reg:SI 8 a0) (plus:SI (reg:SI 8 a0) (reg:SI 8 a0))) >> (set (reg:QI 0 r0) (mem:QI (reg:SI 8 a0)) >> >> This "basic" transformation requires two reload regs, but only one is >> given/used/possible from the rl structure (in emit_reload_insns). >> >> So where does the issue comes from? The need for 2 reload regs, the >> transformation which is too "basic" and could be optimized to use only >> one reload reg, or any wrong/missing reload target hook? > Sounds like you need secondary or intermediate reloads. Thank you Jeff for your help. Currently, the TARGET_SECONDARY_RELOAD does not check if the address of a mem rtx is legitimate address and it returns NO_REG with (mem:QI r2). Do you suggest the secondary reload must implement a scratch reg & md pattern to implement this reload?