From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9206 invoked by alias); 23 Sep 2008 20:42:16 -0000 Received: (qmail 9197 invoked by uid 22791); 23 Sep 2008 20:42:15 -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; Tue, 23 Sep 2008 20:41:41 +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 m8NKdaPp024203; Tue, 23 Sep 2008 16:39:36 -0400 Received: from omfg.slc.redhat.com (vpn-12-168.rdu.redhat.com [10.11.12.168]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m8NKdZT8010329; Tue, 23 Sep 2008 16:39:35 -0400 Message-ID: <48D953DC.6080200@redhat.com> Date: Tue, 23 Sep 2008 20:55:00 -0000 From: Jeff Law User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: sje@cup.hp.com CC: Richard Henderson , Peter Bergner , gcc-patches@gcc.gnu.org, paolo.carlini@oracle.com Subject: Re: Patch to fix gcc.c-torture/compile/20010102-1.c on IA64 HP-UX References: <200809161651.m8GGpEM19079@lucas.cup.hp.com> <1221589231.6367.14.camel@sjoa> <1221590867.17787.18.camel@hpsje.cup.hp.com> <48D005A1.1070405@redhat.com> <1221593957.6367.24.camel@sjoa> <48D013ED.3050402@redhat.com> <1221596846.17787.28.camel@hpsje.cup.hp.com> <48D0248E.5030505@redhat.com> <1221601143.17787.40.camel@hpsje.cup.hp.com> <48D2B834.7040701@redhat.com> <1221847674.4972.27.camel@hpsje.cup.hp.com> In-Reply-To: <1221847674.4972.27.camel@hpsje.cup.hp.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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-09/txt/msg01654.txt.bz2 Steve Ellcey wrote: > On Thu, 2008-09-18 at 13:21 -0700, Richard Henderson wrote: > >> Steve Ellcey wrote: >> >>> Setting REG_POINTER in do_replace is the only one that is necessary to >>> fix my bug. I just changed the others in an attempt to be complete. >>> >> The change in do_replace is ok. >> >> For the others, where the new rtx is created by maybe_mode_change, >> it's unclear which of ORIG or COPY would have the correct value for >> REG_POINTER. It's also unclear why you'd be changing modes like >> that for real pointer values. I suppose if mode==orig_mode and >> orig had reg_pointer set, that'd be good enough to set it in the >> new rtx. >> >> >> r~ >> > > > I tested the following patch where I set REG_POINTER in do_replace and > do not make any other changes. It fixes > gcc.c-torture/compile/20010102-1.c, gcc.c-torture/compile/20041018-1.c, > and gcc.c-torture/execute/builtins/memset-chk.c on IA64 HP-UX and causes > no regressions. > > Is this version of the patch OK for checkin? I wasn't sure if your > OK comment was an official approval of that part of the patch or not. > > > > 2008-08-19 Steve Ellcey > > * regrename.c (do_replace): Copy REG_POINTER value to new reg. > > > Index: regrename.c > =================================================================== > --- regrename.c (revision 140482) > +++ regrename.c (working copy) > @@ -357,11 +357,13 @@ do_replace (struct du_chain *chain, int > { > unsigned int regno = ORIGINAL_REGNO (*chain->loc); > struct reg_attrs * attr = REG_ATTRS (*chain->loc); > + int reg_ptr = REG_POINTER (*chain->loc); > > *chain->loc = gen_raw_REG (GET_MODE (*chain->loc), reg); > if (regno >= FIRST_PSEUDO_REGISTER) > ORIGINAL_REGNO (*chain->loc) = regno; > REG_ATTRS (*chain->loc) = attr; > + REG_POINTER (*chain->loc) = reg_ptr; > df_insn_rescan (chain->insn); > chain = chain->next_use; > > > > Is this still pending? If so, I'll go ahead and explicitly approve this, particularly since it's precisely what I thought the patch ought to look like after our discussions last week :-) Jeff