From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13236 invoked by alias); 5 Aug 2014 21:29:35 -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 13225 invoked by uid 89); 5 Aug 2014 21:29:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham 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, 05 Aug 2014 21:29:24 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s75LTNZv031722 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 5 Aug 2014 17:29:23 -0400 Received: from stumpy.slc.redhat.com (ovpn-113-85.phx2.redhat.com [10.3.113.85]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s75LTMpj031124; Tue, 5 Aug 2014 17:29:23 -0400 Message-ID: <53E14CB2.1030409@redhat.com> Date: Tue, 05 Aug 2014 21:29:00 -0000 From: Jeff Law User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.7.0 MIME-Version: 1.0 To: gcc-patches@gcc.gnu.org, rdsandiford@googlemail.com Subject: Re: [PATCH 17/50] df-problems.c:find_memory References: <87y4v5d77q.fsf@googlemail.com> <87wqapacyp.fsf@googlemail.com> In-Reply-To: <87wqapacyp.fsf@googlemail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg00408.txt.bz2 On 08/03/14 08:02, Richard Sandiford wrote: > This also fixes what I think is a bug: find_memory used to stop at the > first MEM it found. If that MEM was nonvolatile and nonconstant, we'd > return MEMREF_NORMAL even if there was another volatile MEM. > > > gcc/ > * df-problems.c: Include rtl-iter.h. > (find_memory): Turn from being a for_each_rtx callback to being > a function that examines each subrtx itself. Continue to look for > volatile references even after a nonvolatile one has been found. > (can_move_insns_across): Update calls accordingly. OK. It'd probably be fairly difficult to test for that bug as most of our targets don't allow multiple memory operands in a single insn. But I agree with your assessment. Good catch. jeff