From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7379 invoked by alias); 10 Aug 2019 16:12:39 -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 7330 invoked by uid 89); 10 Aug 2019 16:12:39 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=HX-Languages-Length:875, HTo:U*john X-HELO: gate.crashing.org Received: from gate.crashing.org (HELO gate.crashing.org) (63.228.1.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 10 Aug 2019 16:12:37 +0000 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id x7AGCKOY032435; Sat, 10 Aug 2019 11:12:21 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id x7AGCJo2032434; Sat, 10 Aug 2019 11:12:19 -0500 Date: Sat, 10 Aug 2019 16:12:00 -0000 From: Segher Boessenkool To: John Darrington Cc: Vladimir Makarov , Jeff Law , Paul Koning , gcc@gcc.gnu.org Subject: Re: Indirect memory addresses vs. lra Message-ID: <20190810161218.GQ31406@gate.crashing.org> References: <20190804191822.x4hwnfcyplnto3xc@jocasta.intra> <2B3A4EAB-D69E-4714-8FC4-C25E36B07BFF@comcast.net> <20190808172102.GH31406@gate.crashing.org> <2EEBCFAE-FF25-4664-AA5F-B3299CEA3CB1@comcast.net> <20190808191914.GK31406@gate.crashing.org> <20190809081439.baoyu3ii5i2qfbzt@jocasta.intra> <70b9bcc9-e12a-78b4-b8cc-a67b7ca3d38d@redhat.com> <20190810060553.m6e42sovw7s4xqoa@jocasta.intra> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190810060553.m6e42sovw7s4xqoa@jocasta.intra> User-Agent: Mutt/1.4.2.3i X-IsSubscribed: yes X-SW-Source: 2019-08/txt/msg00079.txt.bz2 Hi! On Sat, Aug 10, 2019 at 08:05:53AM +0200, John Darrington wrote: > Choosing alt 5 in insn 14: (0) m (1) m {*movsi} > 14: [r40:PSI+0x20]=[r41:PSI] > Inserting insn reload before: > 48: r40:PSI=r34:PSI > 49: r41:PSI=[y:PSI+0x2f] insn 14 is a mem-to-mem move (another feature not many more modern / more RISCy CPUs have). That requires both of your address registers. So far, so good. The reloads (insn 48 and 49) require address registers themselves; that isn't necessarily a problem either. But this requires careful juggling. Maybe you will need some backend code for this, or to optimise this (although right now you just want it to *work* :-) ) For some reason LRA didn't manage. Register inheritance seems to be implicated (but that might be a red herring). Vladimir will probably find out more, and/or correct me :-) Segher