From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 113300 invoked by alias); 11 Aug 2015 20:05:01 -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 113291 invoked by uid 89); 11 Aug 2015 20:05:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 11 Aug 2015 20:05:00 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id 108997C; Tue, 11 Aug 2015 20:04:58 +0000 (UTC) Received: from localhost.localdomain (ovpn-113-104.phx2.redhat.com [10.3.113.104]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t7BK4w9u029624; Tue, 11 Aug 2015 16:04:58 -0400 Subject: Re: Fix reload1.c warning for some targets To: "gcc-patches@gcc.gnu.org" , richard.sandiford@arm.com References: <87d1z1kedx.fsf@e105548-lin.cambridge.arm.com> <55C24163.9040405@redhat.com> <87pp31iqt4.fsf@e105548-lin.cambridge.arm.com> From: Jeff Law Message-ID: <55CA556A.7080305@redhat.com> Date: Tue, 11 Aug 2015 20:05:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <87pp31iqt4.fsf@e105548-lin.cambridge.arm.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-08/txt/msg00542.txt.bz2 On 08/05/2015 11:32 AM, Richard Sandiford wrote: > and I don't see how GCC could prove that eliminate_regs_1 doesn't > modify the value of recog_data.n_dups between the two loops. > eliminate_regs_1 calls functions like plus_constant that are defined > outside the TU and that certainly aren't pure/const. Right. I should have been clearer. I don't think the reload1.c code is a false positive because we can't see into those functions to determine side effects. > So I think c#5 (marked as a bogus reduction) is an accurate reflection > of what reload1.c does. c#4 looks like a genuine bug but seems different > from the reload1.c case. If we still warn for c#4 then I think we > should keep the bugzilla entry open for that, but the warning for the > reload1.c code seems justified. Right. I don't want to lose the false positive and associated missed jump threading in c#4. Perhaps the question is why it doesn't trigger on more targets :-) Not sure. Could be how match_dup is used plus some interactions with SRA and BRANCH_COST and who knows what else :-0 Jeff