From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17163 invoked by alias); 18 Mar 2015 10:24:25 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 17148 invoked by uid 89); 18 Mar 2015 10:24:24 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: service87.mimecast.com Received: from service87.mimecast.com (HELO service87.mimecast.com) (91.220.42.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 18 Mar 2015 10:24:23 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) by service87.mimecast.com; Wed, 18 Mar 2015 10:24:20 +0000 Received: from [10.2.207.50] ([10.1.2.79]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 18 Mar 2015 10:24:19 +0000 Message-ID: <55095252.3000306@arm.com> Date: Wed, 18 Mar 2015 10:24:00 -0000 From: Kyrill Tkachov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Yvan Roux , "gcc-patches@gcc.gnu.org" CC: Ramana Radhakrishnan , Richard Earnshaw , Vladimir Makarov Subject: Re: [PATCH, ARM, PR64208] LRA ICE Fix References: In-Reply-To: X-MC-Unique: 115031810242012801 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00908.txt.bz2 Hi Yvan, On 18/03/15 10:19, Yvan Roux wrote: > Hi, > > This is a fix for PR64208 where LRA loops when dealing with > iwmmxt_arm_movdi insn. As explain in the PR, the issue was introduced > on trunk and 4.9 branch by fix of PR rtl-optimization/60969 and then > workaround by r211798 (-fuse-caller-save enable for ARM). > > The changes in IRA cost made by PR60969, changed the register class of > this insn output from GENERAL_REGS to IWMMXT_REGS, and the > redundancies in the insn pattern alternatives description force LRA to > reload the pseudo, which generates the same iwmmxt_arm_movdi insn, > which can't be resolved, and so on ... > > Removing the redundancies fixes the issue, as LRA find that > alternative 8 (Uy =3D> y) matches. > > This issue is present in 4.9 branch, but latent on trunk (the > clobbering of IP and CC information added during -fuse-caller-save > patch changed the register allocation). > > Cross compiled and regression tested on ARM targets (but not on an > IWMMXT one), is it ok for trunk and 4.9 branch ? > > Rq: I think that adding IP and CC clobbers to > CALL_INSN_FUNCTION_USAGE, as specified by AAPCS, in 4.9 branch is > something we need too, I've a patch for that if you agree on that. > > Thanks, > Yvan > > 2105-03-17 Yvan Roux > > PR target/64208 > * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant > alternatives. As a general note, I think this patch should include the testcase from=20 the PR. I can see that it's fairly self-contained. Cheers, Kyrill