From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13907 invoked by alias); 19 Mar 2008 10:09:56 -0000 Received: (qmail 13895 invoked by uid 22791); 19 Mar 2008 10:09:56 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 19 Mar 2008 10:09:34 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id m2JA9L7X013551; Wed, 19 Mar 2008 06:09:21 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [10.10.36.72]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m2JA9KNo028377; Wed, 19 Mar 2008 06:09:20 -0400 Received: from devserv.devel.redhat.com (localhost.localdomain [127.0.0.1]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id m2JA9K8s016564; Wed, 19 Mar 2008 06:09:20 -0400 Received: (from jakub@localhost) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11/Submit) id m2JA9K8m016558; Wed, 19 Mar 2008 06:09:20 -0400 Date: Wed, 19 Mar 2008 10:43:00 -0000 From: Jakub Jelinek To: Andy H Cc: gcc-patches@gcc.gnu.org, steven@gcc.gnu.org Subject: Re: Fix PR34916, 35519 Combine (Dataflow merge regression.) Message-ID: <20080319100919.GM29754@devserv.devel.redhat.com> Reply-To: Jakub Jelinek References: <47E035AB.5010904@aim.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <47E035AB.5010904@aim.com> User-Agent: Mutt/1.4.1i X-IsSubscribed: yes 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 X-SW-Source: 2008-03/txt/msg01130.txt.bz2 On Tue, Mar 18, 2008 at 05:35:39PM -0400, Andy H wrote: > 2008-03-16 Andy Hutchinson > > PR rtl-optimization/34916 > PR middle-end/35519 > * combine.c (create_log_links): Do not create duplicate LOG_LINKS > between instruction pairs. > > Index: combine.c > =================================================================== > --- combine.c (revision 133282) > +++ combine.c (working copy) > @@ -976,8 +976,17 @@ > assignments later. */ > if (regno >= FIRST_PSEUDO_REGISTER > || asm_noperands (PATTERN (use_insn)) < 0) > - LOG_LINKS (use_insn) = > - alloc_INSN_LIST (insn, LOG_LINKS (use_insn)); > + { > + /* Don't add duplicates links between instructions. */ > + rtx links; > + for (links = LOG_LINKS (use_insn); links; links = XEXP (links, 1)) > + if (insn == XEXP (links, 0)) > + break; > + > + if (!links) > + LOG_LINKS (use_insn) = > + alloc_INSN_LIST (insn, LOG_LINKS (use_insn)); > + } Please fix formatting, the indentation is supposed to be only 2 spaces rather than 4 as you've done, also a tab should be used instead of each 8 spaces. Jakub